Commit 1c7bb289 by Oliver Woodman

Merge pull request #6055 from xirac:dev-v2

PiperOrigin-RevId: 254182080
parent 913dcb3e
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* Display last frame when seeking to end of stream * Display last frame when seeking to end of stream
([#2568](https://github.com/google/ExoPlayer/issues/2568)). ([#2568](https://github.com/google/ExoPlayer/issues/2568)).
* SmoothStreaming: Parse text stream `Subtype` into `Format.roleFlags`.
### 2.10.2 ### ### 2.10.2 ###
......
...@@ -586,6 +586,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> { ...@@ -586,6 +586,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
} else { } else {
subType = parser.getAttributeValue(null, KEY_SUB_TYPE); subType = parser.getAttributeValue(null, KEY_SUB_TYPE);
} }
putNormalizedAttribute(KEY_SUB_TYPE, subType);
name = parser.getAttributeValue(null, KEY_NAME); name = parser.getAttributeValue(null, KEY_NAME);
url = parseRequiredString(parser, KEY_URL); url = parseRequiredString(parser, KEY_URL);
maxWidth = parseInt(parser, KEY_MAX_WIDTH, Format.NO_VALUE); maxWidth = parseInt(parser, KEY_MAX_WIDTH, Format.NO_VALUE);
...@@ -645,6 +646,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> { ...@@ -645,6 +646,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
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_SUB_TYPE = "Subtype";
private static final String KEY_LANGUAGE = "Language"; private static final String KEY_LANGUAGE = "Language";
private static final String KEY_NAME = "Name"; private static final String KEY_NAME = "Name";
private static final String KEY_MAX_WIDTH = "MaxWidth"; private static final String KEY_MAX_WIDTH = "MaxWidth";
...@@ -709,6 +711,18 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> { ...@@ -709,6 +711,18 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
/* roleFlags= */ 0, /* roleFlags= */ 0,
language); language);
} else if (type == C.TRACK_TYPE_TEXT) { } else if (type == C.TRACK_TYPE_TEXT) {
String subType = (String) getNormalizedAttribute(KEY_SUB_TYPE);
@C.RoleFlags int roleFlags = 0;
switch (subType) {
case "CAPT":
roleFlags = C.ROLE_FLAG_CAPTION;
break;
case "DESC":
roleFlags = C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND;
break;
default:
break;
}
String language = (String) getNormalizedAttribute(KEY_LANGUAGE); String language = (String) getNormalizedAttribute(KEY_LANGUAGE);
format = format =
Format.createTextContainerFormat( Format.createTextContainerFormat(
...@@ -719,7 +733,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> { ...@@ -719,7 +733,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
/* codecs= */ null, /* codecs= */ null,
bitrate, bitrate,
/* selectionFlags= */ 0, /* selectionFlags= */ 0,
/* roleFlags= */ 0, roleFlags,
language); language);
} else { } else {
format = format =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment