[FFmpeg-cvslog] avcodec/vvc/refs: remove early return
Marvin Scholz
git at videolan.org
Sat Jun 28 16:21:45 EEST 2025
ffmpeg | branch: master | Marvin Scholz <epirat07 at gmail.com> | Thu Jun 26 23:49:06 2025 +0200| [7d384869751b45d4d057df67dde9050a82590a6e] | committer: Marvin Scholz
avcodec/vvc/refs: remove early return
The ret value is checked later on again, so this check
is redundant and would cause the frame to not be unrefd on
failure as well.
So remove this check and add one before av_frame_remove_side_data
to ensure it is not called with an invalid frame.
Fix CID 1648350
Reviewed-by: Frank Plowman <post at frankplowman.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7d384869751b45d4d057df67dde9050a82590a6e
---
libavcodec/vvc/refs.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libavcodec/vvc/refs.c b/libavcodec/vvc/refs.c
index 79967b77d3..1840caa4ec 100644
--- a/libavcodec/vvc/refs.c
+++ b/libavcodec/vvc/refs.c
@@ -300,16 +300,15 @@ int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, AVFrame *out, const
frame->frame->flags |= AV_FRAME_FLAG_CORRUPT;
ret = av_frame_ref(out, frame->needs_fg ? frame->frame_grain : frame->frame);
- if (ret < 0)
- return ret;
- if (!(s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN))
+ if (!ret && !(s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN))
av_frame_remove_side_data(out, AV_FRAME_DATA_FILM_GRAIN_PARAMS);
if (frame->flags & VVC_FRAME_FLAG_BUMPING)
ff_vvc_unref_frame(fc, frame, VVC_FRAME_FLAG_OUTPUT | VVC_FRAME_FLAG_BUMPING);
else
ff_vvc_unref_frame(fc, frame, VVC_FRAME_FLAG_OUTPUT);
+
if (ret < 0)
return ret;
More information about the ffmpeg-cvslog
mailing list