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 v3 1/2] avcodec/libaom: Add HDR10+ metadata support
@ 2025-08-11 11:57 Maryla Ustarroz-Calonge via ffmpeg-devel
  2025-08-11 11:57 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for " Maryla Ustarroz-Calonge via ffmpeg-devel
  2025-08-11 11:58 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add " Maryla Ustarroz via ffmpeg-devel
  0 siblings, 2 replies; 8+ messages in thread
From: Maryla Ustarroz-Calonge via ffmpeg-devel @ 2025-08-11 11:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Maryla Ustarroz-Calonge

Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
---
 Changelog              |  1 +
 libavcodec/libaomdec.c | 63 ++++++++++++++++++++++++++++++++++++++++++
 libavcodec/libaomenc.c | 55 ++++++++++++++++++++++++++++++++++++
 libavcodec/version.h   |  2 +-
 4 files changed, 120 insertions(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index 0b0e6ecbf4..6bca37a594 100644
--- a/Changelog
+++ b/Changelog
@@ -37,6 +37,7 @@ version 8.0:
 - ProRes RAW decoder
 - ProRes RAW Vulkan hwaccel
 - ffprobe -codec option
+- HDR10+ metadata passthrough when decoding/encoding with libaom-av1
 
 
 version 7.1:
diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c
index 69eec8b089..cf5986baf4 100644
--- a/libavcodec/libaomdec.c
+++ b/libavcodec/libaomdec.c
@@ -28,11 +28,14 @@
 
 #include "libavutil/common.h"
 #include "libavutil/cpu.h"
+#include "libavutil/hdr_dynamic_metadata.h"
 #include "libavutil/imgutils.h"
 
 #include "avcodec.h"
+#include "bytestream.h"
 #include "codec_internal.h"
 #include "decode.h"
+#include "itut35.h"
 #include "libaom.h"
 #include "profiles.h"
 
@@ -137,6 +140,61 @@ static int set_pix_fmt(AVCodecContext *avctx, struct aom_image *img)
     }
 }
 
+static int decode_metadata_itu_t_t35(AVFrame *frame,
+                                     const uint8_t *buffer, size_t buffer_size)
+{
+    if (buffer_size < 6)
+        return AVERROR(EINVAL);
+
+    GetByteContext bc;
+    bytestream2_init(&bc, buffer, buffer_size);
+
+    const int country_code = bytestream2_get_byteu(&bc);
+    const int provider_code = bytestream2_get_be16u(&bc);
+    const int provider_oriented_code = bytestream2_get_be16u(&bc);
+    const int application_identifier = bytestream2_get_byteu(&bc);
+
+    // See "HDR10+ AV1 Metadata Handling Specification" v1.0.1, Section 2.1.
+    if (country_code == ITU_T_T35_COUNTRY_CODE_US
+        && provider_code == ITU_T_T35_PROVIDER_CODE_SAMSUNG
+        && provider_oriented_code == 0x0001
+        && application_identifier == 0x04) {
+        // HDR10+
+        AVDynamicHDRPlus *hdr_plus = av_dynamic_hdr_plus_create_side_data(frame);
+        if (!hdr_plus)
+            return AVERROR(ENOMEM);
+
+        int res = av_dynamic_hdr_plus_from_t35(hdr_plus, bc.buffer,
+                                               bytestream2_get_bytes_left(&bc));
+        if (res < 0)
+            return res;
+    }
+
+    return 0;
+}
+
+static int decode_metadata(AVFrame *frame, const struct aom_image *img)
+{
+    const size_t num_metadata = aom_img_num_metadata(img);
+    for (size_t i = 0; i < num_metadata; ++i) {
+        const aom_metadata_t *metadata = aom_img_get_metadata(img, i);
+        if (!metadata)
+            continue;
+
+        switch (metadata->type) {
+        case OBU_METADATA_TYPE_ITUT_T35: {
+            int res = decode_metadata_itu_t_t35(frame, metadata->payload, metadata->sz);
+            if (res < 0)
+                return res;
+            break;
+        }
+        default:
+            break;
+        }
+    }
+    return 0;
+}
+
 static int aom_decode(AVCodecContext *avctx, AVFrame *picture,
                       int *got_frame, AVPacket *avpkt)
 {
@@ -215,6 +273,11 @@ static int aom_decode(AVCodecContext *avctx, AVFrame *picture,
             av_image_copy(picture->data, picture->linesize, planes,
                           stride, avctx->pix_fmt, img->d_w, img->d_h);
         }
+        ret = decode_metadata(picture, img);
+        if (ret < 0) {
+            av_log(avctx, AV_LOG_ERROR, "Failed to decode metadata\n");
+            return ret;
+        }
         *got_frame = 1;
     }
     return avpkt->size;
diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
index 46f8d60e46..5d265a54d1 100644
--- a/libavcodec/libaomenc.c
+++ b/libavcodec/libaomenc.c
@@ -33,6 +33,7 @@
 #include "libavutil/base64.h"
 #include "libavutil/common.h"
 #include "libavutil/cpu.h"
+#include "libavutil/hdr_dynamic_metadata.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/mem.h"
@@ -42,10 +43,12 @@
 #include "av1.h"
 #include "avcodec.h"
 #include "bsf.h"
+#include "bytestream.h"
 #include "codec_internal.h"
 #include "dovi_rpu.h"
 #include "encode.h"
 #include "internal.h"
+#include "itut35.h"
 #include "libaom.h"
 #include "packet_internal.h"
 #include "profiles.h"
@@ -328,6 +331,53 @@ static av_cold int codecctl_int(AVCodecContext *avctx,
     return 0;
 }
 
+static int add_hdr_plus(AVCodecContext *avctx, struct aom_image *img, const AVFrame *frame)
+{
+    // Check for HDR10+
+    AVFrameSideData *side_data =
+        av_frame_get_side_data(frame, AV_FRAME_DATA_DYNAMIC_HDR_PLUS);
+    if (!side_data)
+        return 0;
+
+    size_t payload_size;
+    AVDynamicHDRPlus *hdr_plus = (AVDynamicHDRPlus *)side_data->buf->data;
+    int res = av_dynamic_hdr_plus_to_t35(hdr_plus, NULL, &payload_size);
+    if (res < 0) {
+        log_encoder_error(avctx, "Error finding the size of HDR10+");
+        return res;
+    }
+
+    uint8_t *hdr_plus_buf;
+    // Extra bytes for the country code, provider code, provider oriented code and app id.
+    const size_t hdr_plus_buf_size = payload_size + 6;
+    hdr_plus_buf = av_malloc(hdr_plus_buf_size);
+    if (!hdr_plus_buf)
+        return AVERROR(ENOMEM);
+
+    uint8_t *payload = hdr_plus_buf;
+    // See "HDR10+ AV1 Metadata Handling Specification" v1.0.1, Section 2.1.
+    bytestream_put_byte(&payload, ITU_T_T35_COUNTRY_CODE_US);
+    bytestream_put_be16(&payload, ITU_T_T35_PROVIDER_CODE_SAMSUNG);
+    bytestream_put_be16(&payload, 0x0001); // provider_oriented_code
+    bytestream_put_byte(&payload, 0x04);   // application_identifier
+
+    res = av_dynamic_hdr_plus_to_t35(hdr_plus, &payload, &payload_size);
+    if (res < 0) {
+        av_free(hdr_plus_buf);
+        log_encoder_error(avctx, "Error encoding HDR10+ from side data");
+        return res;
+    }
+
+    res = aom_img_add_metadata(img, OBU_METADATA_TYPE_ITUT_T35,
+                               hdr_plus_buf, hdr_plus_buf_size, AOM_MIF_ANY_FRAME);
+    av_free(hdr_plus_buf);
+    if (res < 0) {
+        log_encoder_error(avctx, "Error adding HDR10+ to aom_img");
+        return res;
+    }
+    return 0;
+}
+
 #if defined(AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS) && \
     defined(AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX) && \
     defined(AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX)
@@ -1234,6 +1284,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt,
 
     if (frame) {
         rawimg                      = &ctx->rawimg;
+        aom_img_remove_metadata(rawimg);
         rawimg->planes[AOM_PLANE_Y] = frame->data[0];
         rawimg->planes[AOM_PLANE_U] = frame->data[1];
         rawimg->planes[AOM_PLANE_V] = frame->data[2];
@@ -1284,6 +1335,10 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt,
 
         if (frame->pict_type == AV_PICTURE_TYPE_I)
             flags |= AOM_EFLAG_FORCE_KF;
+
+        res = add_hdr_plus(avctx, rawimg, frame);
+        if (res < 0)
+            return res;
     }
 
     res = aom_codec_encode(&ctx->encoder, rawimg, timestamp, duration, flags);
diff --git a/libavcodec/version.h b/libavcodec/version.h
index da2264a097..2e28c23410 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
 #include "version_major.h"
 
 #define LIBAVCODEC_VERSION_MINOR  12
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
-- 
2.50.1.703.g449372360f-goog

_______________________________________________
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] 8+ messages in thread

* [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-08-11 11:57 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add HDR10+ metadata support Maryla Ustarroz-Calonge via ffmpeg-devel
@ 2025-08-11 11:57 ` Maryla Ustarroz-Calonge via ffmpeg-devel
  2025-08-11 12:01   ` Maryla Ustarroz via ffmpeg-devel
  2025-08-11 11:58 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add " Maryla Ustarroz via ffmpeg-devel
  1 sibling, 1 reply; 8+ messages in thread
From: Maryla Ustarroz-Calonge via ffmpeg-devel @ 2025-08-11 11:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Maryla Ustarroz-Calonge

Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
---
 tests/Makefile                   |  1 +
 tests/fate/av1.mak               |  7 +++++
 tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
 3 files changed, 52 insertions(+)
 create mode 100644 tests/fate/av1.mak
 create mode 100644 tests/ref/fate/libaom-hdr10-plus

diff --git a/tests/Makefile b/tests/Makefile
index 3f4dbaabfd..3eef290e41 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
 include $(SRC_PATH)/tests/fate/apv.mak
 include $(SRC_PATH)/tests/fate/atrac.mak
 include $(SRC_PATH)/tests/fate/audio.mak
+include $(SRC_PATH)/tests/fate/av1.mak
 include $(SRC_PATH)/tests/fate/bmp.mak
 include $(SRC_PATH)/tests/fate/build.mak
 include $(SRC_PATH)/tests/fate/caf.mak
diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
new file mode 100644
index 0000000000..81072be5b8
--- /dev/null
+++ b/tests/fate/av1.mak
@@ -0,0 +1,7 @@
+# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
+FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
+fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
+
+FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
+
+fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
new file mode 100644
index 0000000000..c03dda7e7f
--- /dev/null
+++ b/tests/ref/fate/libaom-hdr10-plus
@@ -0,0 +1,44 @@
+[FRAME]
+[SIDE_DATA]
+side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
+application version=1
+num_windows=1
+targeted_system_display_maximum_luminance=400/1
+maxscl=3340/100000
+maxscl=2870/100000
+maxscl=2720/100000
+average_maxrgb=510/100000
+num_distribution_maxrgb_percentiles=9
+distribution_maxrgb_percentage=1
+distribution_maxrgb_percentile=30/100000
+distribution_maxrgb_percentage=5
+distribution_maxrgb_percentile=2940/100000
+distribution_maxrgb_percentage=10
+distribution_maxrgb_percentile=255/100000
+distribution_maxrgb_percentage=25
+distribution_maxrgb_percentile=70/100000
+distribution_maxrgb_percentage=50
+distribution_maxrgb_percentile=1340/100000
+distribution_maxrgb_percentage=75
+distribution_maxrgb_percentile=1600/100000
+distribution_maxrgb_percentage=90
+distribution_maxrgb_percentile=1850/100000
+distribution_maxrgb_percentage=95
+distribution_maxrgb_percentile=1950/100000
+distribution_maxrgb_percentage=99
+distribution_maxrgb_percentile=2940/100000
+fraction_bright_pixels=1/1000
+knee_point_x=0/4095
+knee_point_y=0/4095
+num_bezier_curve_anchors=9
+bezier_curve_anchors=102/1023
+bezier_curve_anchors=205/1023
+bezier_curve_anchors=307/1023
+bezier_curve_anchors=410/1023
+bezier_curve_anchors=512/1023
+bezier_curve_anchors=614/1023
+bezier_curve_anchors=717/1023
+bezier_curve_anchors=819/1023
+bezier_curve_anchors=922/1023
+[/SIDE_DATA]
+[/FRAME]
\ No newline at end of file
-- 
2.50.1.703.g449372360f-goog

_______________________________________________
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] 8+ messages in thread

* Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add HDR10+ metadata support
  2025-08-11 11:57 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add HDR10+ metadata support Maryla Ustarroz-Calonge via ffmpeg-devel
  2025-08-11 11:57 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for " Maryla Ustarroz-Calonge via ffmpeg-devel
@ 2025-08-11 11:58 ` Maryla Ustarroz via ffmpeg-devel
  1 sibling, 0 replies; 8+ messages in thread
From: Maryla Ustarroz via ffmpeg-devel @ 2025-08-11 11:58 UTC (permalink / raw)
  To: ffmpeg-devel, James Zern; +Cc: Maryla Ustarroz

On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
<maryla@google.com> wrote:
>
> Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
> ---
>  Changelog              |  1 +
>  libavcodec/libaomdec.c | 63 ++++++++++++++++++++++++++++++++++++++++++
>  libavcodec/libaomenc.c | 55 ++++++++++++++++++++++++++++++++++++
>  libavcodec/version.h   |  2 +-
>  4 files changed, 120 insertions(+), 1 deletion(-)
>
> diff --git a/Changelog b/Changelog
> index 0b0e6ecbf4..6bca37a594 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -37,6 +37,7 @@ version 8.0:
>  - ProRes RAW decoder
>  - ProRes RAW Vulkan hwaccel
>  - ffprobe -codec option
> +- HDR10+ metadata passthrough when decoding/encoding with libaom-av1
>
>
>  version 7.1:
> diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c
> index 69eec8b089..cf5986baf4 100644
> --- a/libavcodec/libaomdec.c
> +++ b/libavcodec/libaomdec.c
> @@ -28,11 +28,14 @@
>
>  #include "libavutil/common.h"
>  #include "libavutil/cpu.h"
> +#include "libavutil/hdr_dynamic_metadata.h"
>  #include "libavutil/imgutils.h"
>
>  #include "avcodec.h"
> +#include "bytestream.h"
>  #include "codec_internal.h"
>  #include "decode.h"
> +#include "itut35.h"
>  #include "libaom.h"
>  #include "profiles.h"
>
> @@ -137,6 +140,61 @@ static int set_pix_fmt(AVCodecContext *avctx, struct aom_image *img)
>      }
>  }
>
> +static int decode_metadata_itu_t_t35(AVFrame *frame,
> +                                     const uint8_t *buffer, size_t buffer_size)
> +{
> +    if (buffer_size < 6)
> +        return AVERROR(EINVAL);
> +
> +    GetByteContext bc;
> +    bytestream2_init(&bc, buffer, buffer_size);
> +
> +    const int country_code = bytestream2_get_byteu(&bc);
> +    const int provider_code = bytestream2_get_be16u(&bc);
> +    const int provider_oriented_code = bytestream2_get_be16u(&bc);
> +    const int application_identifier = bytestream2_get_byteu(&bc);
> +
> +    // See "HDR10+ AV1 Metadata Handling Specification" v1.0.1, Section 2.1.
> +    if (country_code == ITU_T_T35_COUNTRY_CODE_US
> +        && provider_code == ITU_T_T35_PROVIDER_CODE_SAMSUNG
> +        && provider_oriented_code == 0x0001
> +        && application_identifier == 0x04) {
> +        // HDR10+
> +        AVDynamicHDRPlus *hdr_plus = av_dynamic_hdr_plus_create_side_data(frame);
> +        if (!hdr_plus)
> +            return AVERROR(ENOMEM);
> +
> +        int res = av_dynamic_hdr_plus_from_t35(hdr_plus, bc.buffer,
> +                                               bytestream2_get_bytes_left(&bc));
> +        if (res < 0)
> +            return res;
> +    }
> +
> +    return 0;
> +}
> +
> +static int decode_metadata(AVFrame *frame, const struct aom_image *img)
> +{
> +    const size_t num_metadata = aom_img_num_metadata(img);
> +    for (size_t i = 0; i < num_metadata; ++i) {
> +        const aom_metadata_t *metadata = aom_img_get_metadata(img, i);
> +        if (!metadata)
> +            continue;
> +
> +        switch (metadata->type) {
> +        case OBU_METADATA_TYPE_ITUT_T35: {
> +            int res = decode_metadata_itu_t_t35(frame, metadata->payload, metadata->sz);
> +            if (res < 0)
> +                return res;
> +            break;
> +        }
> +        default:
> +            break;
> +        }
> +    }
> +    return 0;
> +}
> +
>  static int aom_decode(AVCodecContext *avctx, AVFrame *picture,
>                        int *got_frame, AVPacket *avpkt)
>  {
> @@ -215,6 +273,11 @@ static int aom_decode(AVCodecContext *avctx, AVFrame *picture,
>              av_image_copy(picture->data, picture->linesize, planes,
>                            stride, avctx->pix_fmt, img->d_w, img->d_h);
>          }
> +        ret = decode_metadata(picture, img);
> +        if (ret < 0) {
> +            av_log(avctx, AV_LOG_ERROR, "Failed to decode metadata\n");
> +            return ret;
> +        }
>          *got_frame = 1;
>      }
>      return avpkt->size;
> diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
> index 46f8d60e46..5d265a54d1 100644
> --- a/libavcodec/libaomenc.c
> +++ b/libavcodec/libaomenc.c
> @@ -33,6 +33,7 @@
>  #include "libavutil/base64.h"
>  #include "libavutil/common.h"
>  #include "libavutil/cpu.h"
> +#include "libavutil/hdr_dynamic_metadata.h"
>  #include "libavutil/imgutils.h"
>  #include "libavutil/mathematics.h"
>  #include "libavutil/mem.h"
> @@ -42,10 +43,12 @@
>  #include "av1.h"
>  #include "avcodec.h"
>  #include "bsf.h"
> +#include "bytestream.h"
>  #include "codec_internal.h"
>  #include "dovi_rpu.h"
>  #include "encode.h"
>  #include "internal.h"
> +#include "itut35.h"
>  #include "libaom.h"
>  #include "packet_internal.h"
>  #include "profiles.h"
> @@ -328,6 +331,53 @@ static av_cold int codecctl_int(AVCodecContext *avctx,
>      return 0;
>  }
>
> +static int add_hdr_plus(AVCodecContext *avctx, struct aom_image *img, const AVFrame *frame)
> +{
> +    // Check for HDR10+
> +    AVFrameSideData *side_data =
> +        av_frame_get_side_data(frame, AV_FRAME_DATA_DYNAMIC_HDR_PLUS);
> +    if (!side_data)
> +        return 0;
> +
> +    size_t payload_size;
> +    AVDynamicHDRPlus *hdr_plus = (AVDynamicHDRPlus *)side_data->buf->data;
> +    int res = av_dynamic_hdr_plus_to_t35(hdr_plus, NULL, &payload_size);
> +    if (res < 0) {
> +        log_encoder_error(avctx, "Error finding the size of HDR10+");
> +        return res;
> +    }
> +
> +    uint8_t *hdr_plus_buf;
> +    // Extra bytes for the country code, provider code, provider oriented code and app id.
> +    const size_t hdr_plus_buf_size = payload_size + 6;
> +    hdr_plus_buf = av_malloc(hdr_plus_buf_size);
> +    if (!hdr_plus_buf)
> +        return AVERROR(ENOMEM);
> +
> +    uint8_t *payload = hdr_plus_buf;
> +    // See "HDR10+ AV1 Metadata Handling Specification" v1.0.1, Section 2.1.
> +    bytestream_put_byte(&payload, ITU_T_T35_COUNTRY_CODE_US);
> +    bytestream_put_be16(&payload, ITU_T_T35_PROVIDER_CODE_SAMSUNG);
> +    bytestream_put_be16(&payload, 0x0001); // provider_oriented_code
> +    bytestream_put_byte(&payload, 0x04);   // application_identifier
> +
> +    res = av_dynamic_hdr_plus_to_t35(hdr_plus, &payload, &payload_size);
> +    if (res < 0) {
> +        av_free(hdr_plus_buf);
> +        log_encoder_error(avctx, "Error encoding HDR10+ from side data");
> +        return res;
> +    }
> +
> +    res = aom_img_add_metadata(img, OBU_METADATA_TYPE_ITUT_T35,
> +                               hdr_plus_buf, hdr_plus_buf_size, AOM_MIF_ANY_FRAME);
> +    av_free(hdr_plus_buf);
> +    if (res < 0) {
> +        log_encoder_error(avctx, "Error adding HDR10+ to aom_img");
> +        return res;
> +    }
> +    return 0;
> +}
> +
>  #if defined(AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS) && \
>      defined(AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX) && \
>      defined(AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX)
> @@ -1234,6 +1284,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt,
>
>      if (frame) {
>          rawimg                      = &ctx->rawimg;
> +        aom_img_remove_metadata(rawimg);
>          rawimg->planes[AOM_PLANE_Y] = frame->data[0];
>          rawimg->planes[AOM_PLANE_U] = frame->data[1];
>          rawimg->planes[AOM_PLANE_V] = frame->data[2];
> @@ -1284,6 +1335,10 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt,
>
>          if (frame->pict_type == AV_PICTURE_TYPE_I)
>              flags |= AOM_EFLAG_FORCE_KF;
> +
> +        res = add_hdr_plus(avctx, rawimg, frame);
> +        if (res < 0)
> +            return res;
>      }
>
>      res = aom_codec_encode(&ctx->encoder, rawimg, timestamp, duration, flags);
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index da2264a097..2e28c23410 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -30,7 +30,7 @@
>  #include "version_major.h"
>
>  #define LIBAVCODEC_VERSION_MINOR  12
> -#define LIBAVCODEC_VERSION_MICRO 100
> +#define LIBAVCODEC_VERSION_MICRO 101
>
>  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
>                                                 LIBAVCODEC_VERSION_MINOR, \
> --
> 2.50.1.703.g449372360f-goog
>

Note this is mostly a rebase of v2, due to changes in version.h and
also the renaming of
ITU_T_T35_PROVIDER_CODE_SMTPE to ITU_T_T35_PROVIDER_CODE_SAMSUNG.
It also fixes a minor style issue.
_______________________________________________
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] 8+ messages in thread

* Re: [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-08-11 11:57 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for " Maryla Ustarroz-Calonge via ffmpeg-devel
@ 2025-08-11 12:01   ` Maryla Ustarroz via ffmpeg-devel
  2025-08-27 11:06     ` [FFmpeg-devel] " Maryla Ustarroz via ffmpeg-devel
  0 siblings, 1 reply; 8+ messages in thread
From: Maryla Ustarroz via ffmpeg-devel @ 2025-08-11 12:01 UTC (permalink / raw)
  To: ffmpeg-devel, andreas.rheinhardt; +Cc: Maryla Ustarroz

On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
<maryla@google.com> wrote:
>
> Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
> ---
>  tests/Makefile                   |  1 +
>  tests/fate/av1.mak               |  7 +++++
>  tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
>  3 files changed, 52 insertions(+)
>  create mode 100644 tests/fate/av1.mak
>  create mode 100644 tests/ref/fate/libaom-hdr10-plus
>
> diff --git a/tests/Makefile b/tests/Makefile
> index 3f4dbaabfd..3eef290e41 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
>  include $(SRC_PATH)/tests/fate/apv.mak
>  include $(SRC_PATH)/tests/fate/atrac.mak
>  include $(SRC_PATH)/tests/fate/audio.mak
> +include $(SRC_PATH)/tests/fate/av1.mak
>  include $(SRC_PATH)/tests/fate/bmp.mak
>  include $(SRC_PATH)/tests/fate/build.mak
>  include $(SRC_PATH)/tests/fate/caf.mak
> diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
> new file mode 100644
> index 0000000000..81072be5b8
> --- /dev/null
> +++ b/tests/fate/av1.mak
> @@ -0,0 +1,7 @@
> +# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
> +FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
> +fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
> +
> +FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
> +
> +fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
> diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
> new file mode 100644
> index 0000000000..c03dda7e7f
> --- /dev/null
> +++ b/tests/ref/fate/libaom-hdr10-plus
> @@ -0,0 +1,44 @@
> +[FRAME]
> +[SIDE_DATA]
> +side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
> +application version=1
> +num_windows=1
> +targeted_system_display_maximum_luminance=400/1
> +maxscl=3340/100000
> +maxscl=2870/100000
> +maxscl=2720/100000
> +average_maxrgb=510/100000
> +num_distribution_maxrgb_percentiles=9
> +distribution_maxrgb_percentage=1
> +distribution_maxrgb_percentile=30/100000
> +distribution_maxrgb_percentage=5
> +distribution_maxrgb_percentile=2940/100000
> +distribution_maxrgb_percentage=10
> +distribution_maxrgb_percentile=255/100000
> +distribution_maxrgb_percentage=25
> +distribution_maxrgb_percentile=70/100000
> +distribution_maxrgb_percentage=50
> +distribution_maxrgb_percentile=1340/100000
> +distribution_maxrgb_percentage=75
> +distribution_maxrgb_percentile=1600/100000
> +distribution_maxrgb_percentage=90
> +distribution_maxrgb_percentile=1850/100000
> +distribution_maxrgb_percentage=95
> +distribution_maxrgb_percentile=1950/100000
> +distribution_maxrgb_percentage=99
> +distribution_maxrgb_percentile=2940/100000
> +fraction_bright_pixels=1/1000
> +knee_point_x=0/4095
> +knee_point_y=0/4095
> +num_bezier_curve_anchors=9
> +bezier_curve_anchors=102/1023
> +bezier_curve_anchors=205/1023
> +bezier_curve_anchors=307/1023
> +bezier_curve_anchors=410/1023
> +bezier_curve_anchors=512/1023
> +bezier_curve_anchors=614/1023
> +bezier_curve_anchors=717/1023
> +bezier_curve_anchors=819/1023
> +bezier_curve_anchors=922/1023
> +[/SIDE_DATA]
> +[/FRAME]
> \ No newline at end of file
> --
> 2.50.1.703.g449372360f-goog

Note that this is a simplified version of v2 now that ffprobe supports
the -codec:v flag.
This allows testing reading and writing of HDR10+ metadata in a single test, and
removes the need for a new test file.
_______________________________________________
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] 8+ messages in thread

* [FFmpeg-devel] Re: [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-08-11 12:01   ` Maryla Ustarroz via ffmpeg-devel
@ 2025-08-27 11:06     ` Maryla Ustarroz via ffmpeg-devel
  2025-09-02 13:30       ` Michael Niedermayer via ffmpeg-devel
  0 siblings, 1 reply; 8+ messages in thread
