Skip to content

Commit 09fe71d

Browse files
DTS Core IMAX detection as Commercial name, fix BroadcastMetadataPresent
1 parent 01d2c27 commit 09fe71d

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

Source/MediaInfo/Audio/File_Dts.cpp

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2382,37 +2382,41 @@ void File_Dts::Rev2Aux()
23822382
// in the reserved data.
23832383
int8u Rev2Bytes;
23842384
Peek_B1(Rev2Bytes);
2385-
bool DmixIndexPresent=(Rev2Bytes&1)==1;
2386-
Rev2Bytes = (Rev2Bytes>>1)+1;
2385+
auto Rev2AUXDataByteSize=(Rev2Bytes>>1)+1;
23872386
if (Element_Size-Element_Offset>=Rev2Bytes && Dts_CRC_CCIT_Compute(Buffer+Buffer_Offset+Element_Offset, Rev2Bytes)==0)
23882387
{
23892388
BS_Begin();
23902389
// Will later use Rev2BitsRemain to skip padding up to CRC
2391-
int Rev2BitsRemain=(Rev2Bytes-2)*8-Data_BS_Remain();
2390+
auto Rev2BitsRemain=(Rev2AUXDataByteSize-2)*8-Data_BS_Remain();
23922391

23932392
Skip_S1(7, "Rev2AUXDataByteSize");
23942393
bool ESMetaDataFlag;
23952394
Get_SB(ESMetaDataFlag, "ESMetaDataFlag");
23962395
if (ESMetaDataFlag)
23972396
Skip_S1(8, "EmbESDownMixScaleIndex");
23982397

2399-
bool BroadcastMetadataPresent = false;
2400-
Get_SB(BroadcastMetadataPresent, "BroadcastMetadataPresent");
2401-
if (BroadcastMetadataPresent)
2398+
if (Rev2AUXDataByteSize>4)
24022399
{
2403-
bool DRCMetadataPresent, DialnormMetadataPresent;
2404-
Get_SB(DRCMetadataPresent, "DRCMetadataPresent");
2405-
Get_SB(DialnormMetadataPresent, "DialnormMetadata");
2406-
if (DRCMetadataPresent)
2407-
Skip_S1(4, "DRCversion_Rev2AUX");
2408-
auto Remain=Data_BS_Remain()%8;
2409-
if (Remain)
2410-
Skip_S1(Remain, "ByteAlign");
2411-
if (DRCMetadataPresent)
2400+
bool BroadcastMetadataPresent;
2401+
Get_SB (BroadcastMetadataPresent, "BroadcastMetadataPresent");
2402+
if (BroadcastMetadataPresent)
24122403
{
2413-
Element_Begin1("Rev2_DRCs");
2414-
for (int i=0; i<SubSubFrameCount; i++)
2415-
Skip_S1(8, "DRCCoeff_Rev2");
2404+
Element_Begin1("BroadcastMetadata");
2405+
bool DRCMetadataPresent, DialnormMetadataPresent;
2406+
Get_SB (DRCMetadataPresent, "DRCMetadataPresent");
2407+
Get_SB (DialnormMetadataPresent, "DialnormMetadata");
2408+
if (DRCMetadataPresent)
2409+
Skip_S1(4, "DRCversion_Rev2AUX");
2410+
auto Remain=Data_BS_Remain()%8;
2411+
if (Remain)
2412+
Skip_S1(Remain, "ByteAlign");
2413+
if (DRCMetadataPresent)
2414+
{
2415+
Element_Begin1("Rev2_DRCs");
2416+
for (int i=0; i<SubSubFrameCount; i++)
2417+
Skip_S1(8, "DRCCoeff_Rev2");
2418+
Element_End0();
2419+
}
24162420
Element_End0();
24172421
}
24182422

0 commit comments

Comments
 (0)