Class CodecSpecificDataUtil
- java.lang.Object
-
- com.google.android.exoplayer2.util.CodecSpecificDataUtil
-
public final class CodecSpecificDataUtil extends Object
Provides utilities for handling various types of codec-specific data.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
buildAvcCodecString(int profileIdc, int constraintsFlagsAndReservedZero2Bits, int levelIdc)
Builds an RFC 6381 AVC codec string using the provided parameters.static List<byte[]>
buildCea708InitializationData(boolean isWideAspectRatio)
Returns initialization data for formats with MIME typeMimeTypes.APPLICATION_CEA708
.static String
buildHevcCodecString(int generalProfileSpace, boolean generalTierFlag, int generalProfileIdc, int generalProfileCompatibilityFlags, int[] constraintBytes, int generalLevelIdc)
Builds an RFC 6381 HEVC codec string using the provided parameters.static byte[]
buildNalUnit(byte[] data, int offset, int length)
Constructs a NAL unit consisting of the NAL start code followed by the specified data.static Pair<Integer,Integer>
parseAlacAudioSpecificConfig(byte[] audioSpecificConfig)
Parses an ALAC AudioSpecificConfig (i.e.static boolean
parseCea708InitializationData(List<byte[]> initializationData)
Returns whether the CEA-708 closed caption service with the given initialization data is formatted for displays with 16:9 aspect ratio.static byte[][]
splitNalUnits(byte[] data)
Splits an array of NAL units.
-
-
-
Method Detail
-
parseAlacAudioSpecificConfig
public static Pair<Integer,Integer> parseAlacAudioSpecificConfig(byte[] audioSpecificConfig)
Parses an ALAC AudioSpecificConfig (i.e. an ALACSpecificConfig).- Parameters:
audioSpecificConfig
- A byte array containing the AudioSpecificConfig to parse.- Returns:
- A pair consisting of the sample rate in Hz and the channel count.
-
buildCea708InitializationData
public static List<byte[]> buildCea708InitializationData(boolean isWideAspectRatio)
Returns initialization data for formats with MIME typeMimeTypes.APPLICATION_CEA708
.- Parameters:
isWideAspectRatio
- Whether the CEA-708 closed caption service is formatted for displays with 16:9 aspect ratio.- Returns:
- Initialization data for formats with MIME type
MimeTypes.APPLICATION_CEA708
.
-
parseCea708InitializationData
public static boolean parseCea708InitializationData(List<byte[]> initializationData)
Returns whether the CEA-708 closed caption service with the given initialization data is formatted for displays with 16:9 aspect ratio.- Parameters:
initializationData
- The initialization data to parse.- Returns:
- Whether the CEA-708 closed caption service is formatted for displays with 16:9 aspect ratio.
-
buildAvcCodecString
public static String buildAvcCodecString(int profileIdc, int constraintsFlagsAndReservedZero2Bits, int levelIdc)
Builds an RFC 6381 AVC codec string using the provided parameters.- Parameters:
profileIdc
- The encoding profile.constraintsFlagsAndReservedZero2Bits
- The constraint flags followed by the reserved zero 2 bits, all contained in the least significant byte of the integer.levelIdc
- The encoding level.- Returns:
- An RFC 6381 AVC codec string built using the provided parameters.
-
buildHevcCodecString
public static String buildHevcCodecString(int generalProfileSpace, boolean generalTierFlag, int generalProfileIdc, int generalProfileCompatibilityFlags, int[] constraintBytes, int generalLevelIdc)
Builds an RFC 6381 HEVC codec string using the provided parameters.
-
buildNalUnit
public static byte[] buildNalUnit(byte[] data, int offset, int length)
Constructs a NAL unit consisting of the NAL start code followed by the specified data.- Parameters:
data
- An array containing the data that should follow the NAL start code.offset
- The start offset intodata
.length
- The number of bytes to copy fromdata
- Returns:
- The constructed NAL unit.
-
splitNalUnits
@Nullable public static byte[][] splitNalUnits(byte[] data)
Splits an array of NAL units.If the input consists of NAL start code delimited units, then the returned array consists of the split NAL units, each of which is still prefixed with the NAL start code. For any other input, null is returned.
- Parameters:
data
- An array of data.- Returns:
- The individual NAL units, or null if the input did not consist of NAL start code delimited units.
-
-