HDMI EDID hack to allow 5.1 passthrough

Ideas and dreaming will go this forum

nbd
Posts: 160
Joined: Wed Jan 13, 2010 12:02 pm

HDMI EDID hack to allow 5.1 passthrough

Post by nbd » Fri Dec 10, 2010 10:12 am

Hello. We already know that Xbox360 connected with HDMI to Samsung can output 5.1 sound and it's coming through TV's optical out. This was possible by disabling so called 'display discovery' from Xbox settings. What I understand is that the display discovery does some EDID query and TV responds to that telling screen resolution etc. and also the sound capabilties (2 channels). This display discovery is done during HDMI handshake (I think) and this gives me an idea.

If we could find out the functions in exeDSP that are called during HDMI source is connected, we could circumvent the 2 channel info and reply with DD+ capabilities (see http://en.wikipedia.org/wiki/Extended_d ... ation_data for details)

This would allow any device (BD player, DVD player, etc.) to send the 5.1 sound to the TV and pass it to the optical out (already proven to work with Xbox360)

I'm not keen enough to complete this task, thus I'm suggesting this task for a new bounty.
This option would make many users happy and the Samsung official CNET forum has many people seeking for a solution for this, they are potential payers also.

Already browsed through the exeDSP disassembly, and there are plenty of EDID functions. The starting point would be to hook gdb breakpoints for the HdmiSwitch functions and ReportDeviceCapability. Any takers?

Edit: Already dug out some key information:

The Manufacturer ID for Samsung is 2D4C, this should be found hardcoded from exeDSP

Edit2: Might not be hardcoded after all, but on a flash memory: http://www.avsforum.com/avs-vb/showthread.php?t=1280874 (something about flashing EDID to support 3D)

User avatar
erdem_ua
SamyGO Admin
Posts: 3086
Joined: Thu Oct 01, 2009 6:02 am
Location: Istanbul, Turkey
Contact:

Re: HDMI EDID hack to allow 5.1 passthrough

Post by erdem_ua » Fri Dec 10, 2010 1:21 pm

Good idea. Comes logical to my mind. Does your Xbox could play movies with DTS pass-through from optical olutput? Or just AC3 streams working from Optical output?
What about DTS Hack? Does it able to enable DTS pass-through from HDMI on your setup?

I don't know if we can patch EDID data from an applet that running in TV. AFAIK that data is flashed on to chips. So, it might not that easy to do for every users...
Now I wonder that if same 3D hack works on our TVs. Since Our TV's are > 60fps, it needed to support 3D. At least panels are capable to show 3D. B series could takeover C series crown soon :)

Like this topic, marked sticky.

And for a bounty, we need donations. $0.00 in balance :) I am thinking other alternatives to create fund to project. Might be support personally If I find a good job soon :D

nbd
Posts: 160
Joined: Wed Jan 13, 2010 12:02 pm

Re: HDMI EDID hack to allow 5.1 passthrough

Post by nbd » Fri Dec 10, 2010 2:48 pm

Xbox gives Dolby Digital 5.1 out and that is what the AV receiver got from TV's optical out. I'm not fully familiar with all these different multichannel streams, but DTS != DD, right? According to wikipedia Dolby Digital == AC-3. I should check if I have any DTS DVD's and try them. I assume that since the DTS hack is only for software playback of local movies, it should not have any effect on HDMI inputs. And the DTS hack just converts DTS to stereo, so I don't achieve anything with that, since TV already forces BD player to send stereo through HDMI.

I'll check what options the service menu has for EDID.

Edit: Found one DTS movie, but Xbox gives only DD 5.1 out even when the DTS was selected. Also service menu had some EDID options, EDID ON/OFF, was OFF, I set it to ON. Then it enabled some options more. There were some EDID WRITE options, tried EDID WRITE HDMI, and it said 'Wait' for a while then Success. I don't know what it did, I guess it dumps the TV's EDID data to HDMI. There was also Edid WRITE PC, but I don't have exlink to try if it dumps there. This had no impact on DD passthrough from BD player.

The first step would be to get the EDID dumped. Maybe debug menu has option for that? Or someone could try the EDID WRITE PC option

Image

sbav1
Official SamyGO Developer
Posts: 374
Joined: Fri Jan 15, 2010 10:20 am

Re: HDMI EDID hack to allow 5.1 passthrough

Post by sbav1 » Fri Dec 10, 2010 3:57 pm

