This patchset is a set of bug-fixes, additions, and changes I've made while examining various EDIDs I have encountered. I made a fork at https://github.com/joevt/edid-decode with the commits listed below. For the first commit, I have a script to convert C printf format strings in the source code to regular expressions and then use those to find EDIDs in my collection (or in linuxhw/EDID) that contain matches to those regular expressions that are not matched by the EDIDs in the data directory. It prioritizes EDIDs that contain the most matches. joevt (11): edid-decode: add more example EDIDs edid-decode: ignore dSYM edid-decode: change install directories for macOS edid-decode: add bounds checking edid-decode: fix standard timing vertical pixels edid-decode: linefeed before fail edid-decode: always linefeed after hex_block edid-decode: output full frequencies for 4:2:0 edid-decode: allow undefined aspect ratio edid-decode: add warnings to VESA VSDB edid-decode: cta and displayid changes .gitignore | 1 + Makefile | 22 +- data/_EDID_ACR_0497 | Bin 0 -> 256 bytes data/_EDID_AIC_1005 | Bin 0 -> 256 bytes data/_EDID_APP_921f | Bin 0 -> 256 bytes data/_EDID_APP_9220 | Bin 0 -> 256 bytes data/_EDID_BNQ_802e | Bin 0 -> 256 bytes data/_EDID_CMN_152a | Bin 0 -> 256 bytes data/_EDID_CVT_0003 | Bin 0 -> 256 bytes data/_EDID_DEL_0001 | Bin 0 -> 128 bytes data/_EDID_DEL_a07b | Bin 0 -> 384 bytes data/_EDID_DLM_0000 | Bin 0 -> 256 bytes data/_EDID_DON_0046 | Bin 0 -> 256 bytes data/_EDID_DVI_0000 | Bin 0 -> 128 bytes data/_EDID_ELE_0938 | Bin 0 -> 256 bytes data/_EDID_GDH_0030 | Bin 0 -> 256 bytes data/_EDID_GSM_0001 | Bin 0 -> 256 bytes data/_EDID_GSM_5b08 | Bin 0 -> 256 bytes data/_EDID_GSM_5b08_2 | Bin 0 -> 256 bytes data/_EDID_HPN_3530 | Bin 0 -> 256 bytes data/_EDID_HPN_3645 | Bin 0 -> 256 bytes data/_EDID_HSD_03e9 | Bin 0 -> 128 bytes data/_EDID_HSD_04bb | Bin 0 -> 128 bytes data/_EDID_HWP_331b | Bin 0 -> 256 bytes data/_EDID_HYO_049b | Bin 0 -> 256 bytes data/_EDID_IVM_6615 | Bin 0 -> 256 bytes data/_EDID_IVM_6640 | Bin 0 -> 256 bytes data/_EDID_KMR_461a | Bin 0 -> 256 bytes data/_EDID_LEN_65cf | Bin 0 -> 256 bytes data/_EDID_LEN_65ed | Bin 0 -> 384 bytes data/_EDID_LEN_b800 | Bin 0 -> 256 bytes data/_EDID_LGD_05c0 | Bin 0 -> 128 bytes data/_EDID_LGD_4601 | Bin 0 -> 128 bytes data/_EDID_LTM_2c02 | Bin 0 -> 256 bytes data/_EDID_MSI_1462 | Bin 0 -> 256 bytes data/_EDID_NOV_0405 | Bin 0 -> 256 bytes data/_EDID_NSO_5605 | Bin 0 -> 128 bytes data/_EDID_OEC_d501 | Bin 0 -> 128 bytes data/_EDID_PDI_0030 | Bin 0 -> 128 bytes data/_EDID_PHL_01ea | Bin 0 -> 256 bytes data/_EDID_PHL_01ea_2 | Bin 0 -> 256 bytes data/_EDID_PHL_08fa | Bin 0 -> 512 bytes data/_EDID_PHL_c193 | Bin 0 -> 256 bytes data/_EDID_PIO_0000 | Bin 0 -> 256 bytes data/_EDID_PKB_00f8 | Bin 0 -> 128 bytes data/_EDID_RHT_1234 | Bin 0 -> 256 bytes data/_EDID_RJT_003a | Bin 0 -> 256 bytes data/_EDID_SAM_08f1 | Bin 0 -> 256 bytes data/_EDID_SAM_0f14 | Bin 0 -> 256 bytes data/_EDID_SAM_0f99 | Bin 0 -> 512 bytes data/_EDID_SAM_7004 | Bin 0 -> 256 bytes data/_EDID_SAN_2400 | Bin 0 -> 128 bytes data/_EDID_SCN_03ff | Bin 0 -> 128 bytes data/_EDID_SEK_0000 | Bin 0 -> 256 bytes data/_EDID_SHP_1008 | Bin 0 -> 256 bytes data/_EDID_SPT_1801 | Bin 0 -> 128 bytes data/_EDID_SUN_058f | Bin 0 -> 256 bytes data/_EDID_TCL_5655 | Bin 0 -> 256 bytes data/_EDID_TGL_00f1 | Bin 0 -> 256 bytes data/_EDID_UPD_4843 | Bin 0 -> 256 bytes data/_EDID_USR_0100 | Bin 0 -> 256 bytes data/_EDID_VIT_03dc | Bin 0 -> 128 bytes data/_EDID_VIZ_0030 | Bin 0 -> 128 bytes data/_EDID_VIZ_0067 | Bin 0 -> 256 bytes data/_EDID_VIZ_0092 | Bin 0 -> 256 bytes data/_EDID_VIZ_1018 | Bin 0 -> 256 bytes data/_EDID_VIZ_1018_2 | Bin 0 -> 256 bytes data/_EDID_VSC_0e23 | Bin 0 -> 256 bytes data/_EDID_VSC_0f1e | Bin 0 -> 256 bytes data/_EDID_VSC_2034 | Bin 0 -> 256 bytes data/_EDID_VSC_bd2b | Bin 0 -> 384 bytes data/_EDID_XXX_001a | Bin 0 -> 256 bytes data/_EDID_YTH_0156 | Bin 0 -> 256 bytes data/_EDID_YTH_1560 | Bin 0 -> 256 bytes data/acer-xb321hk-dp | Bin 0 -> 256 bytes data/acer-xv273k-corrected_difdb | Bin 0 -> 384 bytes data/{acer-xv273k-dp => acer-xv273k-dp1} | Bin data/acer-xv273k-dp1-corrupted | Bin 0 -> 384 bytes data/acer-xv273k-dp2 | Bin 0 -> 384 bytes data/acer-xv273k-dp2-corrupted | Bin 0 -> 384 bytes data/acer-xv273k-hdmi1 | Bin 0 -> 256 bytes data/acer-xv273k-hdmi2 | Bin 0 -> 256 bytes data/aoc-c24g1-dp | Bin 0 -> 256 bytes data/aoc-c24g1-hdmi | Bin 0 -> 256 bytes .../apple-17-inch-studio-display-crt-override | Bin 0 -> 128 bytes data/apple-applevision-750-override | Bin 0 -> 128 bytes data/apple-applevision-850-override | Bin 0 -> 128 bytes data/apple-cinemahd-23-2006-dvi | Bin 0 -> 256 bytes data/apple-cinemahd-23-2008-dvi | Bin 0 -> 256 bytes data/apple-imac-27-inch-mid-2010 | Bin 0 -> 128 bytes data/apple-imac-retina-5k-27-inch-2017-tile0 | Bin 0 -> 256 bytes data/apple-imac-retina-5k-27-inch-2017-tile1 | Bin 0 -> 256 bytes data/apple-macbookpro-16inch-2019 | Bin 0 -> 256 bytes data/apple-xdr-5k-tile0 | Bin 0 -> 768 bytes data/apple-xdr-5k-tile1 | Bin 0 -> 512 bytes data/apple-xdr-6k | Bin 0 -> 640 bytes data/apple-xdr-6k-tile0 | Bin 0 -> 896 bytes data/apple-xdr-6k-tile1 | Bin 0 -> 640 bytes data/asus-pb287 | Bin 0 -> 256 bytes data/asus-pq321-dp-tile0 | Bin 0 -> 384 bytes data/asus-xg438q-dp | Bin 0 -> 384 bytes data/atlona-athd420-hdmi-override | Bin 0 -> 256 bytes data/chiyakeji-r1811-dp | Bin 0 -> 384 bytes data/chiyakeji-r9a18-dp-tile1 | Bin 0 -> 384 bytes data/dell-up2715k-dp1-optomedia-cmv535 | Bin 0 -> 128 bytes data/hisense-h9g-hdmi | Bin 0 -> 256 bytes data/kds-vs555-vga | Bin 0 -> 128 bytes data/lg-31mu97-override | Bin 0 -> 384 bytes data/lg-34gn850b-dp | Bin 0 -> 384 bytes data/lg-34wk95uw-dp | Bin 0 -> 384 bytes data/lg-34wk95uw-overlay | Bin 0 -> 384 bytes data/lg-34wk95uw-thunderbolt-dp1-tile0 | Bin 0 -> 512 bytes data/lg-34wk95uw-thunderbolt-dp2-tile1 | Bin 0 -> 256 bytes data/lg-55sj850v-hdmi | Bin 0 -> 256 bytes data/lg-c8-hdmi | Bin 0 -> 256 bytes data/lg-ultrafine-5k-v1-thunderbolt-dp1-tile0 | Bin 0 -> 384 bytes data/lg-ultrafine-5k-v1-thunderbolt-dp2-tile1 | Bin 0 -> 256 bytes data/microsoft-surfacebook | Bin 0 -> 128 bytes data/optomedia-cmv535-hdmi_dip00-v2018 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip00-v20180312 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip00-v20180618 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip01-v2018 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip01-v20180312 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip01-v20180618 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip10-v2018 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip10-v20180312 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip11-v2018 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip11-v20180312 | Bin 0 -> 256 bytes data/optomedia-cmv535-hdmi_dip11-v20180731 | Bin 0 -> 256 bytes data/panasonic-tx65gxr900-hdmi | Bin 0 -> 256 bytes data/philips-ftv-hdmi1.4 | Bin 0 -> 256 bytes data/philips-ftv-hdmi2.0 | Bin 0 -> 256 bytes data/planar-ix2790 | Bin 0 -> 384 bytes data/realtek-r9a18-hdmi | Bin 0 -> 256 bytes data/samsung-lu28r55-hdmi | Bin 0 -> 256 bytes data/samsung-q800t-hdmi2.0 | Bin 0 -> 256 bytes data/samsung-q800t-hdmi2.1 | Bin 0 -> 256 bytes data/samsung-q800t-hdmi2.1-game | Bin 0 -> 256 bytes data/sharp-lc70uq17u-hdmi1 | Bin 0 -> 256 bytes data/sharp-lc70uq17u-hdmi2 | Bin 0 -> 256 bytes data/sharp-lc70uq17u-hdmi3 | Bin 0 -> 256 bytes data/sharp-lc70uq17u-hdmi4 | Bin 0 -> 256 bytes data/sharp-lc70uq17u-vga | Bin 0 -> 128 bytes data/sony-gdmf520-vga | Bin 0 -> 128 bytes data/sony-snyc901-override | Bin 0 -> 256 bytes data/sony-snyd301-override | Bin 0 -> 256 bytes data/sony-x900f-hdmi | Bin 0 -> 256 bytes data/vizio-e65e0-hdmi | Bin 0 -> 256 bytes data/vizio-m60c3-hdmi-onkyo-txnr555 | Bin 0 -> 256 bytes edid-decode.cpp | 109 +++- edid-decode.h | 20 +- oui.h | 20 + parse-base-block.cpp | 3 +- parse-cta-block.cpp | 456 ++++++---------- parse-displayid-block.cpp | 512 +++++++++--------- parse-vtb-ext-block.cpp | 13 +- 156 files changed, 575 insertions(+), 581 deletions(-) create mode 100644 data/_EDID_ACR_0497 create mode 100644 data/_EDID_AIC_1005 create mode 100644 data/_EDID_APP_921f create mode 100644 data/_EDID_APP_9220 create mode 100644 data/_EDID_BNQ_802e create mode 100644 data/_EDID_CMN_152a create mode 100644 data/_EDID_CVT_0003 create mode 100644 data/_EDID_DEL_0001 create mode 100644 data/_EDID_DEL_a07b create mode 100644 data/_EDID_DLM_0000 create mode 100644 data/_EDID_DON_0046 create mode 100644 data/_EDID_DVI_0000 create mode 100644 data/_EDID_ELE_0938 create mode 100644 data/_EDID_GDH_0030 create mode 100644 data/_EDID_GSM_0001 create mode 100644 data/_EDID_GSM_5b08 create mode 100644 data/_EDID_GSM_5b08_2 create mode 100644 data/_EDID_HPN_3530 create mode 100644 data/_EDID_HPN_3645 create mode 100644 data/_EDID_HSD_03e9 create mode 100644 data/_EDID_HSD_04bb create mode 100644 data/_EDID_HWP_331b create mode 100644 data/_EDID_HYO_049b create mode 100644 data/_EDID_IVM_6615 create mode 100644 data/_EDID_IVM_6640 create mode 100644 data/_EDID_KMR_461a create mode 100644 data/_EDID_LEN_65cf create mode 100644 data/_EDID_LEN_65ed create mode 100644 data/_EDID_LEN_b800 create mode 100644 data/_EDID_LGD_05c0 create mode 100644 data/_EDID_LGD_4601 create mode 100644 data/_EDID_LTM_2c02 create mode 100644 data/_EDID_MSI_1462 create mode 100644 data/_EDID_NOV_0405 create mode 100644 data/_EDID_NSO_5605 create mode 100644 data/_EDID_OEC_d501 create mode 100644 data/_EDID_PDI_0030 create mode 100644 data/_EDID_PHL_01ea create mode 100644 data/_EDID_PHL_01ea_2 create mode 100644 data/_EDID_PHL_08fa create mode 100644 data/_EDID_PHL_c193 create mode 100644 data/_EDID_PIO_0000 create mode 100644 data/_EDID_PKB_00f8 create mode 100644 data/_EDID_RHT_1234 create mode 100644 data/_EDID_RJT_003a create mode 100644 data/_EDID_SAM_08f1 create mode 100644 data/_EDID_SAM_0f14 create mode 100644 data/_EDID_SAM_0f99 create mode 100644 data/_EDID_SAM_7004 create mode 100644 data/_EDID_SAN_2400 create mode 100644 data/_EDID_SCN_03ff create mode 100644 data/_EDID_SEK_0000 create mode 100644 data/_EDID_SHP_1008 create mode 100644 data/_EDID_SPT_1801 create mode 100644 data/_EDID_SUN_058f create mode 100644 data/_EDID_TCL_5655 create mode 100644 data/_EDID_TGL_00f1 create mode 100644 data/_EDID_UPD_4843 create mode 100644 data/_EDID_USR_0100 create mode 100644 data/_EDID_VIT_03dc create mode 100644 data/_EDID_VIZ_0030 create mode 100644 data/_EDID_VIZ_0067 create mode 100644 data/_EDID_VIZ_0092 create mode 100644 data/_EDID_VIZ_1018 create mode 100644 data/_EDID_VIZ_1018_2 create mode 100644 data/_EDID_VSC_0e23 create mode 100644 data/_EDID_VSC_0f1e create mode 100644 data/_EDID_VSC_2034 create mode 100644 data/_EDID_VSC_bd2b create mode 100644 data/_EDID_XXX_001a create mode 100644 data/_EDID_YTH_0156 create mode 100644 data/_EDID_YTH_1560 create mode 100644 data/acer-xb321hk-dp create mode 100644 data/acer-xv273k-corrected_difdb rename data/{acer-xv273k-dp => acer-xv273k-dp1} (100%) create mode 100644 data/acer-xv273k-dp1-corrupted create mode 100644 data/acer-xv273k-dp2 create mode 100644 data/acer-xv273k-dp2-corrupted create mode 100644 data/acer-xv273k-hdmi1 create mode 100644 data/acer-xv273k-hdmi2 create mode 100644 data/aoc-c24g1-dp create mode 100644 data/aoc-c24g1-hdmi create mode 100644 data/apple-17-inch-studio-display-crt-override create mode 100644 data/apple-applevision-750-override create mode 100644 data/apple-applevision-850-override create mode 100644 data/apple-cinemahd-23-2006-dvi create mode 100644 data/apple-cinemahd-23-2008-dvi create mode 100644 data/apple-imac-27-inch-mid-2010 create mode 100644 data/apple-imac-retina-5k-27-inch-2017-tile0 create mode 100644 data/apple-imac-retina-5k-27-inch-2017-tile1 create mode 100644 data/apple-macbookpro-16inch-2019 create mode 100644 data/apple-xdr-5k-tile0 create mode 100644 data/apple-xdr-5k-tile1 create mode 100644 data/apple-xdr-6k create mode 100644 data/apple-xdr-6k-tile0 create mode 100644 data/apple-xdr-6k-tile1 create mode 100644 data/asus-pb287 create mode 100644 data/asus-pq321-dp-tile0 create mode 100644 data/asus-xg438q-dp create mode 100644 data/atlona-athd420-hdmi-override create mode 100644 data/chiyakeji-r1811-dp create mode 100644 data/chiyakeji-r9a18-dp-tile1 create mode 100644 data/dell-up2715k-dp1-optomedia-cmv535 create mode 100644 data/hisense-h9g-hdmi create mode 100644 data/kds-vs555-vga create mode 100644 data/lg-31mu97-override create mode 100644 data/lg-34gn850b-dp create mode 100644 data/lg-34wk95uw-dp create mode 100644 data/lg-34wk95uw-overlay create mode 100644 data/lg-34wk95uw-thunderbolt-dp1-tile0 create mode 100644 data/lg-34wk95uw-thunderbolt-dp2-tile1 create mode 100644 data/lg-55sj850v-hdmi create mode 100644 data/lg-c8-hdmi create mode 100644 data/lg-ultrafine-5k-v1-thunderbolt-dp1-tile0 create mode 100644 data/lg-ultrafine-5k-v1-thunderbolt-dp2-tile1 create mode 100644 data/microsoft-surfacebook create mode 100644 data/optomedia-cmv535-hdmi_dip00-v2018 create mode 100644 data/optomedia-cmv535-hdmi_dip00-v20180312 create mode 100644 data/optomedia-cmv535-hdmi_dip00-v20180618 create mode 100644 data/optomedia-cmv535-hdmi_dip01-v2018 create mode 100644 data/optomedia-cmv535-hdmi_dip01-v20180312 create mode 100644 data/optomedia-cmv535-hdmi_dip01-v20180618 create mode 100644 data/optomedia-cmv535-hdmi_dip10-v2018 create mode 100644 data/optomedia-cmv535-hdmi_dip10-v20180312 create mode 100644 data/optomedia-cmv535-hdmi_dip11-v2018 create mode 100644 data/optomedia-cmv535-hdmi_dip11-v20180312 create mode 100644 data/optomedia-cmv535-hdmi_dip11-v20180731 create mode 100644 data/panasonic-tx65gxr900-hdmi create mode 100644 data/philips-ftv-hdmi1.4 create mode 100644 data/philips-ftv-hdmi2.0 create mode 100644 data/planar-ix2790 create mode 100644 data/realtek-r9a18-hdmi create mode 100644 data/samsung-lu28r55-hdmi create mode 100644 data/samsung-q800t-hdmi2.0 create mode 100644 data/samsung-q800t-hdmi2.1 create mode 100644 data/samsung-q800t-hdmi2.1-game create mode 100644 data/sharp-lc70uq17u-hdmi1 create mode 100644 data/sharp-lc70uq17u-hdmi2 create mode 100644 data/sharp-lc70uq17u-hdmi3 create mode 100644 data/sharp-lc70uq17u-hdmi4 create mode 100644 data/sharp-lc70uq17u-vga create mode 100644 data/sony-gdmf520-vga create mode 100644 data/sony-snyc901-override create mode 100644 data/sony-snyd301-override create mode 100644 data/sony-x900f-hdmi create mode 100644 data/vizio-e65e0-hdmi create mode 100644 data/vizio-m60c3-hdmi-onkyo-txnr555 create mode 100644 oui.h -- 2.24.3 (Apple Git-128)