[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
it:
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