erdem_ua wrote:Good idea. Comes logical to my mind. Does your Xbox could play movies with DTS pass-through from optical olutput? Or just AC3 streams working from Optical output?
Just AC3; DTS passthrough (HDMI -> SPDIF) is not working.
I don't have an XBOX, but I'm using EDID override on my PC (http://www.avsforum.com/avs-vb/showthre ... st18431062). With this file (EDID_MOD.zip, http://www.avsforum.com/avs-vb/attachme ... 1270398122) both AC3 & DTS audio fomats are enabled on HDMI; AC3 - working fine, DTS - nope, no sound on Tv SPDIF output.

sbav1
Official SamyGO Developer
Posts: 374
Joined: Fri Jan 15, 2010 10:20 am

Re: HDMI EDID hack to allow 5.1 passthrough

Post by sbav1 » Fri Dec 10, 2010 4:52 pm

nbd wrote:The first step would be to get the EDID dumped. Maybe debug menu has option for that?
11 : TD Debug --> 0x02 : TDi Debug --> 0x15 : TDseSIL9287_SLAVEHdmiSwitch --> 1)TDsSIL9287 --> 0x04 : Show SRAM EDID Data

Code: Select all

=============== EDID PORT 0 ===============

00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00 
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26 
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00 
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C 
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30 
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18 
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC 
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F 
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22 
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67 
03 0C 00 40 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E 
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E 
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71 
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80 
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ED 

=============== EDID PORT 256 ===============

00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00 
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26 
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00 
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C 
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30 
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18 
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC 
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F 
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22 
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67 
03 0C 00 20 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E 
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E 
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71 
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80 
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 

=============== EDID PORT 256 ===============

00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00 
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26 
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00 
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C 
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30 
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18 
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC 
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F 
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22 
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67 
03 0C 00 10 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E 
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E 
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71 
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80 
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1D 

=============== EDID PORT 256 ===============

