Commit Graph
100 Commits
Author SHA1 Message Date
Nicolas George 8ef740ce01 lavfi: use a new field for automatic buffer copy.
The code currently use cur_buf as the target of the copy,
but cur_buf can be cleared by the filter if it has given
the reference away or stored it elsewhere as soon as start_frame.

The code still relies on the fact that the reference is not
destroyed until end_frame. All filters currently follow that condition.
An av_assert1() is added to check it; it should at least cause
very visible errors in valgrind.
2012-08-04 21:49:05 +02:00
Nicolas George 752344dada amerge/astreamsync/pan: fix license boilerplate.
The boilerplate states that the files are under LGPL,
but refer the user to the GPL at one place.
These files were (re)implemented specifically for FFmpeg.
2012-08-03 00:24:51 +02:00
Nicolas George 93d428953c assdec: return EOF instead of EIO. 2012-08-02 14:39:45 +02:00
Nicolas George 39b0d40d92 fate: add test for the tile video filter. 2012-08-01 14:00:29 +02:00
Nicolas George ff2955a4f7 apetag: return value when required.
Should fix compilation on clang.
2012-08-01 13:33:51 +02:00
Nicolas George f952b23ed4 vf_tile: fix output buffer ownership.
There is no need to start_frame immediately on the output link
since the rest is only done with the last frame of the tile.
link->out_buf is now automatically dereferenced; since we give
it away it must be cleared.

Fix an assert failure; found by Clément Bœsch.
2012-08-01 12:23:48 +02:00
Nicolas George 6eee9f5596 8svx: ensure that packet size is multiple of channels.
Fix an assert failure with packets of invalid size.
2012-08-01 10:29:10 +02:00
Nicolas George d2ca5dd0f3 loco: fix return value.
The return value was the number of bytes left,
it is supposed to be the number of bytes used.
2012-07-31 17:25:42 +02:00
Nicolas George 91ec1c6cc3 loco: take decode overflow into account.
Commit 2bf0982 introduced an overflow check in loco_decode_plane,
but the error code is never taken into account, leading to
completely idiotic return values.
2012-07-31 17:25:36 +02:00
Nicolas George b2814b034e sp5xdec: sanitize return value.
i is the decoded size of a recoded packet, which is larger
than the original packet. Assume that if decoding succeeded,
all the packet was used.
2012-07-31 17:23:32 +02:00
Nicolas George 7a539e67f4 8svx: unify mono and stereo code paths. 2012-07-31 17:23:31 +02:00
Nicolas George 5caea648d4 8svx: remove useless rounding code.
samples_size and samples_idx are supposed to be multiple of
channels at all time. If they are, the division is exact;
if they are not, something is very wrong in the code.
2012-07-31 17:23:31 +02:00
Nicolas George 1c98781837 8svx: use a more direct condition.
esc->table was inited based on codec->id: re-testing codec->id
is code duplication and can lead to inconsistencies.
2012-07-31 17:23:31 +02:00
Nicolas George 9009fa6de4 movtextdec: fix return value for too small packets. 2012-07-31 17:23:31 +02:00
Nicolas George 3d5dc7d87d mmvideo: count preamble size in return value.
MM_PREAMBLE_SIZE is subtracted from buf_size almost immediately.
The original size is still in avpkt->size.
2012-07-31 17:22:23 +02:00
Nicolas George cc7eff1fa0 vc1dec: count ENDOFSEQ code in return value. 2012-07-31 17:17:38 +02:00
Nicolas George 89898cd3b6 ffprobe: fix validity error with tags and data.
Add "data" and "extradata" attributes to the schema.
Add "tag" element in "streams".
Print extradata before tags to avoid closing the element.

