Class DrmInitData
- java.lang.Object
-
- com.google.android.exoplayer2.drm.DrmInitData
-
- All Implemented Interfaces:
Parcelable
,Comparator<DrmInitData.SchemeData>
public final class DrmInitData extends Object implements Comparator<DrmInitData.SchemeData>, Parcelable
Initialization data for one or more DRM schemes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DrmInitData.SchemeData
Scheme initialization data.-
Nested classes/interfaces inherited from interface android.os.Parcelable
Parcelable.ClassLoaderCreator<T extends Object>, Parcelable.Creator<T extends Object>
-
-
Field Summary
Fields Modifier and Type Field Description static Parcelable.Creator<DrmInitData>
CREATOR
int
schemeDataCount
Number ofDrmInitData.SchemeData
s.String
schemeType
The protection scheme type, or null if not applicable or unknown.-
Fields inherited from interface android.os.Parcelable
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE
-
-
Constructor Summary
Constructors Constructor Description DrmInitData(DrmInitData.SchemeData... schemeDatas)
DrmInitData(String schemeType, DrmInitData.SchemeData... schemeDatas)
DrmInitData(String schemeType, List<DrmInitData.SchemeData> schemeDatas)
DrmInitData(List<DrmInitData.SchemeData> schemeDatas)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compare(DrmInitData.SchemeData first, DrmInitData.SchemeData second)
DrmInitData
copyWithSchemeType(String schemeType)
Returns a copy with the specified protection scheme type.static DrmInitData
createSessionCreationData(DrmInitData manifestData, DrmInitData mediaData)
MergesDrmInitData
obtained from a media manifest and a media stream.int
describeContents()
boolean
equals(Object obj)
DrmInitData.SchemeData
get(int index)
Retrieves theDrmInitData.SchemeData
at a given index.int
hashCode()
DrmInitData
merge(DrmInitData drmInitData)
Returns an instance containing theschemeDatas
from both this andother
.void
writeToParcel(Parcel dest, int flags)
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
Field Detail
-
schemeType
@Nullable public final String schemeType
The protection scheme type, or null if not applicable or unknown.
-
schemeDataCount
public final int schemeDataCount
Number ofDrmInitData.SchemeData
s.
-
CREATOR
public static final Parcelable.Creator<DrmInitData> CREATOR
-
-
Constructor Detail
-
DrmInitData
public DrmInitData(List<DrmInitData.SchemeData> schemeDatas)
- Parameters:
schemeDatas
- Scheme initialization data for possibly multiple DRM schemes.
-
DrmInitData
public DrmInitData(@Nullable String schemeType, List<DrmInitData.SchemeData> schemeDatas)
- Parameters:
schemeType
- SeeschemeType
.schemeDatas
- Scheme initialization data for possibly multiple DRM schemes.
-
DrmInitData
public DrmInitData(DrmInitData.SchemeData... schemeDatas)
- Parameters:
schemeDatas
- Scheme initialization data for possibly multiple DRM schemes.
-
DrmInitData
public DrmInitData(@Nullable String schemeType, DrmInitData.SchemeData... schemeDatas)
- Parameters:
schemeType
- SeeschemeType
.schemeDatas
- Scheme initialization data for possibly multiple DRM schemes.
-
-
Method Detail
-
createSessionCreationData
@Nullable public static DrmInitData createSessionCreationData(@Nullable DrmInitData manifestData, @Nullable DrmInitData mediaData)
MergesDrmInitData
obtained from a media manifest and a media stream.The result is generated as follows.
- Include all
DrmInitData.SchemeData
s frommanifestData
whereDrmInitData.SchemeData.hasData()
is true. - Include all
DrmInitData.SchemeData
s inmediaData
whereDrmInitData.SchemeData.hasData()
is true and for which we did not include an entry from the manifest targeting the same UUID. - If available, the scheme type from the manifest is used. If not, the scheme type from the media is used.
- Parameters:
manifestData
- DRM session acquisition data obtained from the manifest.mediaData
- DRM session acquisition data obtained from the media.- Returns:
- A
DrmInitData
obtained from merging a media manifest and a media stream.
- Include all
-
get
public DrmInitData.SchemeData get(int index)
Retrieves theDrmInitData.SchemeData
at a given index.- Parameters:
index
- The index of the scheme to return. Must not exceedschemeDataCount
.- Returns:
- The
DrmInitData.SchemeData
at the specified index.
-
copyWithSchemeType
@CheckResult public DrmInitData copyWithSchemeType(@Nullable String schemeType)
Returns a copy with the specified protection scheme type.- Parameters:
schemeType
- A protection scheme type. May be null.- Returns:
- A copy with the specified protection scheme type.
-
merge
public DrmInitData merge(DrmInitData drmInitData)
Returns an instance containing theschemeDatas
from both this andother
. TheschemeType
of the instances being merged must either match, or at least one scheme type must benull
.- Parameters:
drmInitData
- The instance to merge.- Returns:
- The merged result.
-
equals
public boolean equals(@Nullable Object obj)
- Specified by:
equals
in interfaceComparator<DrmInitData.SchemeData>
- Overrides:
equals
in classObject
-
compare
public int compare(DrmInitData.SchemeData first, DrmInitData.SchemeData second)
- Specified by:
compare
in interfaceComparator<DrmInitData.SchemeData>
-
describeContents
public int describeContents()
- Specified by:
describeContents
in interfaceParcelable
-
writeToParcel
public void writeToParcel(Parcel dest, int flags)
- Specified by:
writeToParcel
in interfaceParcelable
-
-