diff mbox series

[FFmpeg-devel,3/3] avformat/mxfdec: don't use sizeof(AVMasteringDisplayMetadata)

Message ID 20240619182413.3247-3-jamrial@gmail.com
State New
Headers show
Series [FFmpeg-devel,1/3] avformat/matroskadec: don't use sizeof(AVMasteringDisplayMetadata) | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

James Almer June 19, 2024, 6:24 p.m. UTC
It's not part of the libavutil ABI.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/mxfdec.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Tomas Härdin June 20, 2024, 5:50 p.m. UTC | #1
ons 2024-06-19 klockan 15:24 -0300 skrev James Almer:
> It's not part of the libavutil ABI.
> 
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
>  libavformat/mxfdec.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> index 852fb7e056..a5863445ab 100644
> --- a/libavformat/mxfdec.c
> +++ b/libavformat/mxfdec.c
> @@ -227,6 +227,7 @@ typedef struct MXFDescriptor {
>      UID color_trc_ul;
>      UID color_space_ul;
>      AVMasteringDisplayMetadata *mastering;
> +    size_t mastering_size;
>      AVContentLightMetadata *coll;
>      size_t coll_size;
>  } MXFDescriptor;
> @@ -1424,7 +1425,7 @@ static int mxf_read_generic_descriptor(void
> *arg, AVIOContext *pb, int tag, int
>          }
>          if (IS_KLV_KEY(uid, mxf_mastering_display_prefix)) {
>              if (!descriptor->mastering) {
> -                descriptor->mastering =
> av_mastering_display_metadata_alloc();
> +                descriptor->mastering =
> av_mastering_display_metadata_alloc_size(&descriptor-
> >mastering_size);
>                  if (!descriptor->mastering)
>                      return AVERROR(ENOMEM);
>              }
> @@ -2955,7 +2956,7 @@ static int
> mxf_parse_structural_metadata(MXFContext *mxf)
>              if (descriptor->mastering) {
>                  if (!av_packet_side_data_add(&st->codecpar-
> >coded_side_data, &st->codecpar->nb_coded_side_data,
>                                              
> AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
> -                                             (uint8_t *)descriptor-
> >mastering, sizeof(*descriptor->mastering), 0)) {
> +                                             (uint8_t *)descriptor-
> >mastering, descriptor->mastering_size, 0)) {
>                      ret = AVERROR(ENOMEM);
>                      goto fail_and_free;
>                  }

Looks OK

/Tomas
diff mbox series

Patch

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 852fb7e056..a5863445ab 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -227,6 +227,7 @@  typedef struct MXFDescriptor {
     UID color_trc_ul;
     UID color_space_ul;
     AVMasteringDisplayMetadata *mastering;
+    size_t mastering_size;
     AVContentLightMetadata *coll;
     size_t coll_size;
 } MXFDescriptor;
@@ -1424,7 +1425,7 @@  static int mxf_read_generic_descriptor(void *arg, AVIOContext *pb, int tag, int
         }
         if (IS_KLV_KEY(uid, mxf_mastering_display_prefix)) {
             if (!descriptor->mastering) {
-                descriptor->mastering = av_mastering_display_metadata_alloc();
+                descriptor->mastering = av_mastering_display_metadata_alloc_size(&descriptor->mastering_size);
                 if (!descriptor->mastering)
                     return AVERROR(ENOMEM);
             }
@@ -2955,7 +2956,7 @@  static int mxf_parse_structural_metadata(MXFContext *mxf)
             if (descriptor->mastering) {
                 if (!av_packet_side_data_add(&st->codecpar->coded_side_data, &st->codecpar->nb_coded_side_data,
                                              AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
-                                             (uint8_t *)descriptor->mastering, sizeof(*descriptor->mastering), 0)) {
+                                             (uint8_t *)descriptor->mastering, descriptor->mastering_size, 0)) {
                     ret = AVERROR(ENOMEM);
                     goto fail_and_free;
                 }