00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00 
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26 
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00 
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C 
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30 
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18 
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC 
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F 
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22 
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67 
03 0C 00 30 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E 
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E 
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71 
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80 
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FD 
==============================
Current EDID data on HDMI input port can be checked/dumped with Monitor Asset Manager (aka "moninfo", from http://www.entechtaiwan.com/util/moninfo.shtm). On my TV (B650 T2W 2005.0) it looks like this:

Code: Select all

Monitor
  Model name............... SAMSUNG
  Manufacturer............. Samsung
  Plug and Play ID......... SAM0509
  Serial number............ 1
  Manufacture date......... 2008, ISO week 48
  -------------------------
  EDID revision............ 1.3
  Input signal type........ Digital
  Color bit depth.......... Undefined
  Display type............. RGB color
  Screen size.............. 160 x 90 mm (7,2 in)
  Power management......... Not supported
  Extension blocs.......... 1 (CEA-EXT)
  -------------------------
  DDC/CI................... n/a

Color characteristics
  Default color space...... Non-sRGB
  Display gamma............ 2,20
  Red chromaticity......... Rx 0,640 - Ry 0,330
  Green chromaticity....... Gx 0,300 - Gy 0,600
  Blue chromaticity........ Bx 0,150 - By 0,060
  White point (default).... Wx 0,313 - Wy 0,329
  Additional descriptors... None

Timing characteristics
  Horizontal scan range.... 26-81kHz
  Vertical scan range...... 24-75Hz
  Video bandwidth.......... 230MHz
  CVT standard............. Not supported
  GTF standard............. Not supported
  Additional descriptors... None
  Preferred timing......... Yes
  Native/preferred timing.. 1920x1080p at 60Hz (16:9)
    Modeline............... "1920x1080" 148,500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
  Detailed timing #1....... 1360x768p at 60Hz (16:9)
    Modeline............... "1360x768" 85,500 1360 1424 1536 1792 768 771 777 795 +hsync +vsync

Standard timings supported
     720 x  400p at  70Hz - IBM VGA
     640 x  480p at  60Hz - IBM VGA
     640 x  480p at  67Hz - Apple Mac II
     640 x  480p at  72Hz - VESA
     640 x  480p at  75Hz - VESA
     800 x  600p at  60Hz - VESA
     800 x  600p at  72Hz - VESA
     800 x  600p at  75Hz - VESA
     832 x  624p at  75Hz - Apple Mac II
    1024 x  768p at  60Hz - VESA
    1024 x  768p at  70Hz - VESA
    1024 x  768p at  75Hz - VESA
    1280 x 1024p at  75Hz - VESA
    1152 x  870p at  75Hz - Apple Mac II
    1152 x  864p at  75Hz - VESA STD
    1280 x  800p at  60Hz - VESA STD
    1280 x  960p at  60Hz - VESA STD
    1280 x 1024p at  60Hz - VESA STD
    1440 x  900p at  60Hz - VESA STD
    1440 x  900p at  75Hz - VESA STD
    1680 x 1050p at  60Hz - VESA STD

EIA/CEA-861 Information
  Revision number.......... 3
  IT underscan............. Supported
  Basic audio.............. Supported
  YCbCr 4:4:4.............. Supported
  YCbCr 4:2:2.............. Supported
  Native formats........... 1
  Detailed timing #1....... 1280x720p at 60Hz (16:9)
    Modeline............... "1280x720" 74,250 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
  Detailed timing #2....... 1280x720p at 50Hz (16:9)
    Modeline............... "1280x720" 74,250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
  Detailed timing #3....... 1920x1080i at 60Hz (16:9)
    Modeline............... "1920x1080" 74,250 1920 2008 2052 2200 1080 1084 1094 1124 interlace +hsync +vsync
  Detailed timing #4....... 1920x1080i at 50Hz (16:9)
    Modeline............... "1920x1080" 74,250 1920 2448 2492 2640 1080 1084 1094 1124 interlace +hsync +vsync

CE video identifiers (VICs) - timing/formats supported
    1920 x 1080p at  60Hz - HDTV (16:9, 1:1) [Native]
    1920 x 1080p at  50Hz - HDTV (16:9, 1:1)
    1280 x  720p at  60Hz - HDTV (16:9, 1:1)
    1280 x  720p at  50Hz - HDTV (16:9, 1:1)
    1920 x 1080i at  60Hz - HDTV (16:9, 1:1)
    1920 x 1080i at  50Hz - HDTV (16:9, 1:1)
     720 x  480p at  60Hz - EDTV (16:9, 32:27)
     720 x  576p at  50Hz - EDTV (16:9, 64:45)
    1920 x 1080p at  24Hz - HDTV (16:9, 1:1)
    1920 x 1080p at  25Hz - HDTV (16:9, 1:1)
    1920 x 1080p at  30Hz - HDTV (16:9, 1:1)
    NB: NTSC refresh rate = (Hz*1000)/1001

CE audio data (formats supported)
  LPCM    2-channel, 16/20/24 bit depths at 32/44/48 kHz

CE speaker allocation data
  Channel configuration.... 2.0
  Front left/right......... Yes
  Front LFE................ No
  Front center............. No
  Rear left/right.......... No
  Rear center.............. No
  Front left/right center.. No
  Rear left/right center... No
  Rear LFE................. No

CE video capability data
  CE scan behavior......... Supports overscan and underscan
  IT scan behavior......... Supports overscan and underscan
  PT scan behavior......... Not supported
  RGB quantization range... Not supported
  YCC quantization range... Not supported

CE colorimetry data
  xvYCC709 support......... Yes
  xvYCC601 support......... Yes
  sYCC601 support.......... No
  AdobeYCC601 support...... No
  AdobeRGB support......... No
  Metadata profile flags... 0x01

CE vendor specific data (VSDB)
  IEEE registration number. 0x000C03
  CEC physical address..... 2.0.0.0
  Supports AI (ACP, ISRC).. Yes
  Supports 48bpp........... No
  Supports 36bpp........... Yes
  Supports 30bpp........... Yes
  Supports YCbCr 4:4:4..... Yes
  Supports dual-link DVI... No
  Maximum TMDS clock....... 225MHz

Report information
  Date generated........... 2010-12-10
  Software revision........ 2.53.0.861
  Data source.............. File
  Operating system......... 5.1.2600.2.Service Pack 3

Raw data
  00,FF,FF,FF,FF,FF,FF,00,4C,2D,09,05,01,00,00,00,30,12,01,03,80,10,09,78,0A,EE,91,A3,54,4C,99,26,
  0F,50,54,BD,EF,80,71,4F,81,00,81,40,81,80,95,00,95,0F,B3,00,01,01,02,3A,80,18,71,38,2D,40,58,2C,
  45,00,A0,5A,00,00,00,1E,66,21,50,B0,51,00,1B,30,40,70,36,00,A0,5A,00,00,00,1E,00,00,00,FD,00,18,
  4B,1A,51,17,00,0A,20,20,20,20,20,20,00,00,00,FC,00,53,41,4D,53,55,4E,47,0A,20,20,20,20,20,01,6F,
  02,03,27,F1,4B,90,1F,04,13,05,14,03,12,20,21,22,23,09,07,07,83,01,00,00,E2,00,0F,E3,05,03,01,67,
  03,0C,00,20,00,B8,2D,01,1D,00,72,51,D0,1E,20,6E,28,55,00,A0,5A,00,00,00,1E,01,1D,00,BC,52,D0,1E,
  20,B8,28,55,40,A0,5A,00,00,00,1E,01,1D,80,18,71,1C,16,20,58,2C,25,00,A0,5A,00,00,00,9E,01,1D,80,
  D0,72,1C,16,20,10,2C,25,80,A0,5A,00,00,00,9E,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0D
Or someone could try the EDID WRITE PC option
I presume "EDIT WRITE PC" does EDID EEPROM [re]write on PC/VGA input.

Now, the question remains, what data Tv is using as source for EDID WRITE. Apparently threre are some EDID "templates" embeeded in exeDSP:

Code: Select all

_ZN8TDaShare16TBL_SIL9287_EDIDE
_ZN8TDaShare20TBL_SIL9287_EDID_1_2E
_ZN8TDaShare12TBL_EDID_PDPE
_ZN8TDaShare16TBL_EDID_PDP_1_2E
_ZN8TDaShare15TBL_PC_EDID_LCDE 
_ZN8TDaShare15TBL_PC_EDID_PDPE
Four variants for HDMI inputs (LCD/PDP, HDMI 1.3/1.2), and two variants for VGA input (LCD/PDP).

Also there are *.ddc files on the flash partition (/mtd_exe/EDID/); I've checked them with moninfo, and they don't look quite right (too old, and there are too few video modes listed; "Plug and Play ID" is SAM0418). Interestingly, AC3 HDMI audio is in fact enabled in GRU-ALNH*.ddc files..

nbd
Posts: 160
Joined: Wed Jan 13, 2010 12:02 pm

Re: HDMI EDID hack to allow 5.1 passthrough

Post by nbd » Mon Jan 03, 2011 10:38 am

I have now a Gefen HDMI Detective Plus, which is able to 'fake' the EDID. I recorded the EDID from my amplifier and now I get Dolby Digital (AC3) pass through from another source (IPTV box), which was not able to do that before.

I think the real EDID info is in the SIL chip, since even when TV is powered off (standby), it can receive the HDMI-CEC info from my Samsung BD player when I turn that on, and then the TV starts. This indicates that the HDMI handshake is done while TV was in standby.

Next I'm going to test the DTS from my Samsung BD player, but I think I'll get the same results as you did..

User avatar
erdem_ua
SamyGO Admin
Posts: 3086
Joined: Thu Oct 01, 2009 6:02 am
Location: Istanbul, Turkey
Contact:

Re: HDMI EDID hack to allow 5.1 passthrough

Post by erdem_ua » Mon Jan 03, 2011 11:33 pm

Good lucks :)
I wish DTS pass-thru via internal movie player follows that.

