Class VideoDecoderOutputBuffer
- java.lang.Object
-
- com.google.android.exoplayer2.decoder.Buffer
-
- com.google.android.exoplayer2.decoder.DecoderOutputBuffer
-
- com.google.android.exoplayer2.decoder.VideoDecoderOutputBuffer
-
public class VideoDecoderOutputBuffer extends DecoderOutputBuffer
Video decoder output buffer containing video frame data.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.android.exoplayer2.decoder.DecoderOutputBuffer
DecoderOutputBuffer.Owner<S extends DecoderOutputBuffer>
-
-
Field Summary
Fields Modifier and Type Field Description int
colorspace
static int
COLORSPACE_BT2020
static int
COLORSPACE_BT601
static int
COLORSPACE_BT709
static int
COLORSPACE_UNKNOWN
ByteBuffer
data
RGB buffer for RGB mode.int
decoderPrivate
Decoder private data.Format
format
The format of the input from which this output buffer was decoded.int
height
int
mode
Output mode.ByteBuffer
supplementalData
Supplemental data related to the output frame, ifBuffer.hasSupplementalData()
returns true.int
width
ByteBuffer[]
yuvPlanes
YUV planes for YUV mode.int[]
yuvStrides
-
Fields inherited from class com.google.android.exoplayer2.decoder.DecoderOutputBuffer
skippedOutputBufferCount, timeUs
-
-
Constructor Summary
Constructors Constructor Description VideoDecoderOutputBuffer(DecoderOutputBuffer.Owner<VideoDecoderOutputBuffer> owner)
Creates VideoDecoderOutputBuffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
init(long timeUs, int mode, ByteBuffer supplementalData)
Initializes the buffer.void
initForPrivateFrame(int width, int height)
Configures the buffer for the given frame dimensions when passing actual frame data viadecoderPrivate
.boolean
initForYuvFrame(int width, int height, int yStride, int uvStride, int colorspace)
Resizes the buffer based on the given stride.void
release()
Releases the output buffer for reuse.-
Methods inherited from class com.google.android.exoplayer2.decoder.Buffer
addFlag, clear, clearFlag, getFlag, hasSupplementalData, isDecodeOnly, isEndOfStream, isKeyFrame, setFlags
-
-
-
-
Field Detail
-
COLORSPACE_UNKNOWN
public static final int COLORSPACE_UNKNOWN
- See Also:
- Constant Field Values
-
COLORSPACE_BT601
public static final int COLORSPACE_BT601
- See Also:
- Constant Field Values
-
COLORSPACE_BT709
public static final int COLORSPACE_BT709
- See Also:
- Constant Field Values
-
COLORSPACE_BT2020
public static final int COLORSPACE_BT2020
- See Also:
- Constant Field Values
-
decoderPrivate
public int decoderPrivate
Decoder private data. Used from native code.
-
mode
@VideoOutputMode public int mode
Output mode.
-
data
@Nullable public ByteBuffer data
RGB buffer for RGB mode.
-
width
public int width
-
height
public int height
-
format
@Nullable public Format format
The format of the input from which this output buffer was decoded.
-
yuvPlanes
@Nullable public ByteBuffer[] yuvPlanes
YUV planes for YUV mode.
-
yuvStrides
@Nullable public int[] yuvStrides
-
colorspace
public int colorspace
-
supplementalData
@Nullable public ByteBuffer supplementalData
Supplemental data related to the output frame, ifBuffer.hasSupplementalData()
returns true. If present, the buffer is populated with supplemental data from position 0 to its limit.
-
-
Constructor Detail
-
VideoDecoderOutputBuffer
public VideoDecoderOutputBuffer(DecoderOutputBuffer.Owner<VideoDecoderOutputBuffer> owner)
Creates VideoDecoderOutputBuffer.- Parameters:
owner
- Buffer owner.
-
-
Method Detail
-
release
public void release()
Description copied from class:DecoderOutputBuffer
Releases the output buffer for reuse. Must be called when the buffer is no longer needed.- Specified by:
release
in classDecoderOutputBuffer
-
init
public void init(long timeUs, @VideoOutputMode int mode, @Nullable ByteBuffer supplementalData)
Initializes the buffer.- Parameters:
timeUs
- The presentation timestamp for the buffer, in microseconds.mode
- The output mode. One ofC.VIDEO_OUTPUT_MODE_NONE
,C.VIDEO_OUTPUT_MODE_YUV
andC.VIDEO_OUTPUT_MODE_SURFACE_YUV
.supplementalData
- Supplemental data associated with the frame, ornull
if not present. It is safe to reuse the provided buffer after this method returns.
-
initForYuvFrame
public boolean initForYuvFrame(int width, int height, int yStride, int uvStride, int colorspace)
Resizes the buffer based on the given stride. Called via JNI after decoding completes.- Returns:
- Whether the buffer was resized successfully.
-
initForPrivateFrame
public void initForPrivateFrame(int width, int height)
Configures the buffer for the given frame dimensions when passing actual frame data viadecoderPrivate
. Called via JNI after decoding completes.
-
-