From: Maryla Ustarroz via ffmpeg-devel @ 2025-08-27 11:06 UTC (permalink / raw)
  To: ffmpeg-devel, andreas.rheinhardt; +Cc: Maryla Ustarroz

On Mon, Aug 11, 2025 at 2:01 PM Maryla Ustarroz <maryla@google.com> wrote:
>
> On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
> <maryla@google.com> wrote:
> >
> > Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
> > ---
> >  tests/Makefile                   |  1 +
> >  tests/fate/av1.mak               |  7 +++++
> >  tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
> >  3 files changed, 52 insertions(+)
> >  create mode 100644 tests/fate/av1.mak
> >  create mode 100644 tests/ref/fate/libaom-hdr10-plus
> >
> > diff --git a/tests/Makefile b/tests/Makefile
> > index 3f4dbaabfd..3eef290e41 100644
> > --- a/tests/Makefile
> > +++ b/tests/Makefile
> > @@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
> >  include $(SRC_PATH)/tests/fate/apv.mak
> >  include $(SRC_PATH)/tests/fate/atrac.mak
> >  include $(SRC_PATH)/tests/fate/audio.mak
> > +include $(SRC_PATH)/tests/fate/av1.mak
> >  include $(SRC_PATH)/tests/fate/bmp.mak
> >  include $(SRC_PATH)/tests/fate/build.mak
> >  include $(SRC_PATH)/tests/fate/caf.mak
> > diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
> > new file mode 100644
> > index 0000000000..81072be5b8
> > --- /dev/null
> > +++ b/tests/fate/av1.mak
> > @@ -0,0 +1,7 @@
> > +# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
> > +FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
> > +fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
> > +
> > +FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > +
> > +fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
> > new file mode 100644
> > index 0000000000..c03dda7e7f
> > --- /dev/null
> > +++ b/tests/ref/fate/libaom-hdr10-plus
> > @@ -0,0 +1,44 @@
> > +[FRAME]
> > +[SIDE_DATA]
> > +side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
> > +application version=1
> > +num_windows=1
> > +targeted_system_display_maximum_luminance=400/1
> > +maxscl=3340/100000
> > +maxscl=2870/100000
> > +maxscl=2720/100000
> > +average_maxrgb=510/100000
> > +num_distribution_maxrgb_percentiles=9
> > +distribution_maxrgb_percentage=1
> > +distribution_maxrgb_percentile=30/100000
> > +distribution_maxrgb_percentage=5
> > +distribution_maxrgb_percentile=2940/100000
> > +distribution_maxrgb_percentage=10
> > +distribution_maxrgb_percentile=255/100000
> > +distribution_maxrgb_percentage=25
> > +distribution_maxrgb_percentile=70/100000
> > +distribution_maxrgb_percentage=50
> > +distribution_maxrgb_percentile=1340/100000
> > +distribution_maxrgb_percentage=75
> > +distribution_maxrgb_percentile=1600/100000
> > +distribution_maxrgb_percentage=90
> > +distribution_maxrgb_percentile=1850/100000
> > +distribution_maxrgb_percentage=95
> > +distribution_maxrgb_percentile=1950/100000
> > +distribution_maxrgb_percentage=99
> > +distribution_maxrgb_percentile=2940/100000
> > +fraction_bright_pixels=1/1000
> > +knee_point_x=0/4095
> > +knee_point_y=0/4095
> > +num_bezier_curve_anchors=9
> > +bezier_curve_anchors=102/1023
> > +bezier_curve_anchors=205/1023
> > +bezier_curve_anchors=307/1023
> > +bezier_curve_anchors=410/1023
> > +bezier_curve_anchors=512/1023
> > +bezier_curve_anchors=614/1023
> > +bezier_curve_anchors=717/1023
> > +bezier_curve_anchors=819/1023
> > +bezier_curve_anchors=922/1023
> > +[/SIDE_DATA]
> > +[/FRAME]
> > \ No newline at end of file
> > --
> > 2.50.1.703.g449372360f-goog
>
> Note that this is a simplified version of v2 now that ffprobe supports
> the -codec:v flag.
> This allows testing reading and writing of HDR10+ metadata in a single test, and
> removes the need for a new test file.

