[PATCH 7/8] edid-decode: add HDR Dynamic Metadata Data Block
Hans Verkuil
hverkuil at xs4all.nl
Thu Sep 7 18:03:30 UTC 2017
From: Hans Verkuil <hans.verkuil at cisco.com>
Support this CTA-861-G data block.
Signed-off-by: Hans Verkuil <hans.verkuil at cisco.com>
---
edid-decode.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/edid-decode.c b/edid-decode.c
index effcf777..cdba099d 100644
--- a/edid-decode.c
+++ b/edid-decode.c
@@ -1865,6 +1865,35 @@ cea_hdr_static_metadata_block(unsigned char *x)
x[6], (50.0 * pow(2, x[4] / 32.0)) * pow(x[6] / 255.0, 2) / 100.0);
}
+static void
+cea_hdr_dyn_metadata_block(unsigned char *x)
+{
+ int length = x[0] & 0x1f;
+
+ if (length < 1)
+ return;
+ length--;
+ x--;
+ while (length >= 3) {
+ int type_len = x[0];
+ int type = x[1] | (x[2] << 8);
+
+ if (length < type_len)
+ return;
+ printf(" HDR Dynamic Metadata Type %d\n", type);
+ switch (type) {
+ case 1:
+ case 2:
+ case 4:
+ printf(" Version: %d\n", x[3] & 0xf);
+ break;
+ default:
+ break;
+ }
+ length -= type_len;
+ }
+}
+
static void
cea_block(unsigned char *x)
{
@@ -1931,6 +1960,10 @@ cea_block(unsigned char *x)
printf("HDR static metadata data block\n");
cea_hdr_static_metadata_block(x);
break;
+ case 0x07:
+ printf("HDR dynamic metadata data block\n");
+ cea_hdr_dyn_metadata_block(x);
+ break;
case 0x0d:
printf("Video format preference data block\n");
cea_vfpdb(x);
--
2.14.1
More information about the xorg-devel
mailing list