On 28 Jun 2025, at 3:42, Frank Plowman wrote:
> On 27/06/2025 00:23, Marvin Scholz wrote:
>> 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
>> ---
>> 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;
>>
>
> LGTM, thank you.
>
Thanks, pushed as 7d384869751b45d4d057df67dde9050a82590a6e
> --
> Frank
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".