Friendly ping.
_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

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

* [FFmpeg-devel] Re: [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-08-27 11:06     ` [FFmpeg-devel] " Maryla Ustarroz via ffmpeg-devel
@ 2025-09-02 13:30       ` Michael Niedermayer via ffmpeg-devel
  2025-09-02 13:39         ` James Almer via ffmpeg-devel
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Niedermayer via ffmpeg-devel @ 2025-09-02 13:30 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Michael Niedermayer


[-- Attachment #1.1: Type: text/plain, Size: 4523 bytes --]

On Wed, Aug 27, 2025 at 01:06:42PM +0200, Maryla Ustarroz via ffmpeg-devel wrote:
> On Mon, Aug 11, 2025 at 2:01 PM Maryla Ustarroz <maryla@google.com> wrote:
> >
> > On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
> > <maryla@google.com> wrote:
> > >
> > > Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
> > > ---
> > >  tests/Makefile                   |  1 +
> > >  tests/fate/av1.mak               |  7 +++++
> > >  tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
> > >  3 files changed, 52 insertions(+)
> > >  create mode 100644 tests/fate/av1.mak
> > >  create mode 100644 tests/ref/fate/libaom-hdr10-plus
> > >
> > > diff --git a/tests/Makefile b/tests/Makefile
> > > index 3f4dbaabfd..3eef290e41 100644
> > > --- a/tests/Makefile
> > > +++ b/tests/Makefile
> > > @@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
> > >  include $(SRC_PATH)/tests/fate/apv.mak
> > >  include $(SRC_PATH)/tests/fate/atrac.mak
> > >  include $(SRC_PATH)/tests/fate/audio.mak
> > > +include $(SRC_PATH)/tests/fate/av1.mak
> > >  include $(SRC_PATH)/tests/fate/bmp.mak
> > >  include $(SRC_PATH)/tests/fate/build.mak
> > >  include $(SRC_PATH)/tests/fate/caf.mak
> > > diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
> > > new file mode 100644
> > > index 0000000000..81072be5b8
> > > --- /dev/null
> > > +++ b/tests/fate/av1.mak
> > > @@ -0,0 +1,7 @@
> > > +# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
> > > +FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
> > > +fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
> > > +
> > > +FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > > +
> > > +fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > > diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
> > > new file mode 100644
> > > index 0000000000..c03dda7e7f
> > > --- /dev/null
> > > +++ b/tests/ref/fate/libaom-hdr10-plus
> > > @@ -0,0 +1,44 @@
> > > +[FRAME]
> > > +[SIDE_DATA]
> > > +side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
> > > +application version=1
> > > +num_windows=1
> > > +targeted_system_display_maximum_luminance=400/1
> > > +maxscl=3340/100000
> > > +maxscl=2870/100000
> > > +maxscl=2720/100000
> > > +average_maxrgb=510/100000
> > > +num_distribution_maxrgb_percentiles=9
> > > +distribution_maxrgb_percentage=1
> > > +distribution_maxrgb_percentile=30/100000
> > > +distribution_maxrgb_percentage=5
> > > +distribution_maxrgb_percentile=2940/100000
> > > +distribution_maxrgb_percentage=10
> > > +distribution_maxrgb_percentile=255/100000
> > > +distribution_maxrgb_percentage=25
> > > +distribution_maxrgb_percentile=70/100000
> > > +distribution_maxrgb_percentage=50
> > > +distribution_maxrgb_percentile=1340/100000
> > > +distribution_maxrgb_percentage=75
> > > +distribution_maxrgb_percentile=1600/100000
> > > +distribution_maxrgb_percentage=90
> > > +distribution_maxrgb_percentile=1850/100000
> > > +distribution_maxrgb_percentage=95
> > > +distribution_maxrgb_percentile=1950/100000
> > > +distribution_maxrgb_percentage=99
> > > +distribution_maxrgb_percentile=2940/100000
> > > +fraction_bright_pixels=1/1000
> > > +knee_point_x=0/4095
> > > +knee_point_y=0/4095
> > > +num_bezier_curve_anchors=9
> > > +bezier_curve_anchors=102/1023
> > > +bezier_curve_anchors=205/1023
> > > +bezier_curve_anchors=307/1023
> > > +bezier_curve_anchors=410/1023
> > > +bezier_curve_anchors=512/1023
> > > +bezier_curve_anchors=614/1023
> > > +bezier_curve_anchors=717/1023
> > > +bezier_curve_anchors=819/1023
> > > +bezier_curve_anchors=922/1023
> > > +[/SIDE_DATA]
> > > +[/FRAME]
> > > \ No newline at end of file
> > > --
> > > 2.50.1.703.g449372360f-goog
> >
> > Note that this is a simplified version of v2 now that ffprobe supports
> > the -codec:v flag.
> > This allows testing reading and writing of HDR10+ metadata in a single test, and
> > removes the need for a new test file.
> 
> Friendly ping.

will apply patchset

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor Safety -- Benjamin Franklin

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 163 bytes --]

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

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

* [FFmpeg-devel] Re: [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-09-02 13:30       ` Michael Niedermayer via ffmpeg-devel
@ 2025-09-02 13:39         ` James Almer via ffmpeg-devel
  2025-09-02 14:28           ` Michael Niedermayer via ffmpeg-devel
  0 siblings, 1 reply; 8+ messages in thread
From: James Almer via ffmpeg-devel @ 2025-09-02 13:39 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: James Almer


[-- Attachment #1.1.1: Type: text/plain, Size: 4354 bytes --]

On 9/2/2025 10:30 AM, Michael Niedermayer via ffmpeg-devel wrote:
> On Wed, Aug 27, 2025 at 01:06:42PM +0200, Maryla Ustarroz via ffmpeg-devel wrote:
>> On Mon, Aug 11, 2025 at 2:01 PM Maryla Ustarroz <maryla@google.com> wrote:
>>>
>>> On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
>>> <maryla@google.com> wrote:
>>>>
>>>> Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
>>>> ---
>>>>   tests/Makefile                   |  1 +
>>>>   tests/fate/av1.mak               |  7 +++++
>>>>   tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
>>>>   3 files changed, 52 insertions(+)
>>>>   create mode 100644 tests/fate/av1.mak
>>>>   create mode 100644 tests/ref/fate/libaom-hdr10-plus
>>>>
>>>> diff --git a/tests/Makefile b/tests/Makefile
>>>> index 3f4dbaabfd..3eef290e41 100644
>>>> --- a/tests/Makefile
>>>> +++ b/tests/Makefile
>>>> @@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
>>>>   include $(SRC_PATH)/tests/fate/apv.mak
>>>>   include $(SRC_PATH)/tests/fate/atrac.mak
>>>>   include $(SRC_PATH)/tests/fate/audio.mak
>>>> +include $(SRC_PATH)/tests/fate/av1.mak
>>>>   include $(SRC_PATH)/tests/fate/bmp.mak
>>>>   include $(SRC_PATH)/tests/fate/build.mak
>>>>   include $(SRC_PATH)/tests/fate/caf.mak
>>>> diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
>>>> new file mode 100644
>>>> index 0000000000..81072be5b8
>>>> --- /dev/null
>>>> +++ b/tests/fate/av1.mak
>>>> @@ -0,0 +1,7 @@
>>>> +# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
>>>> +FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
>>>> +fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
>>>> +
>>>> +FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
>>>> +
>>>> +fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
>>>> diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
>>>> new file mode 100644
>>>> index 0000000000..c03dda7e7f
>>>> --- /dev/null
>>>> +++ b/tests/ref/fate/libaom-hdr10-plus
>>>> @@ -0,0 +1,44 @@
>>>> +[FRAME]
>>>> +[SIDE_DATA]
>>>> +side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
>>>> +application version=1
>>>> +num_windows=1
>>>> +targeted_system_display_maximum_luminance=400/1
>>>> +maxscl=3340/100000
>>>> +maxscl=2870/100000
>>>> +maxscl=2720/100000
>>>> +average_maxrgb=510/100000
>>>> +num_distribution_maxrgb_percentiles=9
>>>> +distribution_maxrgb_percentage=1
>>>> +distribution_maxrgb_percentile=30/100000
>>>> +distribution_maxrgb_percentage=5
>>>> +distribution_maxrgb_percentile=2940/100000
>>>> +distribution_maxrgb_percentage=10
>>>> +distribution_maxrgb_percentile=255/100000
>>>> +distribution_maxrgb_percentage=25
>>>> +distribution_maxrgb_percentile=70/100000
>>>> +distribution_maxrgb_percentage=50
>>>> +distribution_maxrgb_percentile=1340/100000
>>>> +distribution_maxrgb_percentage=75
>>>> +distribution_maxrgb_percentile=1600/100000
>>>> +distribution_maxrgb_percentage=90
>>>> +distribution_maxrgb_percentile=1850/100000
>>>> +distribution_maxrgb_percentage=95
>>>> +distribution_maxrgb_percentile=1950/100000
>>>> +distribution_maxrgb_percentage=99
>>>> +distribution_maxrgb_percentile=2940/100000
>>>> +fraction_bright_pixels=1/1000
>>>> +knee_point_x=0/4095
>>>> +knee_point_y=0/4095
>>>> +num_bezier_curve_anchors=9
>>>> +bezier_curve_anchors=102/1023
>>>> +bezier_curve_anchors=205/1023
>>>> +bezier_curve_anchors=307/1023
>>>> +bezier_curve_anchors=410/1023
>>>> +bezier_curve_anchors=512/1023
>>>> +bezier_curve_anchors=614/1023
>>>> +bezier_curve_anchors=717/1023
>>>> +bezier_curve_anchors=819/1023
>>>> +bezier_curve_anchors=922/1023
>>>> +[/SIDE_DATA]
>>>> +[/FRAME]
>>>> \ No newline at end of file
>>>> --
>>>> 2.50.1.703.g449372360f-goog
>>>
>>> Note that this is a simplified version of v2 now that ffprobe supports
>>> the -codec:v flag.
>>> This allows testing reading and writing of HDR10+ metadata in a single test, and
>>> removes the need for a new test file.
>>
>> Friendly ping.
> 
> will apply patchset

Fix the no newline at end of file part before pushing, please.


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

[-- Attachment #2: Type: text/plain, Size: 163 bytes --]

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

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

* [FFmpeg-devel] Re: [PATCH v3 2/2] avcodec/libaom: Add test for HDR10+ metadata support
  2025-09-02 13:39         ` James Almer via ffmpeg-devel
@ 2025-09-02 14:28           ` Michael Niedermayer via ffmpeg-devel
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Niedermayer via ffmpeg-devel @ 2025-09-02 14:28 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Michael Niedermayer


[-- Attachment #1.1: Type: text/plain, Size: 5470 bytes --]

On Tue, Sep 02, 2025 at 10:39:12AM -0300, James Almer via ffmpeg-devel wrote:
> On 9/2/2025 10:30 AM, Michael Niedermayer via ffmpeg-devel wrote:
> > On Wed, Aug 27, 2025 at 01:06:42PM +0200, Maryla Ustarroz via ffmpeg-devel wrote:
> > > On Mon, Aug 11, 2025 at 2:01 PM Maryla Ustarroz <maryla@google.com> wrote:
> > > > 
> > > > On Mon, Aug 11, 2025 at 1:57 PM Maryla Ustarroz-Calonge
> > > > <maryla@google.com> wrote:
> > > > > 
> > > > > Signed-off-by: Maryla Ustarroz-Calonge <maryla@google.com>
> > > > > ---
> > > > >   tests/Makefile                   |  1 +
> > > > >   tests/fate/av1.mak               |  7 +++++
> > > > >   tests/ref/fate/libaom-hdr10-plus | 44 ++++++++++++++++++++++++++++++++
> > > > >   3 files changed, 52 insertions(+)
> > > > >   create mode 100644 tests/fate/av1.mak
> > > > >   create mode 100644 tests/ref/fate/libaom-hdr10-plus
> > > > > 
> > > > > diff --git a/tests/Makefile b/tests/Makefile
> > > > > index 3f4dbaabfd..3eef290e41 100644
> > > > > --- a/tests/Makefile
> > > > > +++ b/tests/Makefile
> > > > > @@ -162,6 +162,7 @@ include $(SRC_PATH)/tests/fate/apng.mak
> > > > >   include $(SRC_PATH)/tests/fate/apv.mak
> > > > >   include $(SRC_PATH)/tests/fate/atrac.mak
> > > > >   include $(SRC_PATH)/tests/fate/audio.mak
> > > > > +include $(SRC_PATH)/tests/fate/av1.mak
> > > > >   include $(SRC_PATH)/tests/fate/bmp.mak
> > > > >   include $(SRC_PATH)/tests/fate/build.mak
> > > > >   include $(SRC_PATH)/tests/fate/caf.mak
> > > > > diff --git a/tests/fate/av1.mak b/tests/fate/av1.mak
> > > > > new file mode 100644
> > > > > index 0000000000..81072be5b8
> > > > > --- /dev/null
> > > > > +++ b/tests/fate/av1.mak
> > > > > @@ -0,0 +1,7 @@
> > > > > +# Tests that reading and writing with codec libaom-av1 preserves HDR10+ metadata.
> > > > > +FATE_AV1_FFMPEG_FFPROBE-$(call ENCDEC, LIBAOM_AV1 VP9, IVF MATROSKA) += fate-libaom-hdr10-plus
> > > > > +fate-libaom-hdr10-plus: CMD = enc_external $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.webm ivf "-map 0 -c:v libaom-av1 -cpu-used 8" "-show_frames -show_entries frame=side_data_list -codec:v libaom-av1"
> > > > > +
> > > > > +FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > > > > +
> > > > > +fate-av1: $(FATE_AV1_FFMPEG_FFPROBE-yes)
> > > > > diff --git a/tests/ref/fate/libaom-hdr10-plus b/tests/ref/fate/libaom-hdr10-plus
> > > > > new file mode 100644
> > > > > index 0000000000..c03dda7e7f
> > > > > --- /dev/null
> > > > > +++ b/tests/ref/fate/libaom-hdr10-plus
> > > > > @@ -0,0 +1,44 @@
> > > > > +[FRAME]
> > > > > +[SIDE_DATA]
> > > > > +side_data_type=HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
> > > > > +application version=1
> > > > > +num_windows=1
> > > > > +targeted_system_display_maximum_luminance=400/1
> > > > > +maxscl=3340/100000
> > > > > +maxscl=2870/100000
> > > > > +maxscl=2720/100000
> > > > > +average_maxrgb=510/100000
> > > > > +num_distribution_maxrgb_percentiles=9
> > > > > +distribution_maxrgb_percentage=1
> > > > > +distribution_maxrgb_percentile=30/100000
> > > > > +distribution_maxrgb_percentage=5
> > > > > +distribution_maxrgb_percentile=2940/100000
> > > > > +distribution_maxrgb_percentage=10
> > > > > +distribution_maxrgb_percentile=255/100000
> > > > > +distribution_maxrgb_percentage=25
> > > > > +distribution_maxrgb_percentile=70/100000
> > > > > +distribution_maxrgb_percentage=50
> > > > > +distribution_maxrgb_percentile=1340/100000
> > > > > +distribution_maxrgb_percentage=75
> > > > > +distribution_maxrgb_percentile=1600/100000
> > > > > +distribution_maxrgb_percentage=90
> > > > > +distribution_maxrgb_percentile=1850/100000
> > > > > +distribution_maxrgb_percentage=95
> > > > > +distribution_maxrgb_percentile=1950/100000
> > > > > +distribution_maxrgb_percentage=99
> > > > > +distribution_maxrgb_percentile=2940/100000
> > > > > +fraction_bright_pixels=1/1000
> > > > > +knee_point_x=0/4095
> > > > > +knee_point_y=0/4095
> > > > > +num_bezier_curve_anchors=9
> > > > > +bezier_curve_anchors=102/1023
> > > > > +bezier_curve_anchors=205/1023
> > > > > +bezier_curve_anchors=307/1023
> > > > > +bezier_curve_anchors=410/1023
> > > > > +bezier_curve_anchors=512/1023
> > > > > +bezier_curve_anchors=614/1023
> > > > > +bezier_curve_anchors=717/1023
> > > > > +bezier_curve_anchors=819/1023
> > > > > +bezier_curve_anchors=922/1023
> > > > > +[/SIDE_DATA]
> > > > > +[/FRAME]
> > > > > \ No newline at end of file
> > > > > --
> > > > > 2.50.1.703.g449372360f-goog
> > > > 
> > > > Note that this is a simplified version of v2 now that ffprobe supports
> > > > the -codec:v flag.
> > > > This allows testing reading and writing of HDR10+ metadata in a single test, and
> > > > removes the need for a new test file.
> > > 
> > > Friendly ping.
> > 
> > will apply patchset
> 
> Fix the no newline at end of file part before pushing, please.

will do

thx for noticing

iam also fixing all the "via ffmpeg-devel" Authors

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Modern terrorism, a quick summary: Need oil, start war with country that
has oil, kill hundread thousand in war. Let country fall into chaos,
be surprised about raise of fundamantalists. Drop more bombs, kill more
people, be surprised about them taking revenge and drop even more bombs
and strip your own citizens of their rights and freedoms. to be continued

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 163 bytes --]

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

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

end of thread, other threads:[~2025-09-02 14:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-11 11:57 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add HDR10+ metadata support Maryla Ustarroz-Calonge via ffmpeg-devel
2025-08-11 11:57 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libaom: Add test for " Maryla Ustarroz-Calonge via ffmpeg-devel
2025-08-11 12:01   ` Maryla Ustarroz via ffmpeg-devel
2025-08-27 11:06     ` [FFmpeg-devel] " Maryla Ustarroz via ffmpeg-devel
2025-09-02 13:30       ` Michael Niedermayer via ffmpeg-devel
2025-09-02 13:39         ` James Almer via ffmpeg-devel
2025-09-02 14:28           ` Michael Niedermayer via ffmpeg-devel
2025-08-11 11:58 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libaom: Add " Maryla Ustarroz via ffmpeg-devel

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