Fix trac ticket #1588.
2012-07-31 15:06:57 +02:00
Nicolas George a85b4a5696 lavfi: use correct PTS for link age.
When start_frame has returned, the buffer reference's PTS
may have been modified by another filter.
2012-07-30 17:56:26 +02:00
Nicolas George f893904469 audioconvert: add av_get_standard_channel_layout().
Also bump minor version and add APIchanges entry.
2012-07-30 11:38:38 +02:00
Nicolas George 33449b1776 audioconvert: add av_get_channel_description(). 2012-07-30 11:37:40 +02:00
Nicolas George cc55470472 audioconvert: include the description of channels in the library. 2012-07-30 10:24:37 +02:00
Nicolas George 981d97f697 doc/filters: document TB variable for vf_setpts. 2012-07-29 16:25:52 +02:00
Nicolas George 5c81a9ff55 libx264: list possible profiles.
The values are listed if setting them fails.
Using "-profile help" or "-profile list" have that effect.
Similar to 3aba391.
Suggested by "rogerdpack" in trac ticket #1529.
2012-07-29 16:13:07 +02:00
Nicolas George 0f8f924847 faq: suggest the concat filter. 2012-07-28 18:16:55 +02:00
Nicolas George 2d6f442ca1 faq: disambiguate "join". 2012-07-28 18:16:55 +02:00
Nicolas George efcfcf8793 avf_concat: fix silence duration.
concat_in.pts starts at 0 for each segment, so the duration
of the silence was too long, except at the first stitch.
2012-07-28 15:14:01 +02:00
Nicolas George 4ce87ecf2a asrc_flite: do not crash on multiple instances.
The voice register functions return the same voice structure
upon multiple registration. It causes us two problems:

If we delete a voice without deregistering it, it leaves
a dangling pointer inside the library.

If we delete or unregister a voice at uninit, it may still
be in use by another instance of the filter.

The second problem is solved by keeping an usage counter inside
asrc_flite. This is not thread-safe, but neither is flite itself.
2012-07-28 15:13:46 +02:00
Nicolas George 9a757cca34 avf_concat: fix min value for v option. 2012-07-28 11:48:14 +02:00
Nicolas George 6bf87785e8 ffmpeg: warn about new streams after startup. 2012-07-26 00:30:38 +02:00
Nicolas George d0d9272580 faq: explain about new streams, probesize and analyzeduration. 2012-07-26 00:30:37 +02:00
Nicolas George 3ccf22c64a ffmpeg: keep packet/frame availability in global structures.
This replaces the use of the no_packet and no_frame arrays.
2012-07-24 19:14:10 +02:00
Nicolas George ddcb99bb51 vf_deshake: set cur_buf to NULL.
Fix a segfault.
2012-07-23 22:44:25 +02:00
Nicolas George a7ac05ce2f src_movie: implement multiple outputs.
The audio and video code paths were too different,
most of the decoding has been rewritten.
2012-07-23 17:14:59 +02:00
Nicolas George 05776119c1 buffersrc: use avfilter_get_buffer_ref_from_frame. 2012-07-23 17:14:59 +02:00
Nicolas George 5c5f75b92b lavfi: add avfilter_get_buffer_ref_from_frame. 2012-07-23 17:14:59 +02:00
Nicolas George 612307978d lavfi: change "transmedia" into "multimedia". 2012-07-23 11:44:48 +02:00
Nicolas George be33da9a1d lavfi: add concat filter. 2012-07-23 11:34:20 +02:00
Nicolas George 1cadab6023 ffmpeg: select input file based on output time.
Filters can change the timings, so input files must not
necessarily be read at the same rythm. This patch select
the input file to read based on the timestamp at output
instead of input. With complex filter graphs, finding the
input for a given output is done by making a request and
checking to what buffer source it has been forwarded.
2012-07-23 10:59:41 +02:00
Nicolas George 9c1d649ce5 overlay: clear cur_buf on main input link.
A reference is kept in the queue and freed after use.
2012-07-22 18:35:28 +02:00
Nicolas George 21fb7ff35b doc: declare encoding for texi2html.
It adds the following header to the HTML files:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
which helps some browsers to display correctly the few non-ASCII
characters in the doc.
2012-07-22 12:48:57 +02:00
Nicolas George fd58678b86 v4l2: remove call to v4l2_fd_open.
v4l2_fd_open is already called at the end of v4l2_open;
calling a second time leaks structures inside libv4l2.

Fix trac ticket #1560.
2012-07-20 21:12:10 +02:00
Nicolas George cb6a20fa56 lavfi: add FF_*LINK_IDX convenience macros. 2012-07-20 13:16:24 +02:00
Nicolas George 461f506f7b lavc: set best_effort_timestamp for audio too. 2012-07-20 13:16:23 +02:00
Nicolas George 97f86680eb lavfi: make copy_buffer_ref common. 2012-07-20 13:16:23 +02:00
Nicolas George b0629366a2 lavf: make cmdutils's check_stream_specifier public.
The new function is called avformat_match_stream_specifier()
and does not include logging the error message.
2012-07-20 13:16:23 +02:00
Nicolas George b34ce5a26b faq: explain dependency problems with static libs. 2012-07-20 11:40:26 +02:00
Nicolas George 30549294ef matroska: add support for Opus.
Opus in Matroska is still a draft.
2012-07-20 11:19:01 +02:00
Nicolas George a6cf296bd9 lavc: Opus decoder using libopus. 2012-07-20 11:18:58 +02:00
Nicolas George e62fd6619f oggdec: add support for Opus codec.
This patch also introduces CODEC_ID_OPUS.
2012-07-20 11:16:52 +02:00
Nicolas George bf8ce5a5c3 ffmpeg: probe buffersinks once more after EOF.
Reap buffers stored in the buffer sinks even when
the avfilter_graph_request_oldest() loop only returns EOF.

avfilter_graph_request_oldest() can cause frames to arrive
to the sinks even when it returns EOF.
2012-07-20 10:18:45 +02:00
Nicolas George 885fc05865 lavf: count skipped samples for initial timestamps.
If skip_samples is set and timestamps are synthesized using durations,
make them start at -skip_samples (rescaled) instead of 0,
so that the timestamp of the first undiscarded sample is 0.
2012-07-19 23:41:03 +02:00
Nicolas George cd08900393 lavc: update pkt_duration for skipped samples.
Also: factor the the computation of the timestamp difference.
2012-07-19 23:41:03 +02:00
Nicolas George d853ed46b1 Revert "ffmpeg: set pkt_timebase"
This reverts commit 744bd8d08c.

pkt_timebase is now set by av_codec_set_pkt_timebase.
If some demuxer set AVStream.time_base directly,
it need to be fixed. There is a warning to detect it.
2012-07-19 23:41:03 +02:00
Nicolas George 0e57d79b0c lavf: set pkt_timebase at the same time as stream->time_base. 2012-07-19 23:41:03 +02:00
Nicolas George 0e18ac5611 lavc: warn when impossible to adjust timestamps for skipped samples.
It is likely to happen if pkt_timebase was not set.
2012-07-19 23:41:03 +02:00
Nicolas George 11ce1cf9a7 lavc: add debug info about skipped samples. 2012-07-19 23:41:03 +02:00
Nicolas George 0fe8acf2d6 ffmpeg: add -(no)stdin option.
Allows to disable interaction from standard input.
Useful, for example, if ffmpeg is in the background process group.
Roughly the same result can be achieved with "ffmpeg ... < /dev/null"
but it requires a shell.
2012-07-19 16:33:02 +02:00
Nicolas George 52ab418588 ffmpeg: invert using_stdin and rename accordingly.
There are other reasons not to use stdin than having it as an input.
2012-07-19 16:32:45 +02:00
Nicolas George d483867525 avfiltergraph: document a catch in request_oldest().
This one is tricky. Consider a graph with two sink links, A and B.
request_oldest() requests on A, and A returns EOF. This EOF causes
a filter to flush pending frames to B; they are unrequested.
Then request_oldest() moves on to B, and B returns EOF.
2012-07-17 23:47:33 +02:00
Nicolas George f98d814bb6 avfiltergraph: add a debug message on EOF. 2012-07-17 23:46:26 +02:00
Nicolas George d06bfda07e lavfi: rescale link->current_pts.
The doxy says, and the heap implementations assumes,
it is in AV_TIME_BASE units.
2012-07-17 23:46:26 +02:00
Nicolas George 1d903a5ee4 lswr: channel_map requires input conversion.
channel_map is applied between in and postin.
Without this test, if the input format is an acceptable internal format,
the in->postin conversion is skipped. In the best case,
it ignores channel_map, in the worst case it causes an assert failure
if the number of channels is changed by the map.
2012-07-17 09:50:36 +02:00
Nicolas George 7b521c52c4 ffmpeg: add -progress option.
It allows to send program-friendly (easy to parse)
progress information to a file or an URL.
2012-07-14 14:51:18 +02:00
Nicolas George 3aba391fb5 libx264: list possible presets and tunes.
The values are listed if setting them fails.
Using "-preset help" or "-preset list" have that effect.
2012-07-14 13:37:50 +02:00
Nicolas George 26d7232722 configure: produce useful uninstalled pc files.
The old files were scattered in several directories,
with an unusual name, but dependencies to the usual name,
and relative paths.

