Nicolas George
1655788712
lavfi: make request_frame() non-recursive.
...
Instead of calling the input filter request_frame() method,
ff_request_frame() now marks the link and returns immediately.
buffersink is changed to activate the marked filters until
a frame is obtained.
2015-12-22 16:04:30 +01:00
Nicolas George
108b4de552
lavfi: replace link.closed by link.status.
...
The status field can carry any error code instead of just EOF.
Also only update it through a wrapper function and provide a timestamp.
Update the few filters that used it directly.
2015-12-22 16:04:30 +01:00
Ganesh Ajjanagadde
6aaac24d72
avfilter/all: propagate errors of functions from avfilter/formats
...
Many of the functions from avfilter/formats can return errors, usually AVERROR(ENOMEM).
This propagates the return values.
All of these were found by using av_warn_unused_result, demonstrating its utility.
Tested with FATE. I am least sure of the changes to avfilter/filtergraph,
since I don't know what/how reduce_format is intended to behave and how it should
react to errors.
Fixes: CID 1325680, 1325679, 1325678.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Previous version Reviewed-by: Nicolas George <george@nsup.org>
Previous version Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-14 10:04:01 -04:00
Nicolas George
807d4b6355
lavfi/buffersink: loop over ff_request_frame().
...
Do not assume that ff_request_frame() returning success
implies a frame has arrived in the FIFO.
Instead, just loop until a frame is in the FIFO.
It does not change anything since the same loop is present
in ff_request_frame(), confirmed by an assertion.
2015-09-20 18:50:00 +02:00
Clément Bœsch
e73f46b105
avfilter/abuffersink: use AV_OPT_TYPE_BOOL for all_channel_counts option
2015-09-08 23:35:12 +02:00
Hendrik Leppkes
033764e015
Merge commit 'f6974fe651d29ef6eb68d66d73f7b6c011062aa0'
...
* commit 'f6974fe651d29ef6eb68d66d73f7b6c011062aa0':
lavfi: Drop deprecated AVFilterBuffer* code
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:22:03 +02:00
Andreas Cadhalpun
e6c20e214e
avfilter: add missing FF_API_AVFILTERBUFFER guards
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-30 23:24:22 +02:00
Vittorio Giovara
f6974fe651
lavfi: Drop deprecated AVFilterBuffer* code
...
Deprecated in 11/2012.
2015-08-28 16:01:16 +02:00
Andreas Cadhalpun
d90fbde06a
buffersink: introduce FIFO_INIT_ELEMENT_SIZE to complement FIFO_INIT_SIZE
...
Use sizeof(void *) as its value, because AVFilterBufferRef is deprecated.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-16 22:36:20 +02:00
Michael Niedermayer
8e3b1f259e
avfilter/buffersink: return EOF if closed link in av_buffersink_get_frame_flags()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-17 00:22:09 +02:00
Lukasz Marek
d15db8e413
lavfi/buffersink: use av_fifo_alloc_array
...
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
Lukasz Marek
70b63419ee
lavfi: use av_fifo_freep
...
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Michael Niedermayer
74a8dbe1c4
Merge commit '58400ac133bcfb6bf8196b4e5208bc178307739b'
...
* commit '58400ac133bcfb6bf8196b4e5208bc178307739b':
lavfi: name anonymous structs
Conflicts:
libavfilter/buffersink.c
libavfilter/f_select.c
libavfilter/src_movie.c
libavfilter/vf_drawbox.c
libavfilter/vf_drawtext.c
libavfilter/vf_overlay.c
libavfilter/vf_showinfo.c
libavfilter/vf_unsharp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 18:20:17 +02:00
Vittorio Giovara
58400ac133
lavfi: name anonymous structs
2014-04-19 16:20:57 +02:00
Michael Niedermayer
325f6e0a97
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
lavfi: do not export the filters from shared objects
Conflicts:
libavfilter/af_amix.c
libavfilter/af_anull.c
libavfilter/asrc_anullsrc.c
libavfilter/f_select.c
libavfilter/f_settb.c
libavfilter/split.c
libavfilter/src_movie.c
libavfilter/vf_aspect.c
libavfilter/vf_blackframe.c
libavfilter/vf_colorbalance.c
libavfilter/vf_copy.c
libavfilter/vf_crop.c
libavfilter/vf_cropdetect.c
libavfilter/vf_drawbox.c
libavfilter/vf_format.c
libavfilter/vf_framestep.c
libavfilter/vf_frei0r.c
libavfilter/vf_hflip.c
libavfilter/vf_libopencv.c
libavfilter/vf_lut.c
libavfilter/vf_null.c
libavfilter/vf_overlay.c
libavfilter/vf_scale.c
libavfilter/vf_transpose.c
libavfilter/vf_unsharp.c
libavfilter/vf_vflip.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 11:58:11 +01:00
Anton Khirnov
cd43ca0443
lavfi: do not export the filters from shared objects
2013-10-28 15:29:54 +01:00
Michael Niedermayer
0f322feffd
avfilter/buffersink: try to fix AV_NOPTS_VALUE
...
no testcase available, just found this issue by reading the code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-09 16:33:18 +02:00
Michael Niedermayer
20be5e0a0e
Merge commit '7950e519bb094897f957b9a9531cc60ba46cbc91'
...
* commit '7950e519bb094897f957b9a9531cc60ba46cbc91':
Disable deprecation warnings for cases where a replacement is available
Conflicts:
libavcodec/avpacket.c
libavcodec/pthread.c
libavcodec/utils.c
libavdevice/v4l2.c
libavfilter/avfiltergraph.c
libavfilter/buffersrc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-03 10:08:30 +02:00
Diego Biurrun
7950e519bb
Disable deprecation warnings for cases where a replacement is available
2013-08-02 19:19:02 +02:00
Michael Niedermayer
edab63a406
Merge commit '966689442ed843019dc0722a49bfb0ac51755d19'
...
* commit '966689442ed843019dc0722a49bfb0ac51755d19':
buffersink: K&R formatting cosmetics
Conflicts:
libavfilter/buffersink.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 11:26:57 +02:00
Diego Biurrun
966689442e
buffersink: K&R formatting cosmetics
2013-07-27 10:47:38 +02:00
Hendrik Leppkes
779e6c2b98
lavfi: add attribute_align_arg to all public entry points
...
Previously it was partly only added to central functions called
internally, however if GCC would inline these into the public fuction, the
alignment attribute would not take effect.
Instead, add it to all public entry points to avoid these problems.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 19:51:04 +03:00
Hendrik Leppkes
af2a196e66
lavfi: add attribute_align_arg to all public entry points
...
Previously it was partly only added to central functions called
internally, however if GCC would inline these into the public fuction, the
alignment attribute would not take effect.
Instead, add it to all public entry points to avoid these problems.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 13:59:30 +02:00
Michael Niedermayer
e7f8493fd8
Merge commit '20c86571ccc71412781d4a4813e4693e0c42aec6'
...
* commit '20c86571ccc71412781d4a4813e4693e0c42aec6':
lavfi: let gcc realign the stack on public graph driving functions
Conflicts:
libavfilter/buffersink.c
libavfilter/buffersrc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-05 12:48:25 +02:00
Hendrik Leppkes
20c86571cc
lavfi: let gcc realign the stack on public graph driving functions
...
The functions which actually drive the filter graph by pushing
frames through it need to ensure an aligned stack for SIMD functions.
This fixes a crash in YADIF filter when using a mingw build in a MSVC
application.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-05-04 23:40:13 +03:00
Nicolas George
fd7a7e11b9
lavfi/buffersink: fix possible leaks after allocation failures.
...
Should fix Coverity CID 1005313, 1005314, 1005315.
2013-04-21 16:11:36 +02:00
Nicolas George
6fbb21d685
lavfi/buffersink: factor checks for lists sizes.
2013-04-13 20:19:24 +02:00
Michael Niedermayer
4a88989254
buffersink: remove shorthand
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-12 12:25:03 +02:00
Nicolas George
e48ded8551
lavfi/buffersink: accept parameters as options.
...
Move validation from init to query_formats().
Accept the formats lists as binary options.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-12 12:12:51 +02:00
Michael Niedermayer
fd6228e657
lavfi: remove now unused args parameter from AVFilter.init and init_opaque
...
This is mostly automated global search and replace
The deprecated aconvert filter is disabled, if it still has users
it should be updated
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-12 11:54:39 +02:00
Michael Niedermayer
62f56fd7ea
buffersink/uninit: use av_frame_free() not unref
...
Fixes memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-23 23:49:33 +01:00
Nicolas George
5eb273b2e7
lavfi/buffersink: check av_frame_ref() failure.
2013-03-20 13:35:24 +01:00
Hendrik Leppkes
d8dccf69ff
lavfi: let gcc realign the stack on public graph driving functions
...
The functions which actually drive the filter graph by pushing
frames through it need to ensure an aligned stack for SIMD functions.
This fixes a crash in YADIF filter when using a mingw build in a MSVC application.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-16 23:52:35 +01:00
Nicolas George
c14a8c834c
lavfi/buffersink: schedule removing the "ff" variants.
...
They are no longer needed since there is no incompatible
ABI version.
2013-03-12 23:31:07 +01:00
Nicolas George
9a2688826d
lavfi/buffersink: rename filter structures.
...
Reduce the diff with the fork.
2013-03-12 23:31:07 +01:00
Nicolas George
73b40e2eb6
lavfi/buffersink: move the filter structures at the end.
...
Also apply a few cosmetic fixes (spaces, trailing comma) to
help match them with the fork's implementation.
2013-03-11 19:00:49 +01:00
Nicolas George
de54a96aa8
lavfi/buffersink: implement av_buffersink_get_samples().
...
Note: the implementation could be more efficient, but at
the cost of more diff.
Most of the code from the following commit:
commit a2cd9be212
Author: Anton Khirnov <anton@khirnov.net>
Date: Fri May 4 19:22:38 2012 +0200
lavfi: add an audio buffer sink.
Adapted to call av_buffersink_get_frame_flags() instead of
accessing the frame directly.
2013-03-10 19:39:25 +01:00
Nicolas George
03b87fe5e3
lavfi: rename sink_buffer.c into buffersink.c.
2013-03-10 17:05:55 +01:00
Nicolas George
3add5dc88e
lavfi: remove buffersink.c.
...
It only contains merge conflicts leftovers.
The real code is in sink_buffer.c.
2013-03-10 17:05:55 +01:00
Michael Niedermayer
a05a44e205
Merge commit '7e350379f87e7f74420b4813170fe808e2313911'
...
* commit '7e350379f87e7f74420b4813170fe808e2313911':
lavfi: switch to AVFrame.
Conflicts:
doc/filters.texi
libavfilter/af_ashowinfo.c
libavfilter/audio.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/buffersink.c
libavfilter/buffersrc.c
libavfilter/buffersrc.h
libavfilter/f_select.c
libavfilter/f_setpts.c
libavfilter/fifo.c
libavfilter/split.c
libavfilter/src_movie.c
libavfilter/version.h
libavfilter/vf_aspect.c
libavfilter/vf_bbox.c
libavfilter/vf_blackframe.c
libavfilter/vf_delogo.c
libavfilter/vf_drawbox.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_fieldorder.c
libavfilter/vf_fps.c
libavfilter/vf_frei0r.c
libavfilter/vf_gradfun.c
libavfilter/vf_hqdn3d.c
libavfilter/vf_lut.c
libavfilter/vf_overlay.c
libavfilter/vf_pad.c
libavfilter/vf_scale.c
libavfilter/vf_showinfo.c
libavfilter/vf_transpose.c
libavfilter/vf_vflip.c
libavfilter/vf_yadif.c
libavfilter/video.c
libavfilter/vsrc_testsrc.c
libavfilter/yadif.h
Following are notes about the merge authorship and various technical details.
Michael Niedermayer:
* Main merge operation, notably avfilter.c and video.c
* Switch to AVFrame:
- afade
- anullsrc
- apad
- aresample
- blackframe
- deshake
- idet
- il
- mandelbrot
- mptestsrc
- noise
- setfield
- smartblur
- tinterlace
* various merge changes and fixes in:
- ashowinfo
- blackdetect
- field
- fps
- select
- testsrc
- yadif
Nicolas George:
* Switch to AVFrame:
- make rawdec work with refcounted frames. Adapted from commit
759001c534
by Anton Khirnov.
Also, fix the use of || instead of | in a flags check.
- make buffer sink and src, audio and video work all together
Clément Bœsch:
* Switch to AVFrame:
- aevalsrc
- alphaextract
- blend
- cellauto
- colormatrix
- concat
- earwax
- ebur128
- edgedetect
- geq
- histeq
- histogram
- hue
- kerndeint
- life
- movie
- mp (with the help of Michael)
- overlay
- pad
- pan
- pp
- pp
- removelogo
- sendcmd
- showspectrum
- showwaves
- silencedetect
- stereo3d
- subtitles
- super2xsai
- swapuv
- thumbnail
- tile
Hendrik Leppkes:
* Switch to AVFrame:
- aconvert
- amerge
- asetnsamples
- atempo
- biquads
Matthieu Bouron:
* Switch to AVFrame
- alphamerge
- decimate
- volumedetect
Stefano Sabatini:
* Switch to AVFrame:
- astreamsync
- flite
- framestep
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-10 01:40:35 +01:00
Anton Khirnov
7e350379f8
lavfi: switch to AVFrame.
...
Deprecate AVFilterBuffer/AVFilterBufferRef and everything related to it
and use AVFrame instead.
2013-03-08 07:37:18 +01:00
Anton Khirnov
b5ecfa1d8d
buffersink: switch to filter_frame
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 01:55:26 +01:00
Michael Niedermayer
cd7febd33f
lavfi: replace filter_samples by filter_frame
...
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Anton Khirnov
565e4993c6
lavfi: merge start_frame/draw_slice/end_frame
...
Any alleged performance benefits gained from the split are purely
mythological and do not justify added code complexity.
2012-11-28 08:50:19 +01:00
Michael Niedermayer
03b078721c
Merge commit '97bf7c03b1338a867da52c159a2afecbdedcfa88'
...
* commit '97bf7c03b1338a867da52c159a2afecbdedcfa88':
doc: git-howto: Leave reviewers time to react before pushing patches
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
lavu: rename audioconvert.* to channel_layout.* and deprecate audioconvert.h
Conflicts:
doc/APIchanges
doc/examples/decoding_encoding.c
doc/git-howto.texi
ffmpeg_filter.c
libavcodec/flacdec.c
libavcodec/imc.c
libavcodec/mpegaudiodec.c
libavcodec/utils.c
libavfilter/asrc_anullsrc.c
libavfilter/audio.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/avfiltergraph.c
libavfilter/buffer.c
libavutil/Makefile
libavutil/audioconvert.h
libavutil/channel_layout.c
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 11:32:11 +01:00
Justin Ruggles
a903f8f087
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
...
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Mans Rullgard
6b776c61da
buffersink: remove stray semicolon after function definition
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:06:27 +01:00
Michael Niedermayer
526cb36e4b
Merge commit '4436f25a1682ada3f7226cb6fadf429946933161'
...
* commit '4436f25a1682ada3f7226cb6fadf429946933161':
build: remove references to unused EXTRAOBJS variable
lavfi: convert input/ouput list compound literals to named objects
fate: add h263 obmc vsynth tests
avconv: remove bogus warning when using avconv -h without parameter
averror: explicitly define AVERROR_* values
flashsv: propagate inflateReset() errors
indeo4/5: remove constant parameter num_bands from wavelet recomposition
mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
Double motion vector range for HPEL interlaced picture in proper place
Conflicts:
libavcodec/v210dec.h
libavfilter/af_aformat.c
libavfilter/af_amix.c
libavfilter/af_asyncts.c
libavfilter/af_channelmap.c
libavfilter/af_join.c
libavfilter/asrc_anullsrc.c
libavfilter/buffersrc.c
libavfilter/f_setpts.c
libavfilter/f_settb.c
libavfilter/fifo.c
libavfilter/src_movie.c
libavfilter/vf_ass.c
libavfilter/vf_blackframe.c
libavfilter/vf_boxblur.c
libavfilter/vf_delogo.c
libavfilter/vf_drawbox.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_fieldorder.c
libavfilter/vf_fps.c
libavfilter/vf_hflip.c
libavfilter/vf_overlay.c
libavfilter/vf_pad.c
libavfilter/vf_select.c
libavfilter/vf_transpose.c
libavfilter/vf_yadif.c
libavfilter/vsrc_testsrc.c
libavformat/mxfdec.c
libavutil/error.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 15:46:48 +02:00
Mans Rullgard
568c70e79e
lavfi: convert input/ouput list compound literals to named objects
...
A number of compilers, for example those from TI and IBM, choke on
these initialisers. The current style is also quite ugly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 22:26:12 +01:00
Nicolas George
9de731e9d0
lavfi/sink_buffer: implement libav compatibility API.
...
Implement av_buffersink_read() and av_buffersink_read_samples()
for ffmpeg's version of buffersink.
With this change, avconv linked against ffmpeg's libraries passes
the same number of tests whether it uses ffbuffersink or
buffersink_old.
2012-09-27 18:43:37 +02:00