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)). ([#1787](https://github.com/google/ExoPlayer/issues/1787)).
* Support `Label` elements * Support `Label` elements
([#6297](https://github.com/google/ExoPlayer/issues/6297)). ([#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 * Add `allowedCapturePolicy` field to `AudioAttributes` wrapper to allow to
opt-out of audio recording. opt-out of audio recording.
* Add `DataSpec.httpRequestHeaders` to set HTTP request headers when connecting * 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) 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 = "urn:mpeg:dash:23003:3:audio_channel_configuration:2011".equals(schemeIdUri) int audioChannels =
? parseInt(xpp, "value", Format.NO_VALUE) "urn:mpeg:dash:23003:3:audio_channel_configuration:2011".equals(schemeIdUri)
: ("tag:dolby.com,2014:dash:audio_channel_configuration:2011".equals(schemeIdUri) ? parseInt(xpp, "value", Format.NO_VALUE)
? parseDolbyChannelConfiguration(xpp) : 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 { do {
xpp.next(); xpp.next();
} while (!XmlPullParserUtil.isEndTag(xpp, "AudioChannelConfiguration")); } 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 * 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
* 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. * @param xpp The parser from which to read.
* @return The parsed number of channels, or {@link Format#NO_VALUE} if the channel count could * @return The parsed number of channels, or {@link Format#NO_VALUE} if the channel count could