The new files are regrouped in a singled directory
(doc/examples/pc-uninstalled) with their usual name
and more absolute paths.

With this change, it becomes possible to compile the examples
with the ffmpeg build tree by setting the environment variable:
PKG_CONFIG_PATH=pc-uninstalled
2012-07-12 14:58:52 +02:00
Nicolas George 5a9d6993cb parseutils: ignore digits below the microsecond.
Accept 1.1234567 as simply 1.123456 instead of rejecting it.
The rounding is towards 0, which is acceptable and much simpler.
2012-07-10 22:29:08 +02:00
Nicolas George 0abab00303 dpx: invalid aspect ratio is 0/1, not 0/0. 2012-07-10 14:34:04 +02:00
Nicolas George 299387ebf4 vf_settb: rename the file as f_settb. 2012-07-08 19:54:08 +02:00
Nicolas George 65e65e3ce2 settb: cosmetic: reindent vf_settb structure. 2012-07-08 19:54:08 +02:00
Nicolas George ba856c0be5 lavfi: implement asettb filter. 2012-07-08 19:54:08 +02:00
Nicolas George bba819bd8f fate: FLAC tests require SAMPLES. 2012-07-08 13:41:39 +02:00
Nicolas George 5997285d3a ffmpeg: poll filters even after -t limit.
If not, frames can still arrive to the sink and accumulate.
The frames past recording time will be ignored in do_*_out.
2012-07-06 18:33:48 +02:00
Nicolas GeorgeandMichael Niedermayer 8293a21a9c lavc: fix shared build after dnxhd merge.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 02:44:17 +02:00
Nicolas George 8b421fad24 dpx: sanitize aspect ratio.
Fixes some samples where the ratio is declared as -1/-1.
2012-07-04 18:59:39 +02:00
Nicolas George 2fc354f90d ffmpeg: rework checks for the -t option.
This commit is based on libav's implementation and
makes sure to compare output timestamps together.
It also reduces the differences with avconv.

