You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
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@frankplowman.com>
This commit is contained in:
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user