Package com.google.android.exoplayer2
Class Format
- java.lang.Object
-
- com.google.android.exoplayer2.Format
-
- All Implemented Interfaces:
Bundleable
public final class Format extends Object implements Bundleable
Represents a media format.When building formats, populate all fields whose values are known and relevant to the type of format being constructed. For information about different types of format, see ExoPlayer's Supported formats page.
Fields commonly relevant to all formats
Fields relevant to container formats
containerMimeType
- If the container only contains a single media track, fields relevant to sample formats can are also be relevant and can be set to describe the sample format of that track.
- If the container only contains one track of a given type (possibly alongside tracks of other types), then fields relevant to that track type can be set to describe the properties of the track. See the sections below for video, audio and text formats.
Fields relevant to sample formats
sampleMimeType
maxInputSize
initializationData
drmInitData
subsampleOffsetUs
- Fields relevant to the sample format's track type are also relevant. See the sections below for video, audio and text formats.
Fields relevant to video formats
Fields relevant to audio formats
Fields relevant to text formats
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Format.Builder
BuildsFormat
instances.-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Bundleable
Bundleable.Creator<T extends Bundleable>
-
-
Field Summary
Fields Modifier and Type Field Description int
accessibilityChannel
The Accessibility channel, orNO_VALUE
if not known or applicable.int
averageBitrate
The average bitrate in bits per second, orNO_VALUE
if unknown or not applicable.int
bitrate
The bitrate in bits per second.int
channelCount
The number of audio channels, orNO_VALUE
if unknown or not applicable.String
codecs
Codecs of the format as described in RFC 6381, or null if unknown or not applicable.ColorInfo
colorInfo
The color metadata associated with the video, or null if not applicable.String
containerMimeType
The mime type of the container, or null if unknown or not applicable.static Bundleable.Creator<Format>
CREATOR
Object that can restoreFormat
from aBundle
.@com.google.android.exoplayer2.C.CryptoType int
cryptoType
The type of crypto that must be used to decode samples associated with this format, orC.CRYPTO_TYPE_NONE
if the content is not encrypted.DrmInitData
drmInitData
DRM initialization data if the stream is protected, or null otherwise.int
encoderDelay
The number of frames to trim from the start of the decoded audio stream, or 0 if not applicable.int
encoderPadding
The number of frames to trim from the end of the decoded audio stream, or 0 if not applicable.float
frameRate
The frame rate in frames per second, orNO_VALUE
if unknown or not applicable.int
height
The height of the video in pixels, orNO_VALUE
if unknown or not applicable.String
id
An identifier for the format, or null if unknown or not applicable.List<byte[]>
initializationData
Initialization data that must be provided to the decoder.String
label
The human readable label, or null if unknown or not applicable.String
language
The language as an IETF BCP 47 conformant tag, or null if unknown or not applicable.int
maxInputSize
The maximum size of a buffer of data (typically one sample), orNO_VALUE
if unknown or not applicable.Metadata
metadata
Metadata, or null if unknown or not applicable.static int
NO_VALUE
A value for various fields to indicate that the field's value is unknown or not applicable.static long
OFFSET_SAMPLE_RELATIVE
A value forsubsampleOffsetUs
to indicate that subsample timestamps are relative to the timestamps of their parent samples.int
pcmEncoding
TheC.PcmEncoding
for PCM audio.int
peakBitrate
The peak bitrate in bits per second, orNO_VALUE
if unknown or not applicable.float
pixelWidthHeightRatio
The width to height ratio of pixels in the video, or 1.0 if unknown or not applicable.byte[]
projectionData
The projection data for 360/VR video, or null if not applicable.@com.google.android.exoplayer2.C.RoleFlags int
roleFlags
Track role flags.int
rotationDegrees
The clockwise rotation that should be applied to the video for it to be rendered in the correct orientation, or 0 if unknown or not applicable.String
sampleMimeType
The sample mime type, or null if unknown or not applicable.int
sampleRate
The audio sampling rate in Hz, orNO_VALUE
if unknown or not applicable.@com.google.android.exoplayer2.C.SelectionFlags int
selectionFlags
Track selection flags.int
stereoMode
The stereo layout for 360/3D/VR video, orNO_VALUE
if not applicable.long
subsampleOffsetUs
For samples that contain subsamples, this is an offset that should be added to subsample timestamps.int
width
The width of the video in pixels, orNO_VALUE
if unknown or not applicable.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Format.Builder
buildUpon()
Returns aFormat.Builder
initialized with the values of this instance.Format
copyWithBitrate(int bitrate)
Deprecated.Format
copyWithCryptoType(@com.google.android.exoplayer2.C.CryptoType int cryptoType)
Returns a copy of this format with the specifiedcryptoType
.Format
copyWithDrmInitData(DrmInitData drmInitData)
Deprecated.Format
copyWithFrameRate(float frameRate)
Deprecated.Format
copyWithGaplessInfo(int encoderDelay, int encoderPadding)
Deprecated.Format
copyWithLabel(String label)
Deprecated.UsebuildUpon()
andFormat.Builder.setLabel(String)
.Format
copyWithManifestFormatInfo(Format manifestFormat)
Deprecated.Format
copyWithMaxInputSize(int maxInputSize)
Deprecated.Format
copyWithMetadata(Metadata metadata)
Deprecated.Format
copyWithSubsampleOffsetUs(long subsampleOffsetUs)
Deprecated.Format
copyWithVideoSize(int width, int height)
Deprecated.static Format
createAudioSampleFormat(String id, String sampleMimeType, String codecs, int bitrate, int maxInputSize, int channelCount, int sampleRate, int pcmEncoding, List<byte[]> initializationData, DrmInitData drmInitData, @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, String language)
Deprecated.UseFormat.Builder
.static Format
createAudioSampleFormat(String id, String sampleMimeType, String codecs, int bitrate, int maxInputSize, int channelCount, int sampleRate, List<byte[]> initializationData, DrmInitData drmInitData, @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, String language)
Deprecated.UseFormat.Builder
.static Format
createContainerFormat(String id, String label, String containerMimeType, String sampleMimeType, String codecs, int bitrate, @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @com.google.android.exoplayer2.C.RoleFlags int roleFlags, String language)
Deprecated.UseFormat.Builder
.static Format
createSampleFormat(String id, String sampleMimeType)
Deprecated.UseFormat.Builder
.static Format
createVideoSampleFormat(String id, String sampleMimeType, String codecs, int bitrate, int maxInputSize, int width, int height, float frameRate, List<byte[]> initializationData, int rotationDegrees, float pixelWidthHeightRatio, DrmInitData drmInitData)
Deprecated.UseFormat.Builder
.static Format
createVideoSampleFormat(String id, String sampleMimeType, String codecs, int bitrate, int maxInputSize, int width, int height, float frameRate, List<byte[]> initializationData, DrmInitData drmInitData)
Deprecated.UseFormat.Builder
.boolean
equals(Object obj)
int
getPixelCount()
int
hashCode()
boolean
initializationDataEquals(Format other)
Returns whether theinitializationData
s belonging to this format andother
are equal.Bundle
toBundle()
Returns aBundle
representing the information stored in this object.static String
toLogString(Format format)
Returns a prettierString
thantoString()
, intended for logging.String
toString()
Format
withManifestFormatInfo(Format manifestFormat)
-
-
-
Field Detail
-
NO_VALUE
public static final int NO_VALUE
A value for various fields to indicate that the field's value is unknown or not applicable.- See Also:
- Constant Field Values
-
OFFSET_SAMPLE_RELATIVE
public static final long OFFSET_SAMPLE_RELATIVE
A value forsubsampleOffsetUs
to indicate that subsample timestamps are relative to the timestamps of their parent samples.- See Also:
- Constant Field Values
-
id
@Nullable public final String id
An identifier for the format, or null if unknown or not applicable.
-
label
@Nullable public final String label
The human readable label, or null if unknown or not applicable.
-
language
@Nullable public final String language
The language as an IETF BCP 47 conformant tag, or null if unknown or not applicable.
-
selectionFlags
@SelectionFlags public final @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags
Track selection flags.
-
roleFlags
@RoleFlags public final @com.google.android.exoplayer2.C.RoleFlags int roleFlags
Track role flags.
-
averageBitrate
public final int averageBitrate
The average bitrate in bits per second, orNO_VALUE
if unknown or not applicable. The way in which this field is populated depends on the type of media to which the format corresponds:- DASH representations: Always
NO_VALUE
. - HLS variants: The
AVERAGE-BANDWIDTH
attribute defined on the correspondingEXT-X-STREAM-INF
tag in the master playlist, orNO_VALUE
if not present. - SmoothStreaming track elements: The
Bitrate
attribute defined on the correspondingTrackElement
in the manifest, orNO_VALUE
if not present. - Progressive container formats: Often
NO_VALUE
, but may be populated with the average bitrate of the container if known. - Sample formats: Often
NO_VALUE
, but may be populated with the average bitrate of the stream of samples with typesampleMimeType
if known. Note that ifsampleMimeType
is a compressed format (e.g.,MimeTypes.AUDIO_AAC
), then this bitrate is for the stream of still compressed samples.
- DASH representations: Always
-
peakBitrate
public final int peakBitrate
The peak bitrate in bits per second, orNO_VALUE
if unknown or not applicable. The way in which this field is populated depends on the type of media to which the format corresponds:- DASH representations: The
@bandwidth
attribute of the correspondingRepresentation
element in the manifest. - HLS variants: The
BANDWIDTH
attribute defined on the correspondingEXT-X-STREAM-INF
tag. - SmoothStreaming track elements: Always
NO_VALUE
. - Progressive container formats: Often
NO_VALUE
, but may be populated with the peak bitrate of the container if known. - Sample formats: Often
NO_VALUE
, but may be populated with the peak bitrate of the stream of samples with typesampleMimeType
if known. Note that ifsampleMimeType
is a compressed format (e.g.,MimeTypes.AUDIO_AAC
), then this bitrate is for the stream of still compressed samples.
- DASH representations: The
-
bitrate
public final int bitrate
The bitrate in bits per second. This is the peak bitrate if known, or else the average bitrate if known, or elseNO_VALUE
. Equivalent to:peakBitrate != NO_VALUE ? peakBitrate : averageBitrate
.
-
codecs
@Nullable public final String codecs
Codecs of the format as described in RFC 6381, or null if unknown or not applicable.
-
metadata
@Nullable public final Metadata metadata
Metadata, or null if unknown or not applicable.
-
containerMimeType
@Nullable public final String containerMimeType
The mime type of the container, or null if unknown or not applicable.
-
sampleMimeType
@Nullable public final String sampleMimeType
The sample mime type, or null if unknown or not applicable.
-
maxInputSize
public final int maxInputSize
The maximum size of a buffer of data (typically one sample), orNO_VALUE
if unknown or not applicable.
-
initializationData
public final List<byte[]> initializationData
Initialization data that must be provided to the decoder. Will not be null, but may be empty if initialization data is not required.
-
drmInitData
@Nullable public final DrmInitData drmInitData
DRM initialization data if the stream is protected, or null otherwise.
-
subsampleOffsetUs
public final long subsampleOffsetUs
For samples that contain subsamples, this is an offset that should be added to subsample timestamps. A value ofOFFSET_SAMPLE_RELATIVE
indicates that subsample timestamps are relative to the timestamps of their parent samples.
-
width
public final int width
The width of the video in pixels, orNO_VALUE
if unknown or not applicable.
-
height
public final int height
The height of the video in pixels, orNO_VALUE
if unknown or not applicable.
-
frameRate
public final float frameRate
The frame rate in frames per second, orNO_VALUE
if unknown or not applicable.
-
rotationDegrees
public final int rotationDegrees
The clockwise rotation that should be applied to the video for it to be rendered in the correct orientation, or 0 if unknown or not applicable. Only 0, 90, 180 and 270 are supported.
-
pixelWidthHeightRatio
public final float pixelWidthHeightRatio
The width to height ratio of pixels in the video, or 1.0 if unknown or not applicable.
-
projectionData
@Nullable public final byte[] projectionData
The projection data for 360/VR video, or null if not applicable.
-
stereoMode
@StereoMode public final int stereoMode
The stereo layout for 360/3D/VR video, orNO_VALUE
if not applicable. Valid stereo modes areC.STEREO_MODE_MONO
,C.STEREO_MODE_TOP_BOTTOM
,C.STEREO_MODE_LEFT_RIGHT
,C.STEREO_MODE_STEREO_MESH
.
-
colorInfo
@Nullable public final ColorInfo colorInfo
The color metadata associated with the video, or null if not applicable.
-
channelCount
public final int channelCount
The number of audio channels, orNO_VALUE
if unknown or not applicable.
-
sampleRate
public final int sampleRate
The audio sampling rate in Hz, orNO_VALUE
if unknown or not applicable.
-
pcmEncoding
@PcmEncoding public final int pcmEncoding
TheC.PcmEncoding
for PCM audio. Set toNO_VALUE
for other media types.
-
encoderDelay
public final int encoderDelay
The number of frames to trim from the start of the decoded audio stream, or 0 if not applicable.
-
encoderPadding
public final int encoderPadding
The number of frames to trim from the end of the decoded audio stream, or 0 if not applicable.
-
accessibilityChannel
public final int accessibilityChannel
The Accessibility channel, orNO_VALUE
if not known or applicable.
-
cryptoType
public final @com.google.android.exoplayer2.C.CryptoType int cryptoType
The type of crypto that must be used to decode samples associated with this format, orC.CRYPTO_TYPE_NONE
if the content is not encrypted. Cannot beC.CRYPTO_TYPE_NONE
ifdrmInitData
is non-null, but may beC.CRYPTO_TYPE_UNSUPPORTED
to indicate that the samples are encrypted using an unsupported crypto type.
-
CREATOR
public static final Bundleable.Creator<Format> CREATOR
Object that can restoreFormat
from aBundle
.
-
-
Method Detail
-
createVideoSampleFormat
@Deprecated public static Format createVideoSampleFormat(@Nullable String id, @Nullable String sampleMimeType, @Nullable String codecs, int bitrate, int maxInputSize, int width, int height, float frameRate, @Nullable List<byte[]> initializationData, @Nullable DrmInitData drmInitData)
Deprecated.UseFormat.Builder
.
-
createVideoSampleFormat
@Deprecated public static Format createVideoSampleFormat(@Nullable String id, @Nullable String sampleMimeType, @Nullable String codecs, int bitrate, int maxInputSize, int width, int height, float frameRate, @Nullable List<byte[]> initializationData, int rotationDegrees, float pixelWidthHeightRatio, @Nullable DrmInitData drmInitData)
Deprecated.UseFormat.Builder
.
-
createAudioSampleFormat
@Deprecated public static Format createAudioSampleFormat(@Nullable String id, @Nullable String sampleMimeType, @Nullable String codecs, int bitrate, int maxInputSize, int channelCount, int sampleRate, @Nullable List<byte[]> initializationData, @Nullable DrmInitData drmInitData, @SelectionFlags @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @Nullable String language)
Deprecated.UseFormat.Builder
.
-
createAudioSampleFormat
@Deprecated public static Format createAudioSampleFormat(@Nullable String id, @Nullable String sampleMimeType, @Nullable String codecs, int bitrate, int maxInputSize, int channelCount, int sampleRate, @PcmEncoding int pcmEncoding, @Nullable List<byte[]> initializationData, @Nullable DrmInitData drmInitData, @SelectionFlags @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @Nullable String language)
Deprecated.UseFormat.Builder
.
-
createContainerFormat
@Deprecated public static Format createContainerFormat(@Nullable String id, @Nullable String label, @Nullable String containerMimeType, @Nullable String sampleMimeType, @Nullable String codecs, int bitrate, @SelectionFlags @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @RoleFlags @com.google.android.exoplayer2.C.RoleFlags int roleFlags, @Nullable String language)
Deprecated.UseFormat.Builder
.
-
createSampleFormat
@Deprecated public static Format createSampleFormat(@Nullable String id, @Nullable String sampleMimeType)
Deprecated.UseFormat.Builder
.
-
buildUpon
public Format.Builder buildUpon()
Returns aFormat.Builder
initialized with the values of this instance.
-
copyWithMaxInputSize
@Deprecated public Format copyWithMaxInputSize(int maxInputSize)
Deprecated.
-
copyWithSubsampleOffsetUs
@Deprecated public Format copyWithSubsampleOffsetUs(long subsampleOffsetUs)
Deprecated.
-
copyWithLabel
@Deprecated public Format copyWithLabel(@Nullable String label)
Deprecated.UsebuildUpon()
andFormat.Builder.setLabel(String)
.
-
copyWithManifestFormatInfo
@Deprecated public Format copyWithManifestFormatInfo(Format manifestFormat)
Deprecated.
-
copyWithGaplessInfo
@Deprecated public Format copyWithGaplessInfo(int encoderDelay, int encoderPadding)
Deprecated.
-
copyWithFrameRate
@Deprecated public Format copyWithFrameRate(float frameRate)
Deprecated.
-
copyWithDrmInitData
@Deprecated public Format copyWithDrmInitData(@Nullable DrmInitData drmInitData)
Deprecated.
-
copyWithMetadata
@Deprecated public Format copyWithMetadata(@Nullable Metadata metadata)
Deprecated.
-
copyWithBitrate
@Deprecated public Format copyWithBitrate(int bitrate)
Deprecated.
-
copyWithVideoSize
@Deprecated public Format copyWithVideoSize(int width, int height)
Deprecated.
-
copyWithCryptoType
public Format copyWithCryptoType(@com.google.android.exoplayer2.C.CryptoType int cryptoType)
Returns a copy of this format with the specifiedcryptoType
.
-
getPixelCount
public int getPixelCount()
-
initializationDataEquals
public boolean initializationDataEquals(Format other)
Returns whether theinitializationData
s belonging to this format andother
are equal.- Parameters:
other
- The other format whoseinitializationData
is being compared.- Returns:
- Whether the
initializationData
s belonging to this format andother
are equal.
-
toLogString
public static String toLogString(@Nullable Format format)
Returns a prettierString
thantoString()
, intended for logging.
-
toBundle
public Bundle toBundle()
Description copied from interface:Bundleable
Returns aBundle
representing the information stored in this object.- Specified by:
toBundle
in interfaceBundleable
-
-