I know this a stretch but can your development.tar with cmv4.0 be made into a kodi android apk?
My minix u22 xj with Coreelec doesn’t process 8 channel atmos hd sound on my lg c6 tv but in android with kodi nightlies it convert it to pcm. This is without without soundbar or amp as I can’t afford one right now.
I just tested this myself. It doesn’t go through this method every single time for me.
It only happened once for me, and in that case - obviously, I got 12-bit output.
So I don’t think that removing this line is the correct fix. This line has been there from the early days of DV support in the 4.9 amlogic hdmitx driver.
I think that there’s something “bad”/“weird” going on in the handshake between TV and box, leading to a plugout event. But I can’t really find it.
Maybe @Portisch can figure it out. Here’s my dmesg, search for the system: plugout event, this is where I got 12-bit instead of 8-bit. Tried to start P7 MEL remux. https://paste.coreelec.org/qoqQgM
How does this work with profile 8 content? I thought the underlying hdr10 part of the video was bt2020, is that converted to iCtCp before being tunnelled?
On films with Truehd/8.1, i get no sound (lg c6 to minix direct), but in android (monsoon apk) it convert it to pcm and i get sound. Have enabled all settings (aml,hdmi,multi pcm, passthrough etc) in coreelec but still no sound, any ideas please?
If you get time give this one a try, reworked the MEL detection to another way - can leave the wait delay set to 2 now (the original value), and should play the full contents from the start (re: Dune skipping the first scene)
Seems the 12bit issue still occurs now and again but it is better now, mostly get 8bit.
So based on what I can tell. There’s 3 functions to set video format depending on HDR type (i.e. hdr10, hdr10+ DV)
hdmitx_set_drm_pkt() is for HDR 2084 SMPTE, HLG, etc.
hdmitx_set_vsif_pkt() is for DV
hdmitx_set_hdr10plus_pkt is for HDR10+
For the DV function I can definitely tell it’s being done here as well. So it’s looking like there’s two competing places this is getting set and as a result they are clobbering each other other ( I guess you could call it a race condition?).
set_disp_mode_auto(void) is the other place.
In fact stripping all the code from that auto method would still make TV-LED properly set itself. And in fact correctly every time because once this code is stripped out there’s no chance it ever can get set to 12-bit for this type of media.
So ultimately it seems the place to set the format is in one of those methods instead of a shared method like how it’s currently coded. depending on HDR type as it appears set-disp_mode_auto can’t reliably determine it.
However while LLDV and HDR are close they are missing correct bitrate, the foolproof setting of TV-Led by stripping the excess code out the other formats get somewhat sacrificed. : HDR 10 gets set to 8-bit and oddly LLDV gets set to 16-bit. I think the key is somewhere in the HDR 10 code for non -DV media and for the LLDV it’s close but not quite.
I suggest trying some HDR10 titles. You should get bt.2020 and at least 4:2:0 10-bit. though this was before cpms code change for the MEL detection my HDR10 titles kept outputting as 4:4:4 YUV 8-bit. Was driving me nuts lol.
Regarding the BT.2020 flag when tunneling rgb 8 bit. The video from Ycbcr is converted to ITP and then the RGB tunnel video is sent to TV, but the color space remains BT2020. But theoretically, not all videos can be made under Bt2020, maybe bt.709. Therefore, this flag may prevent the TV from correctly understanding the color. But I doubt anyone will encounter BT709 in DV. Therefore, from the point of view of fidelity, it may be logical not to transmit it with an RGB tunnel.
But I checked several videos on my LG CX and compared Oppo and Am6b, especially on videos where there are colors up to the Bt2020 color when exceeding DCI-p3 and vice versa when the colors do not go beyond the DCI-P3 triangle. And I didn’t find any difference between Oppo and am6b. I did not see the difference with my eyes, when capturing in rgb 8 bit according to graphs, there is also no difference.
But still, probably, if possible, it is better to remove this flag when using TV-led output mode
With the Omega_nightly_20240319 update, I’m seeing a very strange issue. When the debug-log is on, everything works perfectly: https://paste.coreelec.org/Axrgne
But the moment I disable debug-log, playback starts getting stalled from the beginning, including DV and standard HDR material. https://paste.coreelec.org/Hoi8bO
I cannot come up with any sensible reason behind it but that’s what happening for me. I tested at least 4 times, before posting here. Can anyone explain to me what’s possiblly happening?
You made a pretty informative video about how RPU gets passed in TV-led and how the fake TV-LED basically output a zeroed out RPU payload. Were you ever able to confirm that was no longer happening when you confirmedb mv4.0 was happening with cpm’s fix?