Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
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".

  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