* [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print
@ 2025-05-17 11:14 Mark Thompson
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object Mark Thompson
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Mark Thompson @ 2025-05-17 11:14 UTC (permalink / raw)
To: ffmpeg-devel
Avoids writing an empty json blob in setup error cases.
---
fftools/ffmpeg.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 964770df23..ad28cff78d 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -309,7 +309,8 @@ const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL };
static void ffmpeg_cleanup(int ret)
{
- if (print_graphs || print_graphs_file)
+ if ((print_graphs || print_graphs_file) &&
+ (nb_filtergraphs > 0 || nb_output_files > 0))
print_filtergraphs(filtergraphs, nb_filtergraphs, input_files, nb_input_files, output_files, nb_output_files);
if (do_benchmark) {
--
2.47.2
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object
2025-05-17 11:14 [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print Mark Thompson
@ 2025-05-17 11:14 ` Mark Thompson
2025-05-17 17:24 ` softworkz .
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string Mark Thompson
2025-05-17 17:52 ` [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print softworkz .
2 siblings, 1 reply; 8+ messages in thread
From: Mark Thompson @ 2025-05-17 11:14 UTC (permalink / raw)
To: ffmpeg-devel
---
fftools/graph/graphprint.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fftools/graph/graphprint.c b/fftools/graph/graphprint.c
index fc94a75797..9e3e03274a 100644
--- a/fftools/graph/graphprint.c
+++ b/fftools/graph/graphprint.c
@@ -862,6 +862,8 @@ static void uninit_graphprint(GraphPrintContext *gpc)
// Finalize the print buffer if it was initialized
av_bprint_finalize(&gpc->pbuf, NULL);
+
+ av_freep(&gpc);
}
static int init_graphprint(GraphPrintContext **pgpc, AVBPrint *target_buf)
--
2.47.2
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string
2025-05-17 11:14 [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print Mark Thompson
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object Mark Thompson
@ 2025-05-17 11:14 ` Mark Thompson
2025-05-17 17:55 ` softworkz .
2025-05-17 17:52 ` [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print softworkz .
2 siblings, 1 reply; 8+ messages in thread
From: Mark Thompson @ 2025-05-17 11:14 UTC (permalink / raw)
To: ffmpeg-devel
---
fftools/graph/graphprint.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fftools/graph/graphprint.c b/fftools/graph/graphprint.c
index 9e3e03274a..50f1a2ecdc 100644
--- a/fftools/graph/graphprint.c
+++ b/fftools/graph/graphprint.c
@@ -780,6 +780,8 @@ static int print_streams(GraphPrintContext *gpc, InputFile **ifiles, int nb_ifil
avtext_print_section_header(tfc, &sec_ctx, SECTION_ID_OUTPUTSTREAMS);
+ av_freep(&sec_ctx.context_id);
+
for (int i = 0; i < of->nb_streams; i++) {
OutputStream *ost = of->streams[i];
const AVCodecDescriptor *codec_desc = avcodec_descriptor_get(ost->st->codecpar->codec_id);
--
2.47.2
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object Mark Thompson
@ 2025-05-17 17:24 ` softworkz .
0 siblings, 0 replies; 8+ messages in thread
From: softworkz . @ 2025-05-17 17:24 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
> Thompson
> Sent: Samstag, 17. Mai 2025 13:14
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint
> object
>
> ---
> fftools/graph/graphprint.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fftools/graph/graphprint.c b/fftools/graph/graphprint.c
> index fc94a75797..9e3e03274a 100644
> --- a/fftools/graph/graphprint.c
> +++ b/fftools/graph/graphprint.c
> @@ -862,6 +862,8 @@ static void uninit_graphprint(GraphPrintContext *gpc)
>
> // Finalize the print buffer if it was initialized
> av_bprint_finalize(&gpc->pbuf, NULL);
> +
> + av_freep(&gpc);
> }
>
> static int init_graphprint(GraphPrintContext **pgpc, AVBPrint *target_buf)
> --
Hi Mark,
good catch, thanks for the patch!
LGTM
sw
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print
2025-05-17 11:14 [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print Mark Thompson
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object Mark Thompson
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string Mark Thompson
@ 2025-05-17 17:52 ` softworkz .
2025-05-17 18:18 ` Mark Thompson
2 siblings, 1 reply; 8+ messages in thread
From: softworkz . @ 2025-05-17 17:52 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
> Thompson
> Sent: Samstag, 17. Mai 2025 13:14
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no
> graphs to print
>
> Avoids writing an empty json blob in setup error cases.
> ---
> fftools/ffmpeg.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index 964770df23..ad28cff78d 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -309,7 +309,8 @@ const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL
> };
>
> static void ffmpeg_cleanup(int ret)
> {
> - if (print_graphs || print_graphs_file)
> + if ((print_graphs || print_graphs_file) &&
> + (nb_filtergraphs > 0 || nb_output_files > 0))
> print_filtergraphs(filtergraphs, nb_filtergraphs, input_files,
> nb_input_files, output_files, nb_output_files);
The feature is not just about filter graphs, that's why it's been renamed
as "Execution Graph Printing". It also works when no filter graphs are
in play at all.
Here's an example:
https://softworkz.github.io/ffmpeg_output_apis/1_nofilters_3_in_1_out.html
As for the nb_output_files check, I'm not sure - is it 0 or 1 in case of
-f null output?
Thanks
sw
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string Mark Thompson
@ 2025-05-17 17:55 ` softworkz .
0 siblings, 0 replies; 8+ messages in thread
From: softworkz . @ 2025-05-17 17:55 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
> Thompson
> Sent: Samstag, 17. Mai 2025 13:14
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph
> section header string
>
> ---
> fftools/graph/graphprint.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fftools/graph/graphprint.c b/fftools/graph/graphprint.c
> index 9e3e03274a..50f1a2ecdc 100644
> --- a/fftools/graph/graphprint.c
> +++ b/fftools/graph/graphprint.c
> @@ -780,6 +780,8 @@ static int print_streams(GraphPrintContext *gpc, InputFile
> **ifiles, int nb_ifil
>
> avtext_print_section_header(tfc, &sec_ctx, SECTION_ID_OUTPUTSTREAMS);
>
> + av_freep(&sec_ctx.context_id);
> +
> for (int i = 0; i < of->nb_streams; i++) {
> OutputStream *ost = of->streams[i];
> const AVCodecDescriptor *codec_desc = avcodec_descriptor_get(ost-
> >st->codecpar->codec_id);
> --
LGTM - thanks for the patch!
sw
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print
2025-05-17 17:52 ` [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print softworkz .
@ 2025-05-17 18:18 ` Mark Thompson
2025-05-17 19:08 ` softworkz .
0 siblings, 1 reply; 8+ messages in thread
From: Mark Thompson @ 2025-05-17 18:18 UTC (permalink / raw)
To: ffmpeg-devel
On 17/05/2025 18:52, softworkz . wrote:
>
>
>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
>> Thompson
>> Sent: Samstag, 17. Mai 2025 13:14
>> To: ffmpeg-devel@ffmpeg.org
>> Subject: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no
>> graphs to print
>>
>> Avoids writing an empty json blob in setup error cases.
>> ---
>> fftools/ffmpeg.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>> index 964770df23..ad28cff78d 100644
>> --- a/fftools/ffmpeg.c
>> +++ b/fftools/ffmpeg.c
>> @@ -309,7 +309,8 @@ const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL
>> };
>>
>> static void ffmpeg_cleanup(int ret)
>> {
>> - if (print_graphs || print_graphs_file)
>> + if ((print_graphs || print_graphs_file) &&
>> + (nb_filtergraphs > 0 || nb_output_files > 0))
>> print_filtergraphs(filtergraphs, nb_filtergraphs, input_files,
>> nb_input_files, output_files, nb_output_files);
>
> The feature is not just about filter graphs, that's why it's been renamed
> as "Execution Graph Printing". It also works when no filter graphs are
> in play at all.
> Here's an example:
>
> https://softworkz.github.io/ffmpeg_output_apis/1_nofilters_3_in_1_out.html
>
>
> As for the nb_output_files check, I'm not sure - is it 0 or 1 in case of
> -f null output?
1, including when you stream copy to null and there aren't any real graphs. At least one output is mandatory for a valid command line, so it should always appear in non-error cases as far as I am aware.
The aim is to avoid to the nonsense json blob when an early error happens - example below. It does still get printed on later errors (such as a muxer error), because the graph is created then and some operations will have happened at that point.
Thanks,
- Mark
$ ./ffmpeg_g -print_graphs -i nonexistent -f null -
...
[in#0 @ 0x513000000200] Error opening input: No such file or directory
Error opening input file nonexistent.
Error opening input files: No such file or directory
{
"graphs": [
],
"inputfiles": [
{
"index": "0",
"inputstreams": [
]
}
],
"decoders": [
],
"encoders": [
],
"outputfiles": [
],
"streamlinks": [
]
}
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print
2025-05-17 18:18 ` Mark Thompson
@ 2025-05-17 19:08 ` softworkz .
0 siblings, 0 replies; 8+ messages in thread
From: softworkz . @ 2025-05-17 19:08 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
> Thompson
> Sent: Samstag, 17. Mai 2025 20:19
> To: ffmpeg-devel@ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there
> are no graphs to print
>
> On 17/05/2025 18:52, softworkz . wrote:
> >
> >
> >> -----Original Message-----
> >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark
> >> Thompson
> >> Sent: Samstag, 17. Mai 2025 13:14
> >> To: ffmpeg-devel@ffmpeg.org
> >> Subject: [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are
> no
> >> graphs to print
> >>
> >> Avoids writing an empty json blob in setup error cases.
> >> ---
> >> fftools/ffmpeg.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> >> index 964770df23..ad28cff78d 100644
> >> --- a/fftools/ffmpeg.c
> >> +++ b/fftools/ffmpeg.c
> >> @@ -309,7 +309,8 @@ const AVIOInterruptCB int_cb = { decode_interrupt_cb,
> NULL
> >> };
> >>
> >> static void ffmpeg_cleanup(int ret)
> >> {
> >> - if (print_graphs || print_graphs_file)
> >> + if ((print_graphs || print_graphs_file) &&
> >> + (nb_filtergraphs > 0 || nb_output_files > 0))
> >> print_filtergraphs(filtergraphs, nb_filtergraphs, input_files,
> >> nb_input_files, output_files, nb_output_files);
> >
> > The feature is not just about filter graphs, that's why it's been renamed
> > as "Execution Graph Printing". It also works when no filter graphs are
> > in play at all.
> > Here's an example:
> >
> > https://softworkz.github.io/ffmpeg_output_apis/1_nofilters_3_in_1_out.html
> >
> >
> > As for the nb_output_files check, I'm not sure - is it 0 or 1 in case of
> > -f null output?
>
> 1, including when you stream copy to null and there aren't any real graphs.
> At least one output is mandatory for a valid command line, so it should always
> appear in non-error cases as far as I am aware.
>
> The aim is to avoid to the nonsense json blob when an early error happens -
> example below. It does still get printed on later errors (such as a muxer
> error), because the graph is created then and some operations will have
> happened at that point.
>
> Thanks,
>
> - Mark
Okay, thanks for the clarification, and yes - it's important to get the output
even in cases of error, but I agree that it doesn't need to be generated
as long as output files haven't been configured yet.
If you could resubmit without the nb_filtergraphs check that would be fine!
Thank you
sw
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-05-17 19:08 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-17 11:14 [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print Mark Thompson
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 2/3] fftools/graphprint: Fix leak of graphprint object Mark Thompson
2025-05-17 17:24 ` softworkz .
2025-05-17 11:14 ` [FFmpeg-devel] [PATCH 3/3] fftools/graphprint: Fix leak of graph section header string Mark Thompson
2025-05-17 17:55 ` softworkz .
2025-05-17 17:52 ` [FFmpeg-devel] [PATCH 1/3] ffmpeg: Don't print graphs if there are no graphs to print softworkz .
2025-05-17 18:18 ` Mark Thompson
2025-05-17 19:08 ` softworkz .
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