Merge pull request #1943 from DolbyLaboratories:dlb/ac4-ajoc/dev

PiperOrigin-RevId: 702281314
This commit is contained in:
Copybara-Service 2024-12-03 04:04:52 -08:00
commit e4993779db

View File

@ -410,13 +410,22 @@ public final class Ac4Util {
ac4Presentation.hasBackChannels,
ac4Presentation.topChannelPairs);
} else {
channelCount = ac4Presentation.numOfUmxObjects;
// The ETSI TS 103 190-2 V1.2.1 (2018-02) specification defines the parameter
// n_umx_objects_minus1 in Annex E (E.11.11) to specify the number of fullband objects. While
// the elementary stream specification (section 6.3.2.8.1 and 6.3.2.10.4) provides information
// about the presence of an LFE channel within the set of dynamic objects, this detail is not
// explicitly stated in the ISO Base Media File Format (Annex E). However, current
// implementation practices consistently include the LFE channel when creating an object-based
// substream. As a result, it has been decided that when interpreting the ISO Base Media File
// Format, the LFE channel should always be counted as part of the total channel count.
int lfeChannelCount = 1;
channelCount = ac4Presentation.numOfUmxObjects + lfeChannelCount;
// TODO: There is a bug in ETSI TS 103 190-2 V1.2.1 (2018-02), E.11.11
// For AC-4 level 4 stream, the intention is to set 19 to n_umx_objects_minus1 but it is
// equal to 15 based on current specification. Dolby has filed a bug report to ETSI.
// The following sentence should be deleted after ETSI specification error is fixed.
if (ac4Presentation.level == 4) {
channelCount = channelCount == 16 ? 21 : channelCount;
channelCount = channelCount == 17 ? 21 : channelCount;
}
}