From 09fe71d4c16a22ba9ee0573020460a2bddb8d1dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Martinez?= Date: Fri, 29 Sep 2023 14:02:02 +0200 Subject: [PATCH] DTS Core IMAX detection as Commercial name, fix BroadcastMetadataPresent --- Source/MediaInfo/Audio/File_Dts.cpp | 40 ++++++++++++++++------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/Source/MediaInfo/Audio/File_Dts.cpp b/Source/MediaInfo/Audio/File_Dts.cpp index e6c191781f..47a538861f 100644 --- a/Source/MediaInfo/Audio/File_Dts.cpp +++ b/Source/MediaInfo/Audio/File_Dts.cpp @@ -2382,13 +2382,12 @@ void File_Dts::Rev2Aux() // in the reserved data. int8u Rev2Bytes; Peek_B1(Rev2Bytes); - bool DmixIndexPresent=(Rev2Bytes&1)==1; - Rev2Bytes = (Rev2Bytes>>1)+1; + auto Rev2AUXDataByteSize=(Rev2Bytes>>1)+1; if (Element_Size-Element_Offset>=Rev2Bytes && Dts_CRC_CCIT_Compute(Buffer+Buffer_Offset+Element_Offset, Rev2Bytes)==0) { BS_Begin(); // Will later use Rev2BitsRemain to skip padding up to CRC - int Rev2BitsRemain=(Rev2Bytes-2)*8-Data_BS_Remain(); + auto Rev2BitsRemain=(Rev2AUXDataByteSize-2)*8-Data_BS_Remain(); Skip_S1(7, "Rev2AUXDataByteSize"); bool ESMetaDataFlag; @@ -2396,23 +2395,28 @@ void File_Dts::Rev2Aux() if (ESMetaDataFlag) Skip_S1(8, "EmbESDownMixScaleIndex"); - bool BroadcastMetadataPresent = false; - Get_SB(BroadcastMetadataPresent, "BroadcastMetadataPresent"); - if (BroadcastMetadataPresent) + if (Rev2AUXDataByteSize>4) { - bool DRCMetadataPresent, DialnormMetadataPresent; - Get_SB(DRCMetadataPresent, "DRCMetadataPresent"); - Get_SB(DialnormMetadataPresent, "DialnormMetadata"); - if (DRCMetadataPresent) - Skip_S1(4, "DRCversion_Rev2AUX"); - auto Remain=Data_BS_Remain()%8; - if (Remain) - Skip_S1(Remain, "ByteAlign"); - if (DRCMetadataPresent) + bool BroadcastMetadataPresent; + Get_SB (BroadcastMetadataPresent, "BroadcastMetadataPresent"); + if (BroadcastMetadataPresent) { - Element_Begin1("Rev2_DRCs"); - for (int i=0; i