This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

The following commit(s) were added to refs/heads/master by this push:
     new c8dd769217 ffprobe: Support printing SMPTE 2094 APP5 side data
c8dd769217 is described below

commit c8dd769217e93b66a494ac647e482a67efecd0f3
Author:     Vignesh Venkat <[email protected]>
AuthorDate: Mon Apr 13 13:45:21 2026 -0700
Commit:     James Almer <[email protected]>
CommitDate: Tue Apr 14 20:41:14 2026 +0000

    ffprobe: Support printing SMPTE 2094 APP5 side data
    
    Signed-off-by: Vignesh Venkatasubramanian <[email protected]>
---
 fftools/ffprobe.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 49345d7b72..aec358aa2d 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -805,6 +805,62 @@ static void print_dynamic_hdr10_plus(AVTextFormatContext 
*tfc, const AVDynamicHD
     }
 }
 
+static void print_dynamic_hdr_smpte2094_app5(AVTextFormatContext *tfc, const 
AVDynamicHDRSmpte2094App5 *metadata)
+{
+    if (!metadata)
+        return;
+    print_int("application_version", metadata->application_version);
+    print_int("minimum_application_version", 
metadata->minimum_application_version);
+    print_int("has_custom_hdr_reference_white_flag", 
metadata->has_custom_hdr_reference_white_flag);
+    print_int("has_adaptive_tone_map_flag", 
metadata->has_adaptive_tone_map_flag);
+
+    if (metadata->has_custom_hdr_reference_white_flag)
+        print_int("hdr_reference_white", metadata->hdr_reference_white);
+
+    if (!metadata->has_adaptive_tone_map_flag)
+        return;
+
+    print_int("baseline_hdr_headroom", metadata->baseline_hdr_headroom);
+    print_int("use_reference_white_tone_mapping_flag", 
metadata->use_reference_white_tone_mapping_flag);
+
+    if (metadata->use_reference_white_tone_mapping_flag)
+        return;
+
+    print_int("num_alternate_images", metadata->num_alternate_images);
+    print_int("gain_application_space_chromaticities_flag", 
metadata->gain_application_space_chromaticities_flag);
+    print_int("has_common_component_mix_params_flag", 
metadata->has_common_component_mix_params_flag);
+    print_int("has_common_curve_params_flag", 
metadata->has_common_curve_params_flag);
+
+    if (metadata->gain_application_space_chromaticities_flag == 3) {
+        for (int i = 0; i < 8; i++)
+            print_int("gain_application_space_chromaticities", 
metadata->gain_application_space_chromaticities[i]);
+    }
+
+    for (int a = 0; a < metadata->num_alternate_images; a++) {
+        print_int("alternate_hdr_headroom", 
metadata->alternate_hdr_headrooms[a]);
+
+        print_int("component_mixing_type", metadata->component_mixing_type[a]);
+        if (metadata->component_mixing_type[a] == 3) {
+            for (int k = 0; k < 6; k++) {
+                print_int("has_component_mixing_coefficient_flag", 
metadata->has_component_mixing_coefficient_flag[a][k]);
+                if (metadata->has_component_mixing_coefficient_flag[a][k])
+                    print_int("component_mixing_coefficient", 
metadata->component_mixing_coefficient[a][k]);
+            }
+        }
+
+        print_int("gain_curve_num_control_points_minus_1", 
metadata->gain_curve_num_control_points_minus_1[a]);
+        print_int("gain_curve_use_pchip_slope_flag", 
metadata->gain_curve_use_pchip_slope_flag[a]);
+        for (int c = 0; c <= 
metadata->gain_curve_num_control_points_minus_1[a]; c++)
+            print_int("gain_curve_control_point_x", 
metadata->gain_curve_control_points_x[a][c]);
+        for (int c = 0; c <= 
metadata->gain_curve_num_control_points_minus_1[a]; c++)
+            print_int("gain_curve_control_point_y", 
metadata->gain_curve_control_points_y[a][c]);
+        if (!metadata->gain_curve_use_pchip_slope_flag[a]) {
+            for (int c = 0; c <= 
metadata->gain_curve_num_control_points_minus_1[a]; c++)
+                print_int("gain_curve_control_point_theta", 
metadata->gain_curve_control_points_theta[a][c]);
+        }
+    }
+}
+
 static void print_dynamic_hdr_vivid(AVTextFormatContext *tfc, const 
AVDynamicHDRVivid *metadata)
 {
     if (!metadata)
@@ -1384,6 +1440,9 @@ static void print_frame_side_data(AVTextFormatContext 
*tfc,
         } else if (sd->type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS) {
             AVDynamicHDRPlus *metadata = (AVDynamicHDRPlus *)sd->data;
             print_dynamic_hdr10_plus(tfc, metadata);
+        } else if (sd->type == AV_FRAME_DATA_DYNAMIC_HDR_SMPTE_2094_APP5) {
+            AVDynamicHDRSmpte2094App5 *metadata = (AVDynamicHDRSmpte2094App5 
*)sd->data;
+            print_dynamic_hdr_smpte2094_app5(tfc, metadata);
         } else if (sd->type == AV_FRAME_DATA_CONTENT_LIGHT_LEVEL) {
             print_context_light_level(tfc, (AVContentLightMetadata *)sd->data);
         } else if (sd->type == AV_FRAME_DATA_ICC_PROFILE) {

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to