From: James Almer <jamrial@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 2/2] avfilter/vf_scale2ref: switch to FFFrameSync
Date: Wed, 13 Mar 2024 20:43:58 -0300
Message-ID: <35250a40-88fb-4337-b237-81e6c50a25f0@gmail.com> (raw)
In-Reply-To: <20240313234126.GZ6420@pb2>
On 3/13/2024 8:41 PM, Michael Niedermayer wrote:
> On Wed, Mar 13, 2024 at 01:24:25PM +0100, Niklas Haas wrote:
>> From: Niklas Haas <git@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
Unrelated to this crash, but why does that command line output every
single option from every single filter? It's several thousand printed
lines. Shouldn't that be the output of --longhelp or similar, and leave
--help to print some basic non filter specific options?
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2024-03-13 23:44 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-13 12:24 [FFmpeg-devel] [PATCH 1/2] avfilter: mark scale2ref as supporting dynamic sizes Niklas Haas
2024-03-13 12:24 ` [FFmpeg-devel] [PATCH 2/2] avfilter/vf_scale2ref: switch to FFFrameSync Niklas Haas
2024-03-13 12:28 ` Niklas Haas
2024-03-13 13:21 ` Gyan Doshi
2024-03-13 23:41 ` Michael Niedermayer
2024-03-13 23:43 ` James Almer [this message]
2024-03-14 0:00 ` Michael Niedermayer
2024-03-13 23:47 ` Andreas Rheinhardt
2024-03-15 10:18 ` Niklas Haas
2024-03-17 16:55 ` Andreas Rheinhardt
2024-03-19 21:55 ` Michael Niedermayer
2024-03-20 14:23 ` Niklas Haas
2024-03-20 19:55 ` Michael Niedermayer
2024-03-23 17:50 ` Niklas Haas
2024-03-13 13:14 ` [FFmpeg-devel] [PATCH 1/2] avfilter: mark scale2ref as supporting dynamic sizes Gyan Doshi
2024-03-16 23:26 ` Michael Niedermayer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=35250a40-88fb-4337-b237-81e6c50a25f0@gmail.com \
--to=jamrial@gmail.com \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git