[FFmpeg-devel] [PATCH] lavfi/buffersink: deprecate non-AVOption init.

wm4 nfxjfg at googlemail.com
Thu Sep 28 17:45:51 EEST 2017

On Tue, 12 Sep 2017 11:40:55 +0200
Nicolas George <george at nsup.org> wrote:

> Signed-off-by: Nicolas George <george at nsup.org>
> ---
>  doc/APIchanges           |  3 +++
>  libavfilter/buffersink.c | 10 ++++++++++
>  libavfilter/buffersink.h | 12 ++++++++----
>  3 files changed, 21 insertions(+), 4 deletions(-)

jamrial asked to clarify this, so here's some reasoning why I'm against

The alternative would be using AVOptions, but AVOptions are clunky.
Especially when setting things like lists of allowed formats or channel
layouts. I don't like AVOption APis in general, but with those lists
it gets seriously error-prone on the API user side.

On the source filter side, AVBufferSrcParameters was recently
introduced, so that alone is an indicator that a dedicated params
struct makes sense, and that we shouldn't remove it.

I would argue that there should be a av_abuffersink_parameters_set
function, instead of using the really unsafe opaque init parameter. I'd
also respect if we were to merge AVABufferSinkParams into
AVBufferSinkParams, or if this were preparation for adding a similar 
but more general mechanism for both FFmpeg/Libav (non-AVOption of
course), but I haven't noticed such plans.

All in all, just deprecating/removing this would be a step backwards,
and would force current users of this API to use more awkward API
instead. There was also no good (or any) reason given _for_ removing
the API.

More information about the ffmpeg-devel mailing list