Merge pull request #7968 from DolbyLaboratories:dev-v2-channelConfiguration
PiperOrigin-RevId: 333485323
This commit is contained in:
parent
30be792a15
commit
31251a40c1
@ -70,6 +70,16 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
private static final Pattern CEA_708_ACCESSIBILITY_PATTERN =
|
private static final Pattern CEA_708_ACCESSIBILITY_PATTERN =
|
||||||
Pattern.compile("([1-9]|[1-5][0-9]|6[0-3])=.*");
|
Pattern.compile("([1-9]|[1-5][0-9]|6[0-3])=.*");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps the value attribute of an AudioElementConfiguration with schemeIdUri
|
||||||
|
* "urn:mpeg:mpegB:cicp:ChannelConfiguration", as defined by ISO 23001-8 clause 8.1, to a channel
|
||||||
|
* count.
|
||||||
|
*/
|
||||||
|
private static final int[] MPEG_CHANNEL_CONFIGURATION_MAPPING =
|
||||||
|
new int[] {
|
||||||
|
Format.NO_VALUE, 1, 2, 3, 4, 5, 6, 8, 2, 3, 4, 7, 8, 24, 8, 12, 10, 12, 14, 12, 14
|
||||||
|
};
|
||||||
|
|
||||||
private final XmlPullParserFactory xmlParserFactory;
|
private final XmlPullParserFactory xmlParserFactory;
|
||||||
|
|
||||||
public DashManifestParser() {
|
public DashManifestParser() {
|
||||||
@ -1156,13 +1166,22 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
protected int parseAudioChannelConfiguration(XmlPullParser xpp)
|
protected int parseAudioChannelConfiguration(XmlPullParser xpp)
|
||||||
throws XmlPullParserException, IOException {
|
throws XmlPullParserException, IOException {
|
||||||
String schemeIdUri = parseString(xpp, "schemeIdUri", null);
|
String schemeIdUri = parseString(xpp, "schemeIdUri", null);
|
||||||
int audioChannels =
|
int audioChannels;
|
||||||
"urn:mpeg:dash:23003:3:audio_channel_configuration:2011".equals(schemeIdUri)
|
switch (schemeIdUri) {
|
||||||
? parseInt(xpp, "value", Format.NO_VALUE)
|
case "urn:mpeg:dash:23003:3:audio_channel_configuration:2011":
|
||||||
: ("tag:dolby.com,2014:dash:audio_channel_configuration:2011".equals(schemeIdUri)
|
audioChannels = parseInt(xpp, "value", Format.NO_VALUE);
|
||||||
|| "urn:dolby:dash:audio_channel_configuration:2011".equals(schemeIdUri)
|
break;
|
||||||
? parseDolbyChannelConfiguration(xpp)
|
case "urn:mpeg:mpegB:cicp:ChannelConfiguration":
|
||||||
: Format.NO_VALUE);
|
audioChannels = parseMpegChannelConfiguration(xpp);
|
||||||
|
break;
|
||||||
|
case "tag:dolby.com,2014:dash:audio_channel_configuration:2011":
|
||||||
|
case "urn:dolby:dash:audio_channel_configuration:2011":
|
||||||
|
audioChannels = parseDolbyChannelConfiguration(xpp);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
audioChannels = Format.NO_VALUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
do {
|
do {
|
||||||
xpp.next();
|
xpp.next();
|
||||||
} while (!XmlPullParserUtil.isEndTag(xpp, "AudioChannelConfiguration"));
|
} while (!XmlPullParserUtil.isEndTag(xpp, "AudioChannelConfiguration"));
|
||||||
@ -1528,6 +1547,21 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
return value == null ? defaultValue : value;
|
return value == null ? defaultValue : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses the number of channels from the value attribute of an AudioElementConfiguration with
|
||||||
|
* schemeIdUri "urn:mpeg:mpegB:cicp:ChannelConfiguration", as defined by ISO 23001-8 clause 8.1.
|
||||||
|
*
|
||||||
|
* @param xpp The parser from which to read.
|
||||||
|
* @return The parsed number of channels, or {@link Format#NO_VALUE} if the channel count could
|
||||||
|
* not be parsed.
|
||||||
|
*/
|
||||||
|
protected static int parseMpegChannelConfiguration(XmlPullParser xpp) {
|
||||||
|
int index = parseInt(xpp, "value", C.INDEX_UNSET);
|
||||||
|
return 0 <= index && index < MPEG_CHANNEL_CONFIGURATION_MAPPING.length
|
||||||
|
? MPEG_CHANNEL_CONFIGURATION_MAPPING[index]
|
||||||
|
: Format.NO_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the number of channels from the value attribute of an AudioElementConfiguration with
|
* Parses the number of channels from the value attribute of an AudioElementConfiguration with
|
||||||
* schemeIdUri "tag:dolby.com,2014:dash:audio_channel_configuration:2011", as defined by table E.5
|
* schemeIdUri "tag:dolby.com,2014:dash:audio_channel_configuration:2011", as defined by table E.5
|
||||||
|
Loading…
x
Reference in New Issue
Block a user