diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-07-13 13:34:32 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-07-20 20:30:13 +0200 |
commit | 80a64800eab896b1103094a519a35a9585f25f4b (patch) | |
tree | c8cc85dec62be93a5288465c82c34be65871823a /fftools/ffmpeg_filter.c | |
parent | c4b074676a9fff3f072ae4c7e795cf71e010849d (diff) |
fftools/ffmpeg_enc: return errors from enc_frame() instead of aborting
Diffstat (limited to 'fftools/ffmpeg_filter.c')
-rw-r--r-- | fftools/ffmpeg_filter.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 49e0800e6e..d373d8c002 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -1722,8 +1722,11 @@ int reap_filters(FilterGraph *fg, int flush) av_log(fgp, AV_LOG_WARNING, "Error in av_buffersink_get_frame_flags(): %s\n", av_err2str(ret)); } else if (flush && ret == AVERROR_EOF && ofp->got_frame && - av_buffersink_get_type(filter) == AVMEDIA_TYPE_VIDEO) - enc_frame(ost, NULL); + av_buffersink_get_type(filter) == AVMEDIA_TYPE_VIDEO) { + ret = enc_frame(ost, NULL); + if (ret < 0) + return ret; + } break; } @@ -1759,8 +1762,11 @@ int reap_filters(FilterGraph *fg, int flush) if (ost->type == AVMEDIA_TYPE_VIDEO) fd->frame_rate_filter = av_buffersink_get_frame_rate(filter); - enc_frame(ost, filtered_frame); + ret = enc_frame(ost, filtered_frame); av_frame_unref(filtered_frame); + if (ret < 0) + return ret; + ofp->got_frame = 1; } } |