[FFmpeg-devel] [PATCH 2/6] avformat/flvdec: Fix use sizeof(AVMasteringDisplayMetadata)

James Almer jamrial at gmail.com
Mon Mar 10 16:45:13 EET 2025


On 3/10/2025 11:40 AM, Zhao Zhili wrote:
> From: Zhao Zhili <zhilizhao at tencent.com>
> 
> sizeof AVMasteringDisplayMetadata isn't part of ABI.
> ---
>   libavformat/flvdec.c | 19 +++++++++++++------
>   1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
> index 62baeafafd..7ea4275784 100644
> --- a/libavformat/flvdec.c
> +++ b/libavformat/flvdec.c
> @@ -1248,15 +1248,22 @@ static int flv_update_video_color_info(AVFormatContext *s, AVStream *st)
>       }
>   
>       if (has_mastering_primaries || has_mastering_luminance) {
> -        AVMasteringDisplayMetadata *metadata;
> -        AVPacketSideData *sd = av_packet_side_data_new(&st->codecpar->coded_side_data,
> +        size_t size = 0;
> +        AVMasteringDisplayMetadata *metadata = av_mastering_display_metadata_alloc_size(&size);
> +        AVPacketSideData *sd;
> +
> +        if (!metadata)
> +            return AVERROR(ENOMEM);
> +
> +        sd = av_packet_side_data_add(&st->codecpar->coded_side_data,
>                                                           &st->codecpar->nb_coded_side_data,
>                                                           AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
> -                                                        sizeof(AVMasteringDisplayMetadata), 0);
> -        if (!sd)
> +                                                        metadata, size, 0);
> +        if (!sd) {
> +            av_freep(&metadata);
>               return AVERROR(ENOMEM);
> -        metadata = (AVMasteringDisplayMetadata*)sd->data;
> -        memset(metadata, 0, sizeof(AVMasteringDisplayMetadata));
> +        }
> +
>           // hdrCll
>           if (has_mastering_luminance) {
>               metadata->max_luminance = av_d2q(mastering_meta->max_luminance, INT_MAX);

LGTM

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250310/9604d985/attachment.sig>


More information about the ffmpeg-devel mailing list