* [FFmpeg-devel] [PATCH 1/2] fftools/ffmpeg_filter: don't forward EOF in close_output()
@ 2024-03-09 19:01 Anton Khirnov
2024-03-09 19:01 ` [FFmpeg-devel] [PATCH 2/2] fftools/ffmpeg_filter: merge block with the enclosing one Anton Khirnov
0 siblings, 1 reply; 2+ messages in thread
From: Anton Khirnov @ 2024-03-09 19:01 UTC (permalink / raw)
To: ffmpeg-devel
The caller does not need or expect it, and it can lead to terminating
filtering prematurely in case there is more than one output.
---
fftools/ffmpeg_filter.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 960393b943..7cd5415341 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -2199,7 +2199,8 @@ static int close_output(OutputFilterPriv *ofp, FilterGraphThread *fgt)
fgt->eof_out[ofp->index] = 1;
- return sch_filter_send(fgp->sch, fgp->sch_idx, ofp->index, NULL);
+ ret = sch_filter_send(fgp->sch, fgp->sch_idx, ofp->index, NULL);
+ return (ret == AVERROR_EOF) ? 0 : ret;
}
static int fg_output_frame(OutputFilterPriv *ofp, FilterGraphThread *fgt,
--
2.43.0
_______________________________________________
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] 2+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] fftools/ffmpeg_filter: merge block with the enclosing one
2024-03-09 19:01 [FFmpeg-devel] [PATCH 1/2] fftools/ffmpeg_filter: don't forward EOF in close_output() Anton Khirnov
@ 2024-03-09 19:01 ` Anton Khirnov
0 siblings, 0 replies; 2+ messages in thread
From: Anton Khirnov @ 2024-03-09 19:01 UTC (permalink / raw)
To: ffmpeg-devel
It has no reason to exist.
---
fftools/ffmpeg_filter.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 7cd5415341..a87bed6ec7 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -2251,19 +2251,17 @@ static int fg_output_frame(OutputFilterPriv *ofp, FilterGraphThread *fgt,
frame_out = frame;
}
- {
- // send the frame to consumers
- ret = sch_filter_send(fgp->sch, fgp->sch_idx, ofp->index, frame_out);
- if (ret < 0) {
- av_frame_unref(frame_out);
+ // send the frame to consumers
+ ret = sch_filter_send(fgp->sch, fgp->sch_idx, ofp->index, frame_out);
+ if (ret < 0) {
+ av_frame_unref(frame_out);
- if (!fgt->eof_out[ofp->index]) {
- fgt->eof_out[ofp->index] = 1;
- fgp->nb_outputs_done++;
- }
-
- return ret == AVERROR_EOF ? 0 : ret;
+ if (!fgt->eof_out[ofp->index]) {
+ fgt->eof_out[ofp->index] = 1;
+ fgp->nb_outputs_done++;
}
+
+ return ret == AVERROR_EOF ? 0 : ret;
}
if (type == AVMEDIA_TYPE_VIDEO) {
--
2.43.0
_______________________________________________
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] 2+ messages in thread
end of thread, other threads:[~2024-03-09 19:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-09 19:01 [FFmpeg-devel] [PATCH 1/2] fftools/ffmpeg_filter: don't forward EOF in close_output() Anton Khirnov
2024-03-09 19:01 ` [FFmpeg-devel] [PATCH 2/2] fftools/ffmpeg_filter: merge block with the enclosing one Anton Khirnov
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