Handle legacy DASH audio channel configuration

Issue: #6523
PiperOrigin-RevId: 274160232
This commit is contained in:
andrewlewis 2019-10-11 14:25:56 +01:00 committed by Oliver Woodman
parent a81dea6a47
commit 5f71e86335
2 changed files with 11 additions and 5 deletions

View File

@ -32,6 +32,8 @@
([#1787](https://github.com/google/ExoPlayer/issues/1787)).
* Support `Label` elements
([#6297](https://github.com/google/ExoPlayer/issues/6297)).
* Support legacy audio channel configuration
([#6523](https://github.com/google/ExoPlayer/issues/6523)).
* Add `allowedCapturePolicy` field to `AudioAttributes` wrapper to allow to
opt-out of audio recording.
* Add `DataSpec.httpRequestHeaders` to set HTTP request headers when connecting

View File

@ -1169,10 +1169,13 @@ public class DashManifestParser extends DefaultHandler
protected int parseAudioChannelConfiguration(XmlPullParser xpp)
throws XmlPullParserException, IOException {
String schemeIdUri = parseString(xpp, "schemeIdUri", null);
int audioChannels = "urn:mpeg:dash:23003:3:audio_channel_configuration:2011".equals(schemeIdUri)
? parseInt(xpp, "value", Format.NO_VALUE)
: ("tag:dolby.com,2014:dash:audio_channel_configuration:2011".equals(schemeIdUri)
? parseDolbyChannelConfiguration(xpp) : Format.NO_VALUE);
int audioChannels =
"urn:mpeg:dash:23003:3:audio_channel_configuration:2011".equals(schemeIdUri)
? parseInt(xpp, "value", Format.NO_VALUE)
: ("tag:dolby.com,2014:dash:audio_channel_configuration:2011".equals(schemeIdUri)
|| "urn:dolby:dash:audio_channel_configuration:2011".equals(schemeIdUri)
? parseDolbyChannelConfiguration(xpp)
: Format.NO_VALUE);
do {
xpp.next();
} while (!XmlPullParserUtil.isEndTag(xpp, "AudioChannelConfiguration"));
@ -1551,7 +1554,8 @@ public class DashManifestParser extends DefaultHandler
/**
* 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
* in ETSI TS 102 366.
* in ETSI TS 102 366, or the legacy schemeIdUri
* "urn:dolby:dash:audio_channel_configuration:2011".
*
* @param xpp The parser from which to read.
* @return The parsed number of channels, or {@link Format#NO_VALUE} if the channel count could