[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