The changes to the test reference files are caused
by an additional packet at the end, the timestamp
of the frame encoded by this packet is always
strictly below the limit stated by the -t option.
2012-07-04 16:20:47 +02:00
Nicolas George 7beeea8f17 error: define AVERROR_EXTERNAL.
This code is intended for errors in external libraries
when no corresponding error code can be found.
AVERROR_UNKNOWN is too vague for that and looks like AVERROR_BUG.
2012-07-04 15:45:05 +02:00
Nicolas George aa39516a04 error: define AVERROR_BUFFER_TOO_SMALL.
Some API require a buffer and return a specific error
if it is too small. This error code helps to map codes.
2012-07-04 15:33:14 +02:00
Nicolas George be24f85176 ffmpeg: re-set frame_size after filter graph reset.
The filter contexts are completely cleared,
so the frame size can not be kept.
2012-06-30 21:44:25 +02:00
Nicolas George 6f5e7e8690 ffmpeg: use the more powerful version of abuffersink. 2012-06-30 14:03:54 +02:00
Nicolas George 1f5c1333a7 sink_buffer: implement fixed frame size. 2012-06-30 14:03:54 +02:00
Nicolas George 0689d5e17a lavfi: implement samples framing on links.
Links can be set up to group samples into buffers of
specified minimum and maximum size.
2012-06-30 14:03:54 +02:00
Nicolas George c9c4835f51 fate: add a test for the -force_key_frames option.
It broke twice in the last three months due to other changes.
2012-06-30 13:49:43 +02:00
Nicolas George 20a8dca57f ffmpeg: fix parsing of -force_key_frames option.
Identical to commit 4f6a1c9 by Reimar Döffinger,
that was lost after the merge of 19ad567.
2012-06-30 13:49:43 +02:00
Nicolas George 8069db8633 ffmpeg: warn that -t does not work with -filter_complex. 2012-06-28 21:40:50 +02:00
Nicolas George 2c793b8501 ffmpeg: warn when -t is used for inputs.
Using -t on an input already have surprising results.
Furthermore, using it on an input or an output makes
a real difference if there are speed-altering filters.

Implementing -t for inputs will probably result in some
behavour changes.
2012-06-28 21:40:43 +02:00
Nicolas George fcf8706ed9 sink_buffer: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Nicolas George 05d6cc116e buffersrc: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Nicolas George d4c45b8adf Revert "Revert "x86: fft: win64: fix stack alignment for memcpy() call""
This reverts commit f767658414.

The bug it introduces has been fixed.
2012-06-26 15:56:01 +02:00
Nicolas George 91765594dd Revert "Revert "x86: fft: convert sse inline asm to yasm""
This reverts commit fd91a3ec44.

The bug it introduced has been fixed.
2012-06-26 15:55:41 +02:00
Nicolas George 784675ca91 sink_buffer: make opaque argument optional. 2012-06-26 13:17:30 +02:00
Nicolas George a2bd8a9384 buffersink: group libav API functions. 2012-06-26 13:17:29 +02:00
Nicolas George fd91a3ec44 Revert "x86: fft: convert sse inline asm to yasm"
This reverts commit 8299260470.

It breaks shared builds on x86_64.
2012-06-26 13:00:14 +02:00
Nicolas George f767658414 Revert "x86: fft: win64: fix stack alignment for memcpy() call"
This reverts commit 8725da49a2.

Necerrary to revert 8299260470.
2012-06-26 12:59:48 +02:00
Nicolas George 6fd0b55ab2 showwaves: fix PTS computation. 2012-06-23 15:08:23 +02:00
Nicolas George 6d627eae3c showwaves: fix first sample of frame test.
Avoids a huge memleak when n != 1.
2012-06-23 15:08:22 +02:00
Nicolas George bd9939f495 lavfi: display pad type with mismatch error message. 2012-06-23 11:34:46 +02:00
Nicolas George 9e63c30daa lavf: add a real SRT muxer.
This muxer supports CODEC_ID_SRT with the timestamps in the packet data
and CODEC_ID_TEXT with the timestamps in the packet fields.

Makes -scodec copy work from Matroska.
2012-06-21 20:52:56 +02:00
Nicolas George 7681d0eaca lavd/lavfi: do not set the channel layout list.
The list was set to avfilter_all_channel_layouts,
which is really all common channel layouts.
Not setting it leaves an empty list,
which now means really all.
2012-06-21 19:40:49 +02:00
Nicolas George 8c3514647e ffmpeg.c: count subtitles in total size.
This avoids the "Output file is empty" warning
with subtitles-only files.
2012-06-18 09:40:01 +02:00
Nicolas George c49e960a60 ffprobe: dump AVPacket.convergence_duration. 2012-06-18 09:39:17 +02:00