Class CryptoInfo
- java.lang.Object
-
- com.google.android.exoplayer2.decoder.CryptoInfo
-
public final class CryptoInfo extends Object
Metadata describing the structure of an encrypted input sample.This class is a compatibility wrapper for
MediaCodec.CryptoInfo
.
-
-
Field Summary
Fields Modifier and Type Field Description int
clearBlocks
int
encryptedBlocks
byte[]
iv
The 16 byte initialization vector.byte[]
key
The 16 byte key id.@com.google.android.exoplayer2.C.CryptoMode int
mode
The type of encryption that has been applied.int[]
numBytesOfClearData
The number of leading unencrypted bytes in each sub-sample.int[]
numBytesOfEncryptedData
The number of trailing encrypted bytes in each sub-sample.int
numSubSamples
The number of subSamples that make up the buffer's contents.
-
Constructor Summary
Constructors Constructor Description CryptoInfo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MediaCodec.CryptoInfo
getFrameworkCryptoInfo()
Returns an equivalentMediaCodec.CryptoInfo
instance.void
increaseClearDataFirstSubSampleBy(int count)
Increases the number of clear data for the first sub sample bycount
.void
set(int numSubSamples, int[] numBytesOfClearData, int[] numBytesOfEncryptedData, byte[] key, byte[] iv, @com.google.android.exoplayer2.C.CryptoMode int mode, int encryptedBlocks, int clearBlocks)
-
-
-
Field Detail
-
iv
@Nullable public byte[] iv
The 16 byte initialization vector. If the initialization vector of the content is shorter than 16 bytes, 0 byte padding is appended to extend the vector to the required 16 byte length.- See Also:
MediaCodec.CryptoInfo.iv
-
key
@Nullable public byte[] key
The 16 byte key id.- See Also:
MediaCodec.CryptoInfo.key
-
mode
public @com.google.android.exoplayer2.C.CryptoMode int mode
The type of encryption that has been applied. Must be one of theC.CryptoMode
values.- See Also:
MediaCodec.CryptoInfo.mode
-
numBytesOfClearData
@Nullable public int[] numBytesOfClearData
The number of leading unencrypted bytes in each sub-sample. If null, all bytes are treated as encrypted andnumBytesOfEncryptedData
must be specified.
-
numBytesOfEncryptedData
@Nullable public int[] numBytesOfEncryptedData
The number of trailing encrypted bytes in each sub-sample. If null, all bytes are treated as clear andnumBytesOfClearData
must be specified.
-
numSubSamples
public int numSubSamples
The number of subSamples that make up the buffer's contents.- See Also:
MediaCodec.CryptoInfo.numSubSamples
-
encryptedBlocks
public int encryptedBlocks
- See Also:
MediaCodec.CryptoInfo.Pattern
-
clearBlocks
public int clearBlocks
- See Also:
MediaCodec.CryptoInfo.Pattern
-
-
Method Detail
-
set
public void set(int numSubSamples, int[] numBytesOfClearData, int[] numBytesOfEncryptedData, byte[] key, byte[] iv, @com.google.android.exoplayer2.C.CryptoMode int mode, int encryptedBlocks, int clearBlocks)
-
getFrameworkCryptoInfo
public MediaCodec.CryptoInfo getFrameworkCryptoInfo()
Returns an equivalentMediaCodec.CryptoInfo
instance.Successive calls to this method on a single
CryptoInfo
will return the same instance. Changes to theCryptoInfo
will be reflected in the returned object. The return object should not be modified directly.- Returns:
- The equivalent
MediaCodec.CryptoInfo
instance.
-
increaseClearDataFirstSubSampleBy
public void increaseClearDataFirstSubSampleBy(int count)
Increases the number of clear data for the first sub sample bycount
.If
count
is 0, this method is a no-op. Otherwise, it addscount
tonumBytesOfClearData
[0].If
numBytesOfClearData
is null (which is permitted), this method will instantiate it to a newint[1]
.- Parameters:
count
- The number of bytes to be added to the first subSample ofnumBytesOfClearData
.
-
-