From: Nicolas George <george@nsup.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH] fftools/ffmpeg_filter: add -print_filter_graph option
Date: Mon, 17 Feb 2025 13:42:47 +0100
Message-ID: <Z7MuxzkI48MAv0T2@phare.normalesup.org> (raw)
In-Reply-To: <20250217121741.56025-1-ffmpeg@haasn.xyz>
Niklas Haas (HE12025-02-17):
> From: Niklas Haas <git@haasn.dev>
>
> This developer tool is especially handy when debugging filter graph
> auto-negotiation, although it can be useful in whatever scenario to
> get a canonical dump of the fully settled filter graph.
>
> To make the result slightly more useful, we omit buffersrc/buffersink
> filters and instead print the corresponding input/output name. Sadly, this
> is lossy w.r.t. the link names used in the original filter graph, although
> the result has the advantage of being in a normalized format.
>
> As an example, the following filter graph (taken from FATE):
>
> sws_flags=+accurate_rnd+bitexact;
> split [main][over];
> [over] scale=88:72, pad=96:80:4:4 [overf];
> [main][overf] overlay=240:16:format=yuv422
>
> Results in this output:
>
> Filter graph:
> [0:0] split=thread_type=0x00000000 [L0] [L1];
> [L1] scale=w=88:width=88:h=72:height=72:flags=+accurate_rnd+bitexact:thread_type=0x00000000 [L2];
> [L2] pad=width=96:w=96:height=80:h=80:x=4:y=4:thread_type=0x00000000 [L3];
> [L4] [L3] overlay=x=240:y=16:format=2 [#0:0];
> [L0] scale=w=iw:width=iw:h=ih:height=ih:flags=+accurate_rnd+bitexact:thread_type=0x00000000 [L4];
> Filter links:
> L0: yuv420p 352x288 [SAR 0:1] csp:unknown range:tv
> L1: yuv420p 352x288 [SAR 0:1] csp:unknown range:tv
> L2: yuva422p 88x72 [SAR 0:1] csp:unknown range:tv
> L3: yuva422p 96x80 [SAR 0:1] csp:unknown range:tv
> L4: yuva422p 352x288 [SAR 0:1] csp:unknown range:tv
>
> I do acknowledge the overlap between this and avfilter/graphdump.c, but there
> are a couple of important deviations:
>
> 1. graphdump.c prints a "pretty printed" ASCII art graph for human consumption,
> but the goal here is to print it in a format that can be passed back to
> -filter_complex.
The ASCII art output is shitty indeed. But notice that
avfilter_graph_dump() takes an options argument that is set from the
argument of the dumpgraph option. This is precisely meant to allow
future different output formats.
> 2. graphdump.c does not know anything about buffersrc/buffersink filters or
> input/output names, which is why this implementation has to live inside
> ffmpeg_filter.c.
I find this a very feeble reason to duplicate the feature.
> It's possible that we could instead move this implementation to graphdump.c as
> well, though that would require some sort of explicit callback to get the names
> for buffer sources / sinks, to avoid breaking the first design goal.
It would be enough to add “const char *name_in, *name_out;” to
AVFilterLink. Or a single parsed_name field to AVFilterPad.
Regards,
--
Nicolas George
_______________________________________________
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:[~2025-02-17 12:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-17 12:17 Niklas Haas
2025-02-17 12:42 ` Nicolas George [this message]
2025-02-17 13:40 ` Soft Works
2025-02-17 13:50 ` Niklas Haas
2025-02-17 13:53 ` Niklas Haas
2025-02-17 15:35 ` Nicolas George
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=Z7MuxzkI48MAv0T2@phare.normalesup.org \
--to=george@nsup.org \
--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