nbd
Posts: 160
Joined: Wed Jan 13, 2010 12:02 pm

Re: HDMI EDID hack to allow 5.1 passthrough

Post by nbd » Tue Jan 04, 2011 12:36 pm

As I suspected, no DTS coming through. I see my TV has Dolby Digital Plus logo printed on the chassis, maybe it's just Samsung went cheap and didn't want to pay for DTS licence.

nbd
Posts: 160
Joined: Wed Jan 13, 2010 12:02 pm

Re: HDMI EDID hack to allow 5.1 passthrough

Post by nbd » Fri Feb 04, 2011 8:15 am

Next, I'm going to see what the EDID 1.2 Port option gives. It's the older standard and maybe does not have anything about audio capabilities.

Btw, DD 5.1 pass through from internal player works using the samygo_dca, when I'm playing files recorded with PVR+ (from a channel that has a DD track)

User avatar
andbir
SamyGO Project Donor
Posts: 50
Joined: Thu Dec 17, 2009 11:43 am
Location: Lund Sweden Europe
Contact:

Re: HDMI EDID hack to allow 5.1 passthrough

Post by andbir » Mon Feb 07, 2011 7:18 pm

nbd wrote:I think the real EDID info is in the SIL chip, since even when TV is powered off (standby), it can receive the HDMI-CEC info from my Samsung BD player when I turn that on, and then the TV starts. This indicates that the HDMI handshake is done while TV was in standby.
So what happens if you power off the TV completely and then turn it on (maybe after waiting 60secs or so)

Post Reply

Return to “[B] Brainstorm”

Who is online

Users browsing this forum: No registered users and 1 guest