resolve #1095 map the audio track language to the element parser instead of the track parser

This commit is contained in:
Bart van den Ende 2016-01-15 12:10:20 +01:00
parent df7a96a7c4
commit 19cf24234c
2 changed files with 6 additions and 3 deletions

View File

@ -132,10 +132,10 @@ public class SmoothStreamingManifest {
public final byte[][] csd; public final byte[][] csd;
public TrackElement(int index, int bitrate, String mimeType, byte[][] csd, int maxWidth, public TrackElement(int index, int bitrate, String mimeType, byte[][] csd, int maxWidth,
int maxHeight, int sampleRate, int numChannels) { int maxHeight, int sampleRate, int numChannels, String language) {
this.csd = csd; this.csd = csd;
format = new Format(String.valueOf(index), mimeType, maxWidth, maxHeight, -1, numChannels, format = new Format(String.valueOf(index), mimeType, maxWidth, maxHeight, -1, numChannels,
sampleRate, bitrate); sampleRate, bitrate, language);
} }
@Override @Override

View File

@ -595,6 +595,7 @@ public class SmoothStreamingManifestParser implements UriLoadable.Parser<SmoothS
private static final String KEY_CHANNELS = "Channels"; private static final String KEY_CHANNELS = "Channels";
private static final String KEY_FOUR_CC = "FourCC"; private static final String KEY_FOUR_CC = "FourCC";
private static final String KEY_TYPE = "Type"; private static final String KEY_TYPE = "Type";
private static final String KEY_LANGUAGE = "Language";
private static final String KEY_MAX_WIDTH = "MaxWidth"; private static final String KEY_MAX_WIDTH = "MaxWidth";
private static final String KEY_MAX_HEIGHT = "MaxHeight"; private static final String KEY_MAX_HEIGHT = "MaxHeight";
@ -607,6 +608,7 @@ public class SmoothStreamingManifestParser implements UriLoadable.Parser<SmoothS
private int maxHeight; private int maxHeight;
private int samplingRate; private int samplingRate;
private int channels; private int channels;
private String language;
public TrackElementParser(ElementParser parent, String baseUri) { public TrackElementParser(ElementParser parent, String baseUri) {
super(parent, baseUri, TAG); super(parent, baseUri, TAG);
@ -632,6 +634,7 @@ public class SmoothStreamingManifestParser implements UriLoadable.Parser<SmoothS
// If fourCC is missing and the stream type is audio, we assume AAC. // If fourCC is missing and the stream type is audio, we assume AAC.
mimeType = fourCC != null ? fourCCToMimeType(fourCC) mimeType = fourCC != null ? fourCCToMimeType(fourCC)
: type == StreamElement.TYPE_AUDIO ? MimeTypes.AUDIO_AAC : null; : type == StreamElement.TYPE_AUDIO ? MimeTypes.AUDIO_AAC : null;
language = (String) getNormalizedAttribute(KEY_LANGUAGE);
} }
if (type == StreamElement.TYPE_AUDIO) { if (type == StreamElement.TYPE_AUDIO) {
@ -664,7 +667,7 @@ public class SmoothStreamingManifestParser implements UriLoadable.Parser<SmoothS
csd.toArray(csdArray); csd.toArray(csdArray);
} }
return new TrackElement(index, bitrate, mimeType, csdArray, maxWidth, maxHeight, samplingRate, return new TrackElement(index, bitrate, mimeType, csdArray, maxWidth, maxHeight, samplingRate,
channels); channels, language);
} }
private static String fourCCToMimeType(String fourCC) { private static String fourCCToMimeType(String fourCC) {