[FFmpeg-devel] [PATCH 2/2] avfilter/vf_scale2ref: switch to FFFrameSync
Michael Niedermayer
michael at niedermayer.cc
Thu Mar 14 01:41:26 EET 2024
On Wed, Mar 13, 2024 at 01:24:25PM +0100, Niklas Haas wrote:
> From: Niklas Haas <git at haasn.dev>
>
> This filter's existing design has a number of issues:
>
> - There is no guarantee whatsoever about the order in which frames are
> pushed onto the main and ref link, due to this being entirely
> dependent on the order in which downstream filters decide to request
> frames from their various inputs. As such, there is absolutely no
> synchronization for ref streams with dynamically changing resolutions
> (see e.g. fate/h264/reinit-*).
>
> - For some (likely historical) reason, this filter outputs its ref
> stream as a second ref output, which is in principle completely
> unnecessary (complex filter graph users can just duplicate the input
> pin), but in practice only required to allow this filter to
> "eventually" see changes to the ref stream (see first point). In
> particular, this means that if the user uses the "wrong" pin, this
> filter may break completely.
>
> - The default filter activation function is fundamentally incapable of
> handling filters with multiple inputs cleanly, because doing so
> requires both knowledge of how these inputs should be internally
> ordered, but also how to handle EOF conditions on either input (or
> downstream). Both of these are best left to the filter specific
> options. (See #10795 for the consequences of using the default
> activate with multiple inputs).
>
> Switching this filter to framesync fixes all three points:
>
> - ff_framesync_activate() correctly handles multiple inputs and EOF
> conditions (and is configurable with the framesync-specific options)
> - framesync only supports a single output, so we can (indeed must) drop
> the redundant ref output stream
>
> Update documentation, changelog and tests to correspond to the new usage
> pattern.
>
> Fixes: https://trac.ffmpeg.org/ticket/10795
> ---
> Changelog | 2 +
> doc/filters.texi | 10 +-
> libavfilter/vf_scale.c | 130 ++++++++++++-----------
> tests/filtergraphs/scale2ref_keep_aspect | 3 +-
> 4 files changed, 76 insertions(+), 69 deletions(-)
this causes
./ffplay --help
to segfault
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240314/533c92e2/attachment.sig>
More information about the ffmpeg-devel
mailing list