MediaArea / MediaInfo

Convenient unified display of the most relevant technical and tag data for video and audio files.
https://MediaArea.net/MediaInfo
BSD 2-Clause "Simplified" License
1.37k stars 160 forks source link

DTS:X is not detected in lossy streams like DTS-HD HRA #710

Closed vstax closed 1 year ago

vstax commented 1 year ago

Hello.

While mediainfo 23.03 fixed detection of some DTS:X streams in DTS HD-MA (#422), it still fails to detect DTS:X in lossy streams. Some 4K UHD disks (e.g. Furions 6 and Furious 7 by Universal) use DTS:X with DTS-HD HRA codec instead of lossless DTS-HD MA. Mediainfo doesn't show DTS:X, while actual AVR does recognize and render audio through height speakers (in detailed audio info it will show DTS:X instead of DTS:X MA).

Example here with Furious 6 (theatrical, remuxed to mkv container. Original disk uses rather complicated system with different audio codecs for different cuts):

{
"creatingLibrary": {
"name": "MediaInfoLib",
"version": "23.03",
"url": "https://mediaarea.net/MediaInfo"
},

...

{
"@type": "Audio",
"StreamOrder": "1",
"ID": "2",
"OriginalSourceMedium_ID": "4352",
"UniqueID": "3",
"Format": "DTS",
"Format_Commercial_IfAny": "DTS-HD High Resolution Audio",
"Format_Settings_Mode": "16",
"Format_Settings_Endianness": "Big",
"Format_AdditionalFeatures": "XBR",
"CodecID": "A_DTS",
"Duration": "7803.307000000",
"BitRate_Mode": "CBR",
"BitRate": "3456000",
"Channels": "8",
"ChannelPositions": "Front: L C R, Side: L R, Back: L R, LFE",
"ChannelLayout": "C L R LFE Lb Rb Lss Rss",
"SamplesPerFrame": "512",
"SamplingRate": "48000",
"SamplingCount": "374558736",
"FrameRate": "93.750",
"FrameCount": "731560",
"BitDepth": "24",
"Compression_Mode": "Lossy",
"Delay": "0.000",
"Delay_Source": "Container",
"Video_Delay": "0.000",
"StreamSize": "3371028480",
"Language": "en",
"Default": "Yes",
"Forced": "No",
"extra": {
"OriginalSourceMedium": "Blu-ray"
}

Same problem for Furious 7.

Could it be that mediainfo (wrongly) assumes that DTS:X is only to be searched if the codec is MA? That is not a requirement, DTS:X extensions can be present over lossy HRA and even low bitrate DTS (Disney+ is planning or already is streaming videos with DTS:X using low bitrate lossy DTS). It's the same as Atmos which is delivered in streaming services as extensions to low bitrate EAC3.

If you need a sample, please tell me where to upload it and what kind (how big and if you need video stream or just .mka will suffice).

JeromeMartinez commented 1 year ago

Could it be that mediainfo (wrongly) assumes that DTS:X is only to be searched if the codec is MA?

It is reverse engineering (no spec found, we are interested if you have some), so we do with what we have and up to now DTS:X files we have are MA.

If you need a sample, please tell me where to upload it and what kind (how big and if you need video stream or just .mka will suffice).

We need that. Link can be sent to my email address if share needs to be don privately. Only the audio part, and we need only few frames.

even low bitrate DTS (Disney+ is planning or already is streaming videos with DTS:X using low bitrate lossy DTS).

Already heard about that but no stream yet, we are also interested in such stream.

vstax commented 1 year ago

I've sent you email with link to the samples. Both trigger DTS:X on my Denon AVR. Unfortunately I don't have the specs...

Disney+ IMAX Enhanced is still in the making. They promised "later this year" but so far it's not yet available.

jessielw commented 1 year ago

Yes also noticed DTS:X does not get detected as "Lossless," instead it seems to have no "compression_mode."

JeromeMartinez commented 1 year ago

Detection of DTS:X in another part of the stream is now added.

In order to keep track of what is "under" DTS:X, I keep now the underlying commercial name. Note that it is like what is done in FFmpeg. I shortened "Master Audio" and "High Resolution Audio" when DTS:X is present else it becomes a so long string.

Hope it is coherent with what your AVR display, else please report incoherencies.

Development snapshot: Windows, macOS

Yes also noticed DTS:X does not get detected as "Lossless," instead it seems to have no "compression_mode."

Added

vstax commented 1 year ago

Thanks. I've checked that it detects DTS:X correctly both on full mkv rip and on original 4K media of Furious 6 (when used with playlist or .ts container).

Regarding IMAX Enhanced, small inconsistency is that my AVR displays it as "IMAX DTS:X", not "IMAX Enhanced". Well the display on AVR and the screen information panel use limited characters, so it uses abbreviations like "DTS:X MA" for the display and "DTS:X MSTR" for info panel. There are not enough characters to write "IMAX DTS:X MA" there. Still, the point is that it displays both IMAX and DTS:X strings, while mediainfo only shows "IMAX Enhanced". I have no idea if IMAX extensions make any sense without DTS:X but whatever...

Another problem is regarding "Independence Day (1996)" movie. Check the list of IMAX Enhanced movies: - it's not there. Out of these movies, I have "Bad Boys for Life", "A Beautiful Planet" and "Journey to the South Pacific" and all correctly detected as IMAX DTS:X by AVR and by mediainfo. However, mediainfo insists that "Independence Day" is IMAX enhanced:

{
"@type": "Audio",
"StreamOrder": "1",
"ID": "2",
"OriginalSourceMedium_ID": "4352",
"UniqueID": "2",
"Format": "DTS",
"Format_Commercial_IfAny": "DTS-HD MA + IMAX Enhanced",
"Format_Settings_Mode": "16",
"Format_Settings_Endianness": "Big",
"Format_AdditionalFeatures": "XLL X IMAX",
"CodecID": "A_DTS",
"Duration": "9213.387000000",
"BitRate_Mode": "VBR",
"BitRate": "6139461",
"Channels": "8",
"ChannelPositions": "Front: L C R, Side: L R, Back: L R, LFE, Objects",
"ChannelLayout": "C L R LFE Lb Rb Lss Rss Objects",
"SamplesPerFrame": "512",
"SamplingRate": "48000",
"SamplingCount": "442242576",
"FrameRate": "93.750",
"FrameCount": "863755",
"BitDepth": "20",
"Compression_Mode": "Lossless",
"Delay": "0.000",
"Delay_Source": "Container",
"Video_Delay": "0.000",
"StreamSize": "7070654024",
"Language": "en",
"Default": "Yes",
"Forced": "No",
"extra": {
"OriginalSourceMedium": "Blu-ray"
}

My AVR doesn't detect any IMAX there. It just shows DTS:X MA. I checked online and no one ever claimed that it has IMAX Enhanced. If you any samples of what's mentioned here, I can share. Or should I open a new ticket for that?

JeromeMartinez commented 1 year ago

Regarding IMAX Enhanced, small inconsistency is that my AVR displays it as "IMAX DTS:X", not "IMAX Enhanced".

It seems very complicated also for DTS themselves to have a consistency there, e.g take this screenshot there is no display of "DTS:X" at all, and the website is https://www.imaxenhanced.com without any reference to DTS:X so the name seems to be more "IMAX Enhanced" than "IMAX DTS:X".

But FFmpeg uses "DTS:X IMAX" in the naming, maybe I should do same, maybe not, for the moment I let as is without saying that I won't change later.

There are not enough characters to write

And looks like that anyone is free to do what they want, DTS brand has some issues there...

My AVR doesn't detect any IMAX there. It just shows DTS:X MA. I checked online and no one ever claimed that it has IMAX Enhanced. If you any samples of what's mentioned here, I can share. Or should I open a new ticket for that?

Let's open a new ticket with trying to differentiate DTS:X and IMAX, with name of movies, how MI detects, and what should be detected if not same as the AVR. Remind that due to lack of communication from DTS, it is reverse engineering, so the more different content I have + info about what an AVR does, the best it is.

vstax commented 1 year ago

It seems very complicated also for DTS themselves to have a consistency there, e.g take this screenshot there is no display of "DTS:X" at all, and the website is https://www.imaxenhanced.com/ without any reference to DTS:X so the name seems to be more "IMAX Enhanced" than "IMAX DTS:X".

Actually in that case they are referring only to the video part. The sound is marked 5.1, and uses Dolby Digital in all current streaming services anyway. It only means that it's a movie from this list - in practice most of movies in that list use Atmos for 4K UHD disks. Of course they wouldn't write IMAX DTS:X because it's not X and not DTS in the first place even. Just 5.1 Dolby Digital Plus with Atmos extensions at best.

JeromeMartinez commented 1 year ago

Actually in that case they are referring only to the video part

Headache :(.

So maybe "DTS:X IMAX" instead of "IMAX Enhanced" is the best approach, but pinging @rg9400 @parasiteoflife, who were using "IMAX Enhanced", for opinion, before I change the wording.

vstax commented 1 year ago

So maybe "DTS:X IMAX" instead of "IMAX Enhanced" is the best approach, but pinging @rg9400 @parasiteoflife, who were using "IMAX Enhanced", for opinion, before I change the wording.

I am quite sure that IMAX Enhanced is the correct term, e.g. take a look at branding on AVR. Here it means audio part. In manual they also mention IMAX Enhanced audio. They write "IMAX DTS:X" because of lack of characters on the on-screen display.

But yes, thanks to crappy marketing, there is no differentiation whether it's about only video or both video and audio, when they say "IMAX Enhanced". Some studios just use Atmos no matter what, so DTS:X is impossible in these home releases. "IMAX Enhanced" is also the name of certification

You should make the wording as it's convenient for you, I don't think "Enhanced" part is a huge deal. But it's the correct term.

vstax commented 1 year ago

This is interesting: https://manuals.marantz.com/U19_1_MZ_1/EU/en/BIAJSYdvfivvph.php

According to this manual, IMAX Enhanced DTS might exist as well, not only DTS:X. And AVR can detect some flag in the stream to automatically activate that mode. I think it's a theoretical support though, not (yet) used by any content. Just FYI @JeromeMartinez

Sawtaytoes commented 7 months ago

Gonna post a link here to my comment to bring more awareness to it.

The IMAX Enhanced designation; at least the way MediaInfo sees it, is incorrect. That means there's more to DTS:X than we know: https://github.com/MediaArea/MediaInfo/issues/422#issuecomment-2016671741