mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Merge role and accessibility fields into RoleFlags
This commit is contained in:
parent
58d746ecaa
commit
854419962a
6 changed files with 134 additions and 181 deletions
|
|
@ -977,52 +977,36 @@ public final class C {
|
||||||
public static final int NETWORK_TYPE_OTHER = 8;
|
public static final int NETWORK_TYPE_OTHER = 8;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adaptation set's role descriptor value (ISO 23009-1)
|
* Adaptation set's role and accessibility descriptor value.
|
||||||
*/
|
*/
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({
|
@IntDef(
|
||||||
ROLE_UNSET,
|
flag = true,
|
||||||
ROLE_MAIN,
|
value = {
|
||||||
ROLE_ALTERNATE,
|
ROLE_FLAGS_MAIN,
|
||||||
ROLE_SUPPLEMENTARY,
|
ROLE_FLAGS_ALTERNATE,
|
||||||
ROLE_COMMENTARY,
|
ROLE_FLAGS_SUPPLEMENTARY,
|
||||||
ROLE_DUB,
|
ROLE_FLAGS_COMMENTARY,
|
||||||
ROLE_EMERGENCY,
|
ROLE_FLAGS_DUB,
|
||||||
ROLE_CAPTION,
|
ROLE_FLAGS_EMERGENCY,
|
||||||
ROLE_SIGN
|
ROLE_FLAGS_CAPTION,
|
||||||
|
ROLE_FLAGS_SIGN,
|
||||||
|
ROLE_FLAGS_ENHANCED_AUDIO_INTELLIGIBILITY,
|
||||||
|
ROLE_FLAGS_DESCRIPTION
|
||||||
})
|
})
|
||||||
public @interface Role {}
|
public @interface RoleFlags {}
|
||||||
|
|
||||||
public static final int ROLE_UNSET = -1;
|
public static final int ROLE_FLAGS_MAIN = 1;
|
||||||
public static final int ROLE_MAIN = 0;
|
public static final int ROLE_FLAGS_ALTERNATE = 1 << 1;
|
||||||
public static final int ROLE_ALTERNATE = 1;
|
public static final int ROLE_FLAGS_SUPPLEMENTARY = 1 << 2;
|
||||||
public static final int ROLE_SUPPLEMENTARY = 2;
|
public static final int ROLE_FLAGS_COMMENTARY = 1 << 3;
|
||||||
public static final int ROLE_COMMENTARY = 3;
|
public static final int ROLE_FLAGS_DUB = 1 << 4;
|
||||||
public static final int ROLE_DUB = 4;
|
public static final int ROLE_FLAGS_EMERGENCY = 1 << 5;
|
||||||
public static final int ROLE_EMERGENCY = 5;
|
public static final int ROLE_FLAGS_CAPTION = 1 << 6;
|
||||||
public static final int ROLE_CAPTION = 6;
|
public static final int ROLE_FLAGS_SIGN = 1 << 7;
|
||||||
public static final int ROLE_SIGN = 7;
|
public static final int ROLE_FLAGS_ENHANCED_AUDIO_INTELLIGIBILITY = 1 << 8;
|
||||||
|
public static final int ROLE_FLAGS_DESCRIPTION = 1 << 9;
|
||||||
/**
|
|
||||||
* Adaptation set's accessibility descriptor value (ISO 23009-1)
|
|
||||||
*/
|
|
||||||
@Documented
|
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
|
||||||
@IntDef({
|
|
||||||
ACCESSIBILITY_UNSET,
|
|
||||||
ACCESSIBILITY_ENHANCED_AUDIO_INTELLIGIBILITY,
|
|
||||||
ACCESSIBILITY_DESCRIPTION,
|
|
||||||
ACCESSIBILITY_CAPTION,
|
|
||||||
ACCESSIBILITY_SIGN
|
|
||||||
})
|
|
||||||
public @interface Accessibility {}
|
|
||||||
|
|
||||||
public static final int ACCESSIBILITY_UNSET = -1;
|
|
||||||
public static final int ACCESSIBILITY_ENHANCED_AUDIO_INTELLIGIBILITY = 1;
|
|
||||||
public static final int ACCESSIBILITY_DESCRIPTION = 2;
|
|
||||||
public static final int ACCESSIBILITY_CAPTION = 3;
|
|
||||||
public static final int ACCESSIBILITY_SIGN = 4;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a time in microseconds to the corresponding time in milliseconds, preserving
|
* Converts a time in microseconds to the corresponding time in milliseconds, preserving
|
||||||
|
|
|
||||||
|
|
@ -51,15 +51,9 @@ public final class Format implements Parcelable {
|
||||||
/** Track selection flags. **/
|
/** Track selection flags. **/
|
||||||
@C.SelectionFlags
|
@C.SelectionFlags
|
||||||
public final int selectionFlags;
|
public final int selectionFlags;
|
||||||
/** Track role descriptor value, or {@link C#ROLE_UNSET} if unknown or not applicable. **/
|
/** Track role and accessibility descriptor values. **/
|
||||||
@C.Role
|
@C.RoleFlags
|
||||||
public final int role;
|
public final int roleFlags;
|
||||||
/**
|
|
||||||
* Track accessibility descriptor value, or {@link C#ACCESSIBILITY_UNSET} if unknown
|
|
||||||
* or not applicable.
|
|
||||||
*/
|
|
||||||
@C.Accessibility
|
|
||||||
public final int accessibility;
|
|
||||||
/**
|
/**
|
||||||
* The average bandwidth in bits per second, or {@link #NO_VALUE} if unknown or not applicable.
|
* The average bandwidth in bits per second, or {@link #NO_VALUE} if unknown or not applicable.
|
||||||
*/
|
*/
|
||||||
|
|
@ -189,8 +183,7 @@ public final class Format implements Parcelable {
|
||||||
float frameRate,
|
float frameRate,
|
||||||
@Nullable List<byte[]> initializationData,
|
@Nullable List<byte[]> initializationData,
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags) {
|
||||||
@C.Accessibility int accessibility) {
|
|
||||||
return createVideoContainerFormat(
|
return createVideoContainerFormat(
|
||||||
id,
|
id,
|
||||||
/* label= */ null,
|
/* label= */ null,
|
||||||
|
|
@ -203,8 +196,7 @@ public final class Format implements Parcelable {
|
||||||
frameRate,
|
frameRate,
|
||||||
initializationData,
|
initializationData,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
role,
|
roleFlags);
|
||||||
accessibility);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Format createVideoContainerFormat(
|
public static Format createVideoContainerFormat(
|
||||||
|
|
@ -219,8 +211,7 @@ public final class Format implements Parcelable {
|
||||||
float frameRate,
|
float frameRate,
|
||||||
@Nullable List<byte[]> initializationData,
|
@Nullable List<byte[]> initializationData,
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags) {
|
||||||
@C.Accessibility int accessibility) {
|
|
||||||
return new Format(
|
return new Format(
|
||||||
id,
|
id,
|
||||||
label,
|
label,
|
||||||
|
|
@ -245,8 +236,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
/* language= */ null,
|
/* language= */ null,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
initializationData,
|
initializationData,
|
||||||
/* drmInitData= */ null,
|
/* drmInitData= */ null,
|
||||||
|
|
@ -350,8 +340,7 @@ public final class Format implements Parcelable {
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
/* language= */ null,
|
/* language= */ null,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -372,8 +361,7 @@ public final class Format implements Parcelable {
|
||||||
@Nullable List<byte[]> initializationData,
|
@Nullable List<byte[]> initializationData,
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@Nullable String language,
|
@Nullable String language,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags) {
|
||||||
@C.Accessibility int accessibility) {
|
|
||||||
return createAudioContainerFormat(
|
return createAudioContainerFormat(
|
||||||
id,
|
id,
|
||||||
/* label= */ null,
|
/* label= */ null,
|
||||||
|
|
@ -386,8 +374,7 @@ public final class Format implements Parcelable {
|
||||||
initializationData,
|
initializationData,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
role,
|
roleFlags);
|
||||||
accessibility);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Format createAudioContainerFormat(
|
public static Format createAudioContainerFormat(
|
||||||
|
|
@ -402,8 +389,7 @@ public final class Format implements Parcelable {
|
||||||
@Nullable List<byte[]> initializationData,
|
@Nullable List<byte[]> initializationData,
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@Nullable String language,
|
@Nullable String language,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags) {
|
||||||
@C.Accessibility int accessibility) {
|
|
||||||
return new Format(
|
return new Format(
|
||||||
id,
|
id,
|
||||||
label,
|
label,
|
||||||
|
|
@ -428,8 +414,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
initializationData,
|
initializationData,
|
||||||
/* drmInitData= */ null,
|
/* drmInitData= */ null,
|
||||||
|
|
@ -534,8 +519,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -583,8 +567,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Format createTextContainerFormat(
|
public static Format createTextContainerFormat(
|
||||||
|
|
@ -597,8 +580,7 @@ public final class Format implements Parcelable {
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@Nullable String language,
|
@Nullable String language,
|
||||||
int accessibilityChannel,
|
int accessibilityChannel,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags) {
|
||||||
@C.Accessibility int accessibility) {
|
|
||||||
return new Format(
|
return new Format(
|
||||||
id,
|
id,
|
||||||
label,
|
label,
|
||||||
|
|
@ -623,8 +605,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
/* drmInitData= */ null,
|
/* drmInitData= */ null,
|
||||||
|
|
@ -737,8 +718,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -780,8 +760,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -843,8 +822,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
/* drmInitData= */ null,
|
/* drmInitData= */ null,
|
||||||
|
|
@ -877,8 +855,7 @@ public final class Format implements Parcelable {
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
/* language= */ null,
|
/* language= */ null,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
/* drmInitData= */ null,
|
/* drmInitData= */ null,
|
||||||
|
|
@ -915,8 +892,7 @@ public final class Format implements Parcelable {
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
/* language= */ null,
|
/* language= */ null,
|
||||||
/* accessibilityChannel= */ NO_VALUE,
|
/* accessibilityChannel= */ NO_VALUE,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0,
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET,
|
|
||||||
OFFSET_SAMPLE_RELATIVE,
|
OFFSET_SAMPLE_RELATIVE,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -947,8 +923,7 @@ public final class Format implements Parcelable {
|
||||||
@C.SelectionFlags int selectionFlags,
|
@C.SelectionFlags int selectionFlags,
|
||||||
@Nullable String language,
|
@Nullable String language,
|
||||||
int accessibilityChannel,
|
int accessibilityChannel,
|
||||||
@C.Role int role,
|
@C.RoleFlags int roleFlags,
|
||||||
@C.Accessibility int accessibility,
|
|
||||||
long subsampleOffsetUs,
|
long subsampleOffsetUs,
|
||||||
@Nullable List<byte[]> initializationData,
|
@Nullable List<byte[]> initializationData,
|
||||||
@Nullable DrmInitData drmInitData,
|
@Nullable DrmInitData drmInitData,
|
||||||
|
|
@ -977,8 +952,7 @@ public final class Format implements Parcelable {
|
||||||
this.selectionFlags = selectionFlags;
|
this.selectionFlags = selectionFlags;
|
||||||
this.language = Util.normalizeLanguageCode(language);
|
this.language = Util.normalizeLanguageCode(language);
|
||||||
this.accessibilityChannel = accessibilityChannel;
|
this.accessibilityChannel = accessibilityChannel;
|
||||||
this.role = role;
|
this.roleFlags = roleFlags;
|
||||||
this.accessibility = accessibility;
|
|
||||||
this.subsampleOffsetUs = subsampleOffsetUs;
|
this.subsampleOffsetUs = subsampleOffsetUs;
|
||||||
this.initializationData =
|
this.initializationData =
|
||||||
initializationData == null ? Collections.emptyList() : initializationData;
|
initializationData == null ? Collections.emptyList() : initializationData;
|
||||||
|
|
@ -1012,8 +986,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags = in.readInt();
|
selectionFlags = in.readInt();
|
||||||
language = in.readString();
|
language = in.readString();
|
||||||
accessibilityChannel = in.readInt();
|
accessibilityChannel = in.readInt();
|
||||||
role = in.readInt();
|
roleFlags = in.readInt();
|
||||||
accessibility = in.readInt();
|
|
||||||
subsampleOffsetUs = in.readLong();
|
subsampleOffsetUs = in.readLong();
|
||||||
int initializationDataSize = in.readInt();
|
int initializationDataSize = in.readInt();
|
||||||
initializationData = new ArrayList<>(initializationDataSize);
|
initializationData = new ArrayList<>(initializationDataSize);
|
||||||
|
|
@ -1049,8 +1022,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1082,8 +1054,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1124,8 +1095,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1197,8 +1167,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1230,8 +1199,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1263,8 +1231,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1296,8 +1263,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1329,8 +1295,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1362,8 +1327,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1395,8 +1359,7 @@ public final class Format implements Parcelable {
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags,
|
||||||
accessibility,
|
|
||||||
subsampleOffsetUs,
|
subsampleOffsetUs,
|
||||||
initializationData,
|
initializationData,
|
||||||
drmInitData,
|
drmInitData,
|
||||||
|
|
@ -1506,8 +1469,7 @@ public final class Format implements Parcelable {
|
||||||
&& Util.areEqual(label, other.label)
|
&& Util.areEqual(label, other.label)
|
||||||
&& Util.areEqual(language, other.language)
|
&& Util.areEqual(language, other.language)
|
||||||
&& accessibilityChannel == other.accessibilityChannel
|
&& accessibilityChannel == other.accessibilityChannel
|
||||||
&& Util.areEqual(role, other.role)
|
&& roleFlags == other.roleFlags
|
||||||
&& Util.areEqual(accessibility, other.accessibility)
|
|
||||||
&& Util.areEqual(containerMimeType, other.containerMimeType)
|
&& Util.areEqual(containerMimeType, other.containerMimeType)
|
||||||
&& Util.areEqual(sampleMimeType, other.sampleMimeType)
|
&& Util.areEqual(sampleMimeType, other.sampleMimeType)
|
||||||
&& Util.areEqual(codecs, other.codecs)
|
&& Util.areEqual(codecs, other.codecs)
|
||||||
|
|
@ -1609,8 +1571,7 @@ public final class Format implements Parcelable {
|
||||||
dest.writeInt(selectionFlags);
|
dest.writeInt(selectionFlags);
|
||||||
dest.writeString(language);
|
dest.writeString(language);
|
||||||
dest.writeInt(accessibilityChannel);
|
dest.writeInt(accessibilityChannel);
|
||||||
dest.writeInt(role);
|
dest.writeInt(roleFlags);
|
||||||
dest.writeInt(accessibility);
|
|
||||||
dest.writeLong(subsampleOffsetUs);
|
dest.writeLong(subsampleOffsetUs);
|
||||||
int initializationDataSize = initializationData.size();
|
int initializationDataSize = initializationData.size();
|
||||||
dest.writeInt(initializationDataSize);
|
dest.writeInt(initializationDataSize);
|
||||||
|
|
|
||||||
|
|
@ -588,8 +588,9 @@ public class DashManifestParser extends DefaultHandler
|
||||||
List<Descriptor> supplementalProperties) {
|
List<Descriptor> supplementalProperties) {
|
||||||
String sampleMimeType = getSampleMimeType(containerMimeType, codecs);
|
String sampleMimeType = getSampleMimeType(containerMimeType, codecs);
|
||||||
if (sampleMimeType != null) {
|
if (sampleMimeType != null) {
|
||||||
int role = parseRole(roleDescriptors);
|
@C.RoleFlags int role = parseRole(roleDescriptors);
|
||||||
int accessibility = parseAccessibility(accessibilityDescriptors);
|
@C.RoleFlags int accessibility = parseAccessibility(accessibilityDescriptors);
|
||||||
|
@C.RoleFlags int roleFlags = role | accessibility;
|
||||||
if (MimeTypes.AUDIO_E_AC3.equals(sampleMimeType)) {
|
if (MimeTypes.AUDIO_E_AC3.equals(sampleMimeType)) {
|
||||||
sampleMimeType = parseEac3SupplementalProperties(supplementalProperties);
|
sampleMimeType = parseEac3SupplementalProperties(supplementalProperties);
|
||||||
}
|
}
|
||||||
|
|
@ -606,8 +607,7 @@ public class DashManifestParser extends DefaultHandler
|
||||||
frameRate,
|
frameRate,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
role,
|
roleFlags);
|
||||||
accessibility);
|
|
||||||
} else if (MimeTypes.isAudio(sampleMimeType)) {
|
} else if (MimeTypes.isAudio(sampleMimeType)) {
|
||||||
return Format.createAudioContainerFormat(
|
return Format.createAudioContainerFormat(
|
||||||
id,
|
id,
|
||||||
|
|
@ -621,8 +621,7 @@ public class DashManifestParser extends DefaultHandler
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
role,
|
roleFlags);
|
||||||
accessibility);
|
|
||||||
} else if (mimeTypeIsRawText(sampleMimeType)) {
|
} else if (mimeTypeIsRawText(sampleMimeType)) {
|
||||||
int accessibilityChannel;
|
int accessibilityChannel;
|
||||||
if (MimeTypes.APPLICATION_CEA608.equals(sampleMimeType)) {
|
if (MimeTypes.APPLICATION_CEA608.equals(sampleMimeType)) {
|
||||||
|
|
@ -642,8 +641,7 @@ public class DashManifestParser extends DefaultHandler
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
role,
|
roleFlags);
|
||||||
accessibility);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Format.createContainerFormat(
|
return Format.createContainerFormat(
|
||||||
|
|
@ -1070,66 +1068,83 @@ public class DashManifestParser extends DefaultHandler
|
||||||
|
|
||||||
// Role and Accessibility parsing.
|
// Role and Accessibility parsing.
|
||||||
|
|
||||||
protected @C.Role int parseRole(List<Descriptor> roleDescriptors) {
|
protected @C.RoleFlags int parseRole(List<Descriptor> roleDescriptors) {
|
||||||
|
@C.RoleFlags int result = 0;
|
||||||
for (int i = 0; i < roleDescriptors.size(); i++) {
|
for (int i = 0; i < roleDescriptors.size(); i++) {
|
||||||
Descriptor descriptor = roleDescriptors.get(i);
|
Descriptor descriptor = roleDescriptors.get(i);
|
||||||
if ("urn:mpeg:dash:role:2011".equalsIgnoreCase(descriptor.schemeIdUri) && descriptor.value != null) {
|
if ("urn:mpeg:dash:role:2011".equalsIgnoreCase(descriptor.schemeIdUri) && descriptor.value != null) {
|
||||||
switch (descriptor.value) {
|
result |= parseRoleSchemeValue(descriptor.value);
|
||||||
case "main":
|
|
||||||
return C.ROLE_MAIN;
|
|
||||||
case "alternate":
|
|
||||||
return C.ROLE_ALTERNATE;
|
|
||||||
case "supplementary":
|
|
||||||
return C.ROLE_SUPPLEMENTARY;
|
|
||||||
case "commentary":
|
|
||||||
return C.ROLE_COMMENTARY;
|
|
||||||
case "dub":
|
|
||||||
return C.ROLE_DUB;
|
|
||||||
case "emergency":
|
|
||||||
return C.ROLE_EMERGENCY;
|
|
||||||
case "caption":
|
|
||||||
return C.ROLE_CAPTION;
|
|
||||||
case "sign":
|
|
||||||
return C.ROLE_SIGN;
|
|
||||||
default:
|
|
||||||
return C.ROLE_UNSET;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return C.ROLE_UNSET;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected @C.Accessibility int parseAccessibility(List<Descriptor> accessibilityDescriptors) {
|
protected @C.RoleFlags int parseAccessibility(List<Descriptor> accessibilityDescriptors) {
|
||||||
|
@C.RoleFlags int result = 0;
|
||||||
for (int i = 0; i < accessibilityDescriptors.size(); i++) {
|
for (int i = 0; i < accessibilityDescriptors.size(); i++) {
|
||||||
Descriptor descriptor = accessibilityDescriptors.get(i);
|
Descriptor descriptor = accessibilityDescriptors.get(i);
|
||||||
if ("urn:mpeg:dash:role:2011".equalsIgnoreCase(descriptor.schemeIdUri) && descriptor.value != null) {
|
if ("urn:mpeg:dash:role:2011".equalsIgnoreCase(descriptor.schemeIdUri) && descriptor.value != null) {
|
||||||
switch (descriptor.value){
|
result |= parseRoleSchemeValue(descriptor.value);
|
||||||
case "description":
|
|
||||||
return C.ACCESSIBILITY_DESCRIPTION;
|
|
||||||
case "enhanced-audio-intelligibility":
|
|
||||||
return C.ACCESSIBILITY_ENHANCED_AUDIO_INTELLIGIBILITY;
|
|
||||||
case "caption":
|
|
||||||
return C.ACCESSIBILITY_CAPTION;
|
|
||||||
case "sign":
|
|
||||||
return C.ACCESSIBILITY_SIGN;
|
|
||||||
default:
|
|
||||||
return C.ACCESSIBILITY_UNSET;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("urn:tva:metadata:cs:AudioPurposeCS:2007".equalsIgnoreCase(descriptor.schemeIdUri) &&
|
if ("urn:tva:metadata:cs:AudioPurposeCS:2007".equalsIgnoreCase(descriptor.schemeIdUri) &&
|
||||||
descriptor.value != null) {
|
descriptor.value != null) {
|
||||||
switch (descriptor.value){
|
switch (descriptor.value){
|
||||||
case "1":
|
case "1": // Audio description for the visually impaired
|
||||||
return C.ACCESSIBILITY_ENHANCED_AUDIO_INTELLIGIBILITY;
|
result |= C.ROLE_FLAGS_DESCRIPTION;
|
||||||
case "2":
|
break;
|
||||||
return C.ACCESSIBILITY_CAPTION;
|
case "2": // Audio description for the hard of hearing
|
||||||
default:
|
result |= C.ROLE_FLAGS_ENHANCED_AUDIO_INTELLIGIBILITY;
|
||||||
return C.ACCESSIBILITY_UNSET;
|
break;
|
||||||
|
case "3": // Supplemental commentary
|
||||||
|
result |= C.ROLE_FLAGS_SUPPLEMENTARY;
|
||||||
|
break;
|
||||||
|
case "4": // Director's commentary
|
||||||
|
result |= C.ROLE_FLAGS_COMMENTARY;
|
||||||
|
break;
|
||||||
|
case "6": // Main programme audio
|
||||||
|
result |= C.ROLE_FLAGS_MAIN;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return C.ACCESSIBILITY_UNSET;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected @C.RoleFlags int parseRoleSchemeValue(String value){
|
||||||
|
@C.RoleFlags int result = 0;
|
||||||
|
switch (value) {
|
||||||
|
case "main":
|
||||||
|
result |= C.ROLE_FLAGS_MAIN;
|
||||||
|
break;
|
||||||
|
case "alternate":
|
||||||
|
result |= C.ROLE_FLAGS_ALTERNATE;
|
||||||
|
break;
|
||||||
|
case "supplementary":
|
||||||
|
result |= C.ROLE_FLAGS_SUPPLEMENTARY;
|
||||||
|
break;
|
||||||
|
case "commentary":
|
||||||
|
result |= C.ROLE_FLAGS_COMMENTARY;
|
||||||
|
break;
|
||||||
|
case "dub":
|
||||||
|
result |= C.ROLE_FLAGS_DUB;
|
||||||
|
break;
|
||||||
|
case "emergency":
|
||||||
|
result |= C.ROLE_FLAGS_EMERGENCY;
|
||||||
|
break;
|
||||||
|
case "caption":
|
||||||
|
result |= C.ROLE_FLAGS_CAPTION;
|
||||||
|
break;
|
||||||
|
case "sign":
|
||||||
|
result |= C.ROLE_FLAGS_SIGN;
|
||||||
|
break;
|
||||||
|
case "description":
|
||||||
|
result |= C.ROLE_FLAGS_DESCRIPTION;
|
||||||
|
break;
|
||||||
|
case "enhanced-audio-intelligibility":
|
||||||
|
result |= C.ROLE_FLAGS_ENHANCED_AUDIO_INTELLIGIBILITY;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Utility methods.
|
// Utility methods.
|
||||||
|
|
|
||||||
|
|
@ -703,8 +703,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||||
variantFormat.frameRate,
|
variantFormat.frameRate,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
variantFormat.selectionFlags,
|
variantFormat.selectionFlags,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Format deriveAudioFormat(
|
private static Format deriveAudioFormat(
|
||||||
|
|
@ -743,8 +742,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -330,8 +330,7 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
|
||||||
frameRate,
|
frameRate,
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
variants.add(new HlsMasterPlaylist.HlsUrl(line, format, /* name= */ ""));
|
variants.add(new HlsMasterPlaylist.HlsUrl(line, format, /* name= */ ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -364,8 +363,7 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
|
||||||
/* initializationData= */ null,
|
/* initializationData= */ null,
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
if (isMediaTagMuxed(variants, uri)) {
|
if (isMediaTagMuxed(variants, uri)) {
|
||||||
muxedAudioFormat = format;
|
muxedAudioFormat = format;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -410,8 +408,7 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
|
||||||
selectionFlags,
|
selectionFlags,
|
||||||
language,
|
language,
|
||||||
accessibilityChannel,
|
accessibilityChannel,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0));
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET));
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
|
|
|
||||||
|
|
@ -682,8 +682,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
|
||||||
/* frameRate= */ Format.NO_VALUE,
|
/* frameRate= */ Format.NO_VALUE,
|
||||||
codecSpecificData,
|
codecSpecificData,
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
} else if (type == C.TRACK_TYPE_AUDIO) {
|
} else if (type == C.TRACK_TYPE_AUDIO) {
|
||||||
sampleMimeType = sampleMimeType == null ? MimeTypes.AUDIO_AAC : sampleMimeType;
|
sampleMimeType = sampleMimeType == null ? MimeTypes.AUDIO_AAC : sampleMimeType;
|
||||||
int channels = parseRequiredInt(parser, KEY_CHANNELS);
|
int channels = parseRequiredInt(parser, KEY_CHANNELS);
|
||||||
|
|
@ -708,8 +707,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
|
||||||
codecSpecificData,
|
codecSpecificData,
|
||||||
/* selectionFlags= */ 0,
|
/* selectionFlags= */ 0,
|
||||||
language,
|
language,
|
||||||
/* role= */ C.ROLE_UNSET,
|
/* roleFlags= */ 0);
|
||||||
/* accessibility= */ C.ACCESSIBILITY_UNSET);
|
|
||||||
} else if (type == C.TRACK_TYPE_TEXT) {
|
} else if (type == C.TRACK_TYPE_TEXT) {
|
||||||
String language = (String) getNormalizedAttribute(KEY_LANGUAGE);
|
String language = (String) getNormalizedAttribute(KEY_LANGUAGE);
|
||||||
format =
|
format =
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue