This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:
Subject: edid-decode: fix speaker mappings Author: Hans Verkuil <[email protected]> Date: Wed Oct 22 10:09:10 2025 +0200 The SADB, HDMI ADB and RCDB all have slightly different speaker mappings, unfortunately. So create three separate mappings for the three DBs. The SADB deprecation check was also incorrect, one bit was marked as invalid, when it was really valid. Signed-off-by: Hans Verkuil <[email protected]> utils/edid-decode/parse-cta-block.cpp | 74 ++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 9 deletions(-) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=910ce5d9ec8377811faaad7da456d25370c9188b diff --git a/utils/edid-decode/parse-cta-block.cpp b/utils/edid-decode/parse-cta-block.cpp index 46040ea3fe3c..3783a32e9e7e 100644 --- a/utils/edid-decode/parse-cta-block.cpp +++ b/utils/edid-decode/parse-cta-block.cpp @@ -1823,15 +1823,17 @@ const char *cta_speaker_map[] = { "FL/FR - Front Left/Right", "LFE1 - Low Frequency Effects 1", "FC - Front Center", - "BL/BR - Back Left/Right", + "LS/RS - Left/Right Surround", "BC - Back Center", "FLc/FRc - Front Left/Right of Center", - "RLC/RRC - Rear Left/Right of Center (Deprecated)", + "BL/BR - Back Left/Right", "FLw/FRw - Front Left/Right Wide", "TpFL/TpFR - Top Front Left/Right", "TpC - Top Center", "TpFC - Top Front Center", + + // The following speakers are Deprecated in the SADB "LS/RS - Left/Right Surround", "LFE2 - Low Frequency Effects 2", "TpBC - Top Back Center", @@ -1841,14 +1843,13 @@ const char *cta_speaker_map[] = { "TpBL/TpBR - Top Back Left/Right", "BtFC - Bottom Front Center", "BtFL/BtFR - Bottom Front Left/Right", - "TpLS/TpRS - Top Left/Right Surround (Deprecated for CTA-861)", - "LSd/RSd - Left/Right Surround Direct (HDMI only)", + "TpLS/TpRS - Top Left/Right Surround", NULL }; void edid_state::cta_sadb(const unsigned char *x, unsigned length) { - unsigned sad_valid = 0x3f; + unsigned sad_valid = 0x7f; unsigned sad; unsigned i; @@ -2061,6 +2062,33 @@ static double decode_uchar_as_double(unsigned char x) return s / 64.0; } +const char *cta_rcdb_speaker_map[] = { + "FL/FR - Front Left/Right", + "LFE1 - Low Frequency Effects 1", + "FC - Front Center", + "BL/BR - Back Left/Right", + "BC - Back Center", + "FLc/FRc - Front Left/Right of Center", + "RLC/RRC - Left/Right Rear Surround (Deprecated)", + "FLw/FRw - Front Left/Right Wide", + + "TpFL/TpFR - Top Front Left/Right", + "TpC - Top Center", + "TpFC - Top Front Center", + "LS/RS - Left/Right Surround", + "LFE2 - Low Frequency Effects 2", + "TpBC - Top Back Center", + "SiL/SiR - Side Left/Right", + "TpSiL/TpSiR - Top Side Left/Right", + + "TpBL/TpBR - Top Back Left/Right", + "BtFC - Bottom Front Center", + "BtFL/BtFR - Bottom Front Left/Right", + "TpLS/TpRS - Top Left/Right Surround (Deprecated)", + NULL +}; + + void edid_state::cta_rcdb(const unsigned char *x, unsigned length) { unsigned spm = ((x[3] << 16) | (x[2] << 8) | x[1]); @@ -2086,9 +2114,9 @@ void edid_state::cta_rcdb(const unsigned char *x, unsigned length) } printf(" Speaker Presence Mask:\n"); - for (i = 0; cta_speaker_map[i]; i++) { + for (i = 0; cta_rcdb_speaker_map[i]; i++) { if ((spm >> i) & 1) - printf(" %s\n", cta_speaker_map[i]); + printf(" %s\n", cta_rcdb_speaker_map[i]); } if ((x[0] & 0xa0) == 0x80) @@ -2567,6 +2595,33 @@ void edid_state::cta_displayid_type_10(const unsigned char *x, unsigned length) parse_displayid_type_10_timing(x + i * sz, sz, true); } +const char *cta_hdmi_speaker_map[] = { + "FL/FR - Front Left/Right", + "LFE1 - Low Frequency Effects 1", + "FC - Front Center", + "BL/BR - Back Left/Right", + "BC - Back Center", + "FLc/FRc - Front Left/Right of Center", + "Reserved", + "FLw/FRw - Front Left/Right Wide", + + "TpFL/TpFR - Top Front Left/Right", + "TpC - Top Center", + "TpFC - Top Front Center", + "LS/RS - Left/Right Surround", + "LFE2 - Low Frequency Effects 2", + "TpBC - Top Back Center", + "SiL/SiR - Side Left/Right", + "TpSiL/TpSiR - Top Side Left/Right", + + "TpBL/TpBR - Top Back Left/Right", + "BtFC - Bottom Front Center", + "BtFL/BtFR - Bottom Front Left/Right", + "TpLS/TpRS - Top Left/Right Surround", + "LSd/RSd - Left/Right Surround Direct", + NULL +}; + static void cta_hdmi_audio_block(const unsigned char *x, unsigned length) { unsigned num_descs; @@ -2586,6 +2641,7 @@ static void cta_hdmi_audio_block(const unsigned char *x, unsigned length) num_descs = x[1] & 7; if (num_descs == 0) return; + warn("Support for HDMI 3D Audio is deprecated since HDMI 2.2.\n"); length -= 2; x += 2; while (length >= 4) { @@ -2626,9 +2682,9 @@ static void cta_hdmi_audio_block(const unsigned char *x, unsigned length) return; } - for (i = 0; cta_speaker_map[i]; i++) { + for (i = 0; cta_hdmi_speaker_map[i]; i++) { if ((sad >> i) & 1) - printf(" %s\n", cta_speaker_map[i]); + printf(" %s\n", cta_hdmi_speaker_map[i]); } } length -= 4; _______________________________________________ linuxtv-commits mailing list -- [email protected] To unsubscribe send an email to [email protected]
