diff options
author | Arnaud Vrac <avrac@freebox.fr> | 2016-07-08 16:09:40 +0200 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2016-07-15 11:20:28 -0400 |
commit | a555b6ccd33297cc0ec4591d3c5b4a00e7fb96a2 (patch) | |
tree | 319b934bfa5456b598d20fc41ebbe88dcd9899e2 | |
parent | b9392a2f0f2244314075277a17bf4924c2aa27ab (diff) |
Print video format preference data block
This only prints VIC codes, not DTD.
-rw-r--r-- | edid-decode.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/edid-decode.c b/edid-decode.c index cd5a257..2e367b3 100644 --- a/edid-decode.c +++ b/edid-decode.c @@ -795,6 +795,36 @@ cea_y420vdb(unsigned char *x) cea_svd(x + 2, length - 1); } +static void +cea_vfpdb(unsigned char *x) +{ + int length = x[0] & 0x1f; + int i; + + for (i = 2; i <= length; i++) { + unsigned char svr = x[i]; + + if ((svr > 0 && svr < 128) || (svr > 192 && svr < 254)) { + unsigned char vic; + const char *mode; + int index; + + vic = svr; + index = vic - 1; + + if (index < ARRAY_SIZE(edid_cea_modes)) + mode = edid_cea_modes[vic]; + else + mode = "Unknown mode"; + + printf(" VIC %02d %s\n", vic, mode); + + } else if (svr > 128 && svr < 145) { + printf(" DTD number %02d\n", svr - 128); + } + } +} + static const char *edid_cea_hdmi_modes[] = { "3840x2160@30Hz", "3840x2160@25Hz", @@ -1128,6 +1158,7 @@ cea_block(unsigned char *x) break; case 0x0d: printf("Video format preference data block\n"); + cea_vfpdb(x); break; case 0x0e: printf("YCbCr 4:2:0 video data block\n"); |