I changed the *_set_common_* functions to only set unset formats, then
added a wrapper that calls them after the filters query_formats.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
movenc: Write chan atom for all audio tracks in mov mode movies.
mpegtsenc: use avio_open_dyn_buf(), zero pointers after freeing
doc/avconv: add some details about the transcoding process.
avidec: make scale and rate unsigned.
avconv: check output stream recording time before each frame returned from filters
avconv: split selecting input file out of transcode().
avconv: split checking for active outputs out of transcode().
avfiltergraph: make some functions static.
Conflicts:
ffmpeg.c
libavfilter/avfiltergraph.c
libavfilter/internal.h
libavformat/mpegtsenc.c
tests/ref/fate/acodec-alac
tests/ref/fate/acodec-pcm-s16be
tests/ref/fate/acodec-pcm-s24be
tests/ref/fate/acodec-pcm-s32be
tests/ref/fate/acodec-pcm-s8
tests/ref/lavf/mov
Merged-by: Michael Niedermayer <michaelni@gmx.at>
avfilter_default_filter_name() is supposed to access an AVFilterContext
struct, if used with a private struct it will cause a crash since it will
access fields which are non defined in the private struct.
The function is modelled after av_default_item_name(), and will print the
name of the instance filter if defined, otherwise the name of the filter.
This allows to show the instance name in the log, which is useful when
debugging complex filter graphs.
* qatar/master:
os_support: Define SHUT_RD, SHUT_WR and SHUT_RDWR on OS/2
http: Add support for reading http POST reply headers
http: Add http_shutdown() for ending writing of posts
tcp: Allow signalling end of reading/writing
avio: Add a function for signalling end of reading/writing
lavfi: fix comment, audio is supported now.
lavfi: fix incorrect comment.
lavfi: remove avfilter_null_* from public API on next bump.
lavfi: remove avfilter_default_* from public API on next bump.
lavfi: deprecate default config_props() callback and refactor avfilter_config_links()
avfiltergraph: smarter sample format selection.
avconv: rename transcode_audio/video to decode_audio/video.
asyncts: reset delta to 0 when it's not used.
x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code.
dwt: return errors from ff_slice_buffer_init()
Conflicts:
ffmpeg.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/formats.c
libavfilter/version.h
libavfilter/vf_blackframe.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_format.c
libavfilter/vf_showinfo.c
libavfilter/video.c
libavfilter/video.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The planar/packed switch and the packing_formats list is no longer
required, since the planar/packed information is now stored in the sample
format enum.
This is technically a major API break, possibly it should be not too
painful as we marked the audio filtering API as unstable.
* qatar/master: (26 commits)
fate: use diff -b in oneline comparison
Add missing version bumps and APIchanges/Changelog entries.
lavfi: move buffer management function to a separate file.
lavfi: move formats-related functions from default.c to formats.c
lavfi: move video-related functions to a separate file.
fate: make smjpeg a demux test
fate: separate sierra-vmd audio and video tests
fate: separate smacker audio and video tests
libmp3lame: set supported channel layouts.
avconv: automatically insert asyncts when -async is used.
avconv: add support for audio filters.
lavfi: add asyncts filter.
lavfi: add aformat filter
lavfi: add an audio buffer sink.
lavfi: add an audio buffer source.
buffersrc: add av_buffersrc_write_frame().
buffersrc: fix invalid read in uninit if the fifo hasn't been allocated
lavfi: rename vsrc_buffer.c to buffersrc.c
avfiltergraph: reindent
lavfi: add channel layout/sample rate negotiation.
...
Conflicts:
Changelog
doc/APIchanges
doc/filters.texi
ffmpeg.c
ffprobe.c
libavcodec/libmp3lame.c
libavfilter/Makefile
libavfilter/af_aformat.c
libavfilter/allfilters.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/avfiltergraph.c
libavfilter/buffersrc.c
libavfilter/defaults.c
libavfilter/formats.c
libavfilter/src_buffer.c
libavfilter/version.h
libavfilter/vf_yadif.c
libavfilter/vsrc_buffer.c
libavfilter/vsrc_buffer.h
libavutil/avutil.h
tests/fate/audio.mak
tests/fate/demux.mak
tests/fate/video.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The old code had two bugs:
For audio filters, the format was not set.
For video filters, if several links reference the same format list,
the same format must be selected in the end. This is done by
setting formats->format_count to 1: the other links sharing
the reference will therefore have only one choice.
If the heuristic does not pick the first format, the selected format
must also be moved to the first position.
* qatar/master:
vsrc_buffer: allow buffering arbitrary number of frames.
vf_scale: avoid a pointless memcpy in no-op conversion.
avfiltergraph: try to reduce format conversions in filters.
avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
id3v2: fix skipping extended header in id3v2.4
Conflicts:
libavfilter/vf_scale.c
libavfilter/vsrc_buffer.c
libavformat/id3v2.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Current code, with a filterchain such as
(input - yuv411) -> (scale - any) -> (sink - any)
will result in yuv420 being chosen for the second link, which is clearly
not right.
This commit attempts to improve in the following way:
repeat until convergence:
loop over all filters
find input link with exactly one format
force this format on all output links of the same type (if possible)
With the current code, an automatically inserted aconvert necessary
for format change would usually convert to mono for no good reason.
The new code will not avoid all conversions, but at least will keep
them among the layouts common to both filters.
Behaviour has been changed to fail negotiation if fields have been
left empty.
Patch was originally based on a patch by Hemanth.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Make avfilter_graph_free() free not only the internal structures, but
also the allocated graph, and set the graph pointer to NULL for
increased safety.
Simplify usage.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 4359288c56)
Make avfilter_graph_free() free not only the internal structures, but
also the allocated graph, and set the graph pointer to NULL for
increased safety.
Simplify usage.
Signed-off-by: Mans Rullgard <mans@mansr.com>
ff_avfilter_graph_check_validity()
ff_avfilter_graph_config_links()
ff_avfilter_graph_config_formats()
and move their declaration to internal.h. These functions are never
used in application code, so it is better to consider them internal
functions, this can be changed later if necessary. Simplify API.
Originally committed as revision 25737 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new name is shorter and more consistent with the FFmpeg API, and
sounds less evil.
Originally committed as revision 25707 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new name is shorter and more consistent with the rest of the API.
This change breaks libavfilter API/ABI.
Originally committed as revision 25674 to svn://svn.ffmpeg.org/ffmpeg/trunk