Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: don't use sizeof(AVMasteringDisplayMetadata)
@ 2024-06-19 18:24 James Almer
  2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: " James Almer
  2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: " James Almer
  0 siblings, 2 replies; 4+ messages in thread
From: James Almer @ 2024-06-19 18:24 UTC (permalink / raw)
  To: ffmpeg-devel

It's not part of the libavutil ABI.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/matroskadec.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 328109b354..6bc5fa621e 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2324,15 +2324,15 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) {
     }
 
     if (has_mastering_primaries || has_mastering_luminance) {
-        AVMasteringDisplayMetadata *metadata;
-        AVPacketSideData *sd = av_packet_side_data_new(&st->codecpar->coded_side_data,
-                                                       &st->codecpar->nb_coded_side_data,
-                                                       AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
-                                                       sizeof(AVMasteringDisplayMetadata), 0);
-        if (!sd)
+        size_t size = 0;
+        AVMasteringDisplayMetadata *metadata = av_mastering_display_metadata_alloc_size(&size);
+        if (!metadata)
+            return AVERROR(ENOMEM);
+        if (!av_packet_side_data_add(&st->codecpar->coded_side_data, &st->codecpar->nb_coded_side_data,
+                                     AV_PKT_DATA_MASTERING_DISPLAY_METADATA, metadata, size, 0)) {
+            av_freep(&metadata);
             return AVERROR(ENOMEM);
-        metadata = (AVMasteringDisplayMetadata*)sd->data;
-        memset(metadata, 0, sizeof(AVMasteringDisplayMetadata));
+        }
         if (has_mastering_primaries) {
             metadata->display_primaries[0][0] = av_d2q(mastering_meta->r_x, INT_MAX);
             metadata->display_primaries[0][1] = av_d2q(mastering_meta->r_y, INT_MAX);
-- 
2.45.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 2/3] avformat/mov: don't use sizeof(AVMasteringDisplayMetadata)
  2024-06-19 18:24 [FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: don't use sizeof(AVMasteringDisplayMetadata) James Almer
@ 2024-06-19 18:24 ` James Almer
  2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: " James Almer
  1 sibling, 0 replies; 4+ messages in thread
From: James Almer @ 2024-06-19 18:24 UTC (permalink / raw)
  To: ffmpeg-devel

It's not part of the libavutil ABI.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/isom.h | 1 +
 libavformat/mov.c  | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavformat/isom.h b/libavformat/isom.h
index c0a5788e08..35b767a52c 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -250,6 +250,7 @@ typedef struct MOVStreamContext {
     AVSphericalMapping *spherical;
     size_t spherical_size;
     AVMasteringDisplayMetadata *mastering;
+    size_t mastering_size;
     AVContentLightMetadata *coll;
     size_t coll_size;
     AVAmbientViewingEnvironment *ambient;
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 367af8478b..2d5b24b9a9 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -6138,7 +6138,7 @@ static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
     avio_skip(pb, 3); /* flags */
 
-    sc->mastering = av_mastering_display_metadata_alloc();
+    sc->mastering = av_mastering_display_metadata_alloc_size(&sc->mastering_size);
     if (!sc->mastering)
         return AVERROR(ENOMEM);
 
@@ -6181,7 +6181,7 @@ static int mov_read_mdcv(MOVContext *c, AVIOContext *pb, MOVAtom atom)
         return 0;
     }
 
-    sc->mastering = av_mastering_display_metadata_alloc();
+    sc->mastering = av_mastering_display_metadata_alloc_size(&sc->mastering_size);
     if (!sc->mastering)
         return AVERROR(ENOMEM);
 
@@ -10043,7 +10043,7 @@ static int mov_read_header(AVFormatContext *s)
             if (sc->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 *)sc->mastering, sizeof(*sc->mastering), 0))
+                                             (uint8_t *)sc->mastering, sc->mastering_size, 0))
                     return AVERROR(ENOMEM);
 
                 sc->mastering = NULL;
-- 
2.45.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: don't use sizeof(AVMasteringDisplayMetadata)
  2024-06-19 18:24 [FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: don't use sizeof(AVMasteringDisplayMetadata) James Almer
  2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: " James Almer
@ 2024-06-19 18:24 ` James Almer
  2024-06-20 17:50   ` Tomas Härdin
  1 sibling, 1 reply; 4+ messages in thread
From: James Almer @ 2024-06-19 18:24 UTC (permalink / raw)
  To: ffmpeg-devel

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;
                 }
-- 
2.45.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: don't use sizeof(AVMasteringDisplayMetadata)
  2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: " James Almer
@ 2024-06-20 17:50   ` Tomas Härdin
  0 siblings, 0 replies; 4+ messages in thread
From: Tomas Härdin @ 2024-06-20 17:50 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-06-20 17:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-19 18:24 [FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: don't use sizeof(AVMasteringDisplayMetadata) James Almer
2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: " James Almer
2024-06-19 18:24 ` [FFmpeg-devel] [PATCH 3/3] avformat/mxfdec: " James Almer
2024-06-20 17:50   ` Tomas Härdin

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git