Browse Source

fftools/ffprobe: implement dv_md_compression

Niklas Haas 8 months ago
parent
commit
b5aeafc00a

+ 9 - 0
fftools/ffprobe.c

@@ -2603,6 +2603,7 @@ static void print_pkt_side_data(WriterContext *w,
             print_dynamic_hdr10_plus(w, metadata);
         } else if (sd->type == AV_PKT_DATA_DOVI_CONF) {
             AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *)sd->data;
+            const char *comp = "unknown";
             print_int("dv_version_major", dovi->dv_version_major);
             print_int("dv_version_minor", dovi->dv_version_minor);
             print_int("dv_profile", dovi->dv_profile);
@@ -2611,6 +2612,14 @@ static void print_pkt_side_data(WriterContext *w,
             print_int("el_present_flag", dovi->el_present_flag);
             print_int("bl_present_flag", dovi->bl_present_flag);
             print_int("dv_bl_signal_compatibility_id", dovi->dv_bl_signal_compatibility_id);
+            switch (dovi->dv_md_compression)
+            {
+                case AV_DOVI_COMPRESSION_NONE:     comp = "none";     break;
+                case AV_DOVI_COMPRESSION_LIMITED:  comp = "limited";  break;
+                case AV_DOVI_COMPRESSION_RESERVED: comp = "reserved"; break;
+                case AV_DOVI_COMPRESSION_EXTENDED: comp = "extended"; break;
+            }
+            print_str("dv_md_compression", comp);
         } else if (sd->type == AV_PKT_DATA_AUDIO_SERVICE_TYPE) {
             enum AVAudioServiceType *t = (enum AVAudioServiceType *)sd->data;
             print_int("service_type", *t);

+ 1 - 0
tests/ref/fate/matroska-dovi-write-config7

@@ -45,5 +45,6 @@ rpu_present_flag=1
 el_present_flag=1
 bl_present_flag=0
 dv_bl_signal_compatibility_id=6
+dv_md_compression=none
 [/SIDE_DATA]
 [/STREAM]

+ 1 - 0
tests/ref/fate/matroska-dovi-write-config8

@@ -64,5 +64,6 @@ rpu_present_flag=1
 el_present_flag=0
 bl_present_flag=1
 dv_bl_signal_compatibility_id=4
+dv_md_compression=none
 [/SIDE_DATA]
 [/STREAM]