Back to Exoplayer

MediaCodecVideoRenderer (ExoPlayer library)

docs/doc/reference/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.html

latest76.0 KB
Original Source

Package com.google.android.exoplayer2.video

Class MediaCodecVideoRenderer


[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public classMediaCodecVideoRendererextends[MediaCodecRenderer](../mediacodec/MediaCodecRenderer.html "class in com.google.android.exoplayer2.mediacodec")

Deprecated. com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.

Decodes and renders video using MediaCodec.

This renderer accepts the following messages sent via ExoPlayer.createMessage(Target) on the playback thread:

Nested Class Summary

Nested Classes | Modifier and Type | Class | Description | | --- | --- | --- | | protected static class | MediaCodecVideoRenderer.CodecMaxValues | Deprecated. |

- 

Nested classes/interfaces inherited from class com.google.android.exoplayer2.mediacodec.MediaCodecRenderer

MediaCodecRenderer.DecoderInitializationException

- 

Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Renderer

Renderer.MessageType, Renderer.State, Renderer.WakeupListener

- 

Nested classes/interfaces inherited from interface com.google.android.exoplayer2.RendererCapabilities

RendererCapabilities.AdaptiveSupport, RendererCapabilities.Capabilities, RendererCapabilities.DecoderSupport, RendererCapabilities.FormatSupport, RendererCapabilities.HardwareAccelerationSupport, RendererCapabilities.Listener, RendererCapabilities.TunnelingSupport

Field Summary

- 

Fields inherited from class com.google.android.exoplayer2.mediacodec.MediaCodecRenderer

CODEC_OPERATING_RATE_UNSET, decoderCounters

- 

Fields inherited from interface com.google.android.exoplayer2.Renderer

MSG_CUSTOM_BASE, MSG_SET_AUDIO_ATTRIBUTES, MSG_SET_AUDIO_SESSION_ID, MSG_SET_AUX_EFFECT_INFO, MSG_SET_CAMERA_MOTION_LISTENER, MSG_SET_CHANGE_FRAME_RATE_STRATEGY, MSG_SET_PREFERRED_AUDIO_DEVICE, MSG_SET_SCALING_MODE, MSG_SET_SKIP_SILENCE_ENABLED, MSG_SET_VIDEO_EFFECTS, MSG_SET_VIDEO_FRAME_METADATA_LISTENER, MSG_SET_VIDEO_OUTPUT, MSG_SET_VIDEO_OUTPUT_RESOLUTION, MSG_SET_VOLUME, MSG_SET_WAKEUP_LISTENER, STATE_DISABLED, STATE_ENABLED, STATE_STARTED

- 

Fields inherited from interface com.google.android.exoplayer2.RendererCapabilities

ADAPTIVE_NOT_SEAMLESS, ADAPTIVE_NOT_SUPPORTED, ADAPTIVE_SEAMLESS, ADAPTIVE_SUPPORT_MASK, DECODER_SUPPORT_FALLBACK, DECODER_SUPPORT_FALLBACK_MIMETYPE, DECODER_SUPPORT_PRIMARY, FORMAT_EXCEEDS_CAPABILITIES, FORMAT_HANDLED, FORMAT_SUPPORT_MASK, FORMAT_UNSUPPORTED_DRM, FORMAT_UNSUPPORTED_SUBTYPE, FORMAT_UNSUPPORTED_TYPE, HARDWARE_ACCELERATION_NOT_SUPPORTED, HARDWARE_ACCELERATION_SUPPORT_MASK, HARDWARE_ACCELERATION_SUPPORTED, MODE_SUPPORT_MASK, TUNNELING_NOT_SUPPORTED, TUNNELING_SUPPORT_MASK, TUNNELING_SUPPORTED

Constructor Summary

Constructors | Constructor | Description | | --- | --- | | MediaCodecVideoRenderer​(Context context, MediaCodecAdapter.Factory codecAdapterFactory, MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, boolean enableDecoderFallback, Handler eventHandler, VideoRendererEventListener eventListener, int maxDroppedFramesToNotify) | Deprecated. | | MediaCodecVideoRenderer​(Context context, MediaCodecAdapter.Factory codecAdapterFactory, MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, boolean enableDecoderFallback, Handler eventHandler, VideoRendererEventListener eventListener, int maxDroppedFramesToNotify, float assumedMinimumCodecOperatingRate) | Deprecated.

Creates a new instance. | | MediaCodecVideoRenderer​(Context context, MediaCodecSelector mediaCodecSelector) | Deprecated. | | MediaCodecVideoRenderer​(Context context, MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs) | Deprecated. | | MediaCodecVideoRenderer​(Context context, MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, boolean enableDecoderFallback, Handler eventHandler, VideoRendererEventListener eventListener, int maxDroppedFramesToNotify) | Deprecated. | | MediaCodecVideoRenderer​(Context context, MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, Handler eventHandler, VideoRendererEventListener eventListener, int maxDroppedFramesToNotify) | Deprecated. |

Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods | Modifier and Type | Method | Description | | --- | --- | --- | | protected DecoderReuseEvaluation | canReuseCodec​(MediaCodecInfo codecInfo, Format oldFormat, Format newFormat) | Deprecated.

Evaluates whether the existing MediaCodec can be kept for a new Format, and if it can whether it requires reconfiguration. | | protected boolean | codecNeedsSetOutputSurfaceWorkaround​(String name) | Deprecated.

Returns whether the codec is known to implement MediaCodec.setOutputSurface(Surface) incorrectly. | | protected MediaCodecDecoderException | createDecoderException​(Throwable cause, MediaCodecInfo codecInfo) | Deprecated. | | protected void | dropOutputBuffer​(MediaCodecAdapter codec, int index, long presentationTimeUs) | Deprecated.

Drops the output buffer with the specified index. | | protected Pair<ColorInfo,​ColorInfo> | experimentalGetVideoFrameProcessorColorConfiguration​(ColorInfo inputColorInfo) | Deprecated.

Returns a Pair of input color and output color to configure the VideoFrameProcessor. | | static int | getCodecMaxInputSize​(MediaCodecInfo codecInfo, Format format) | Deprecated.

Returns a maximum input size for a given codec and format. | | protected MediaCodecVideoRenderer.CodecMaxValues | getCodecMaxValues​(MediaCodecInfo codecInfo, Format format, Format[] streamFormats) | Deprecated.

Returns MediaCodecVideoRenderer.CodecMaxValues suitable for configuring a codec for format in a way that will allow possible adaptation to other compatible formats in streamFormats. | | protected boolean | getCodecNeedsEosPropagation() | Deprecated.

Returns whether the codec needs the renderer to propagate the end-of-stream signal directly, rather than by using an end-of-stream buffer queued to the codec. | | protected float | getCodecOperatingRateV23​(float targetPlaybackSpeed, Format format, Format[] streamFormats) | Deprecated.

Returns the MediaFormat.KEY_OPERATING_RATE value for a given playback speed, current Format and set of possible stream formats. | | protected List<MediaCodecInfo> | getDecoderInfos​(MediaCodecSelector mediaCodecSelector, Format format, boolean requiresSecureDecoder) | Deprecated.

Returns a list of decoders that can decode media in the specified format, in priority order. | | protected static int | getMaxInputSize​(MediaCodecInfo codecInfo, Format format) | Deprecated.

Returns a maximum input buffer size for a given MediaCodec and Format. | | protected MediaCodecAdapter.Configuration | getMediaCodecConfiguration​(MediaCodecInfo codecInfo, Format format, MediaCrypto crypto, float codecOperatingRate) | Deprecated.

Returns the MediaCodecAdapter.Configuration that will be used to create and configure a MediaCodec to decode the given Format for a playback. | | protected MediaFormat | getMediaFormat​(Format format, String codecMimeType, MediaCodecVideoRenderer.CodecMaxValues codecMaxValues, float codecOperatingRate, boolean deviceNeedsNoPostProcessWorkaround, int tunnelingAudioSessionId) | Deprecated.

Returns the framework MediaFormat that should be used to configure the decoder. | | String | getName() | Deprecated.

Returns the name of this renderer, for logging and debugging purposes. | | protected Surface | getSurface() | Deprecated.

Returns the output surface. | | protected void | handleInputBufferSupplementalData​(DecoderInputBuffer buffer) | Deprecated.

Handles supplemental data associated with an input buffer. | | void | handleMessage​(@com.google.android.exoplayer2.Renderer.MessageType int messageType, Object message) | Deprecated.

Handles a message delivered to the target. | | boolean | isEnded() | Deprecated.

Whether the renderer is ready for the ExoPlayer instance to transition to Player.STATE_ENDED. | | boolean | isReady() | Deprecated.

Whether the renderer is able to immediately render media from the current position. | | protected boolean | maybeDropBuffersToKeyframe​(long positionUs, boolean treatDroppedBuffersAsSkipped) | Deprecated.

Drops frames from the current output buffer to the next keyframe at or before the playback position. | | protected void | onCodecError​(Exception codecError) | Deprecated.

Called when a codec error has occurred. | | protected void | onCodecInitialized​(String name, MediaCodecAdapter.Configuration configuration, long initializedTimestampMs, long initializationDurationMs) | Deprecated.

Called when a MediaCodec has been created and configured. | | protected void | onCodecReleased​(String name) | Deprecated.

Called when a MediaCodec has been released. | | protected void | onDisabled() | Deprecated.

Called when the renderer is disabled. | | protected void | onEnabled​(boolean joining, boolean mayRenderStartOfStream) | Deprecated.

Called when the renderer is enabled. | | protected DecoderReuseEvaluation | onInputFormatChanged​(FormatHolder formatHolder) | Deprecated.

Called when a new Format is read from the upstream MediaPeriod. | | protected void | onOutputFormatChanged​(Format format, MediaFormat mediaFormat) | Deprecated.

Called when one of the output formats changes. | | protected void | onPositionReset​(long positionUs, boolean joining) | Deprecated.

Called when the position is reset. | | protected void | onProcessedOutputBuffer​(long presentationTimeUs) | Deprecated.

Called when an output buffer is successfully processed. | | protected void | onProcessedStreamChange() | Deprecated.

Called after the last output buffer before a stream change has been processed. | | protected void | onProcessedTunneledBuffer​(long presentationTimeUs) | Deprecated.

Called when a buffer was processed in tunneling mode. | | protected void | onQueueInputBuffer​(DecoderInputBuffer buffer) | Deprecated.

Called immediately before an input buffer is queued into the codec. | | protected void | onReadyToInitializeCodec​(Format format) | Deprecated.

Called when ready to initialize the MediaCodecAdapter. | | protected void | onReset() | Deprecated.

Called when the renderer is reset. | | protected void | onStarted() | Deprecated.

Called when the renderer is started. | | protected void | onStopped() | Deprecated.

Called when the renderer is stopped. | | protected boolean | processOutputBuffer​(long positionUs, long elapsedRealtimeUs, MediaCodecAdapter codec, ByteBuffer buffer, int bufferIndex, int bufferFlags, int sampleCount, long bufferPresentationTimeUs, boolean isDecodeOnlyBuffer, boolean isLastBuffer, Format format) | Deprecated.

Processes an output media buffer. | | void | render​(long positionUs, long elapsedRealtimeUs) | Deprecated.

Incrementally renders the SampleStream. | | protected void | renderOutputBuffer​(MediaCodecAdapter codec, int index, long presentationTimeUs) | Deprecated.

Renders the output buffer with the specified index. | | protected void | renderOutputBufferV21​(MediaCodecAdapter codec, int index, long presentationTimeUs, long releaseTimeNs) | Deprecated.

Renders the output buffer with the specified index. | | protected void | resetCodecStateForFlush() | Deprecated.

Resets the renderer internal state after a codec flush. | | protected void | setOutputSurfaceV23​(MediaCodecAdapter codec, Surface surface) | Deprecated. | | void | setPlaybackSpeed​(float currentPlaybackSpeed, float targetPlaybackSpeed) | Deprecated.

Indicates the playback speed to this renderer. | | protected boolean | shouldDropBuffersToKeyframe​(long earlyUs, long elapsedRealtimeUs, boolean isLastBuffer) | Deprecated.

Returns whether to drop all buffers from the buffer being processed to the keyframe at or after the current playback position, if possible. | | protected boolean | shouldDropOutputBuffer​(long earlyUs, long elapsedRealtimeUs, boolean isLastBuffer) | Deprecated.

Returns whether the buffer being processed should be dropped. | | protected boolean | shouldForceRenderOutputBuffer​(long earlyUs, long elapsedSinceLastRenderUs) | Deprecated.

Returns whether to force rendering an output buffer. | | protected boolean | shouldInitCodec​(MediaCodecInfo codecInfo) | Deprecated. | | protected void | skipOutputBuffer​(MediaCodecAdapter codec, int index, long presentationTimeUs) | Deprecated.

Skips the output buffer with the specified index. | | protected @com.google.android.exoplayer2.RendererCapabilities.Capabilities int | supportsFormat​(MediaCodecSelector mediaCodecSelector, Format format) | Deprecated.

Returns the RendererCapabilities.Capabilities for the given Format. | | protected void | updateDroppedBufferCounters​(int droppedInputBufferCount, int droppedDecoderBufferCount) | Deprecated.

Updates local counters and MediaCodecRenderer.decoderCounters to reflect that buffers were dropped. | | protected void | updateVideoFrameProcessingOffsetCounters​(long processingOffsetUs) | Deprecated.

Updates local counters and DecoderCounters with a new video frame processing offset. |

- 

Methods inherited from class com.google.android.exoplayer2.mediacodec.MediaCodecRenderer

flushOrReinitializeCodec, flushOrReleaseCodec, getCodec, getCodecInfo, getCodecOperatingRate, getCodecOutputMediaFormat, getOutputStreamOffsetUs, getPlaybackSpeed, isBypassPossible, maybeInitCodecOrBypass, onOutputStreamOffsetUsChanged, onStreamChanged, releaseCodec, renderToEndOfStream, resetCodecStateForRelease, setPendingOutputEndOfStream, setPendingPlaybackException, setRenderTimeLimitMs, shouldReinitCodec, shouldUseBypass, supportsFormat, supportsFormatDrm, supportsMixedMimeTypeAdaptation, updateCodecOperatingRate, updateOutputFormatForTime

- 

Methods inherited from class com.google.android.exoplayer2.BaseRenderer

clearListener, createRendererException, createRendererException, disable, enable, getCapabilities, getConfiguration, getFormatHolder, getIndex, getLastResetPositionUs, getMediaClock, getPlayerId, getReadingPositionUs, getState, getStream, getStreamFormats, getTrackType, hasReadStreamToEnd, init, isCurrentStreamFinal, isSourceReady, maybeThrowStreamError, onRelease, onRendererCapabilitiesChanged, readSource, release, replaceStream, reset, resetPosition, setCurrentStreamFinal, setListener, skipSource, start, stop

- 

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector)

Deprecated. Parameters:context - A context.mediaCodecSelector - A decoder selector.

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,
                               long allowedJoiningTimeMs)

Deprecated. Parameters:context - A context.mediaCodecSelector - A decoder selector.allowedJoiningTimeMs - The maximum duration in milliseconds for which this video renderer can attempt to seamlessly join an ongoing playback.

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,
                               long allowedJoiningTimeMs,
                               @Nullable[Handler](https://developer.android.com/reference/android/os/Handler.html "class or interface in android.os")eventHandler,
                               @Nullable[VideoRendererEventListener](VideoRendererEventListener.html "interface in com.google.android.exoplayer2.video")eventListener,
                               int maxDroppedFramesToNotify)

Deprecated. Parameters:context - A context.mediaCodecSelector - A decoder selector.allowedJoiningTimeMs - The maximum duration in milliseconds for which this video renderer can attempt to seamlessly join an ongoing playback.eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.eventListener - A listener of events. May be null if delivery of events is not required.maxDroppedFramesToNotify - The maximum number of frames that can be dropped between invocations of VideoRendererEventListener.onDroppedFrames(int, long).

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,
                               long allowedJoiningTimeMs,
                               boolean enableDecoderFallback,
                               @Nullable[Handler](https://developer.android.com/reference/android/os/Handler.html "class or interface in android.os")eventHandler,
                               @Nullable[VideoRendererEventListener](VideoRendererEventListener.html "interface in com.google.android.exoplayer2.video")eventListener,
                               int maxDroppedFramesToNotify)

Deprecated. Parameters:context - A context.mediaCodecSelector - A decoder selector.allowedJoiningTimeMs - The maximum duration in milliseconds for which this video renderer can attempt to seamlessly join an ongoing playback.enableDecoderFallback - Whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is slower/less efficient than the primary decoder.eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.eventListener - A listener of events. May be null if delivery of events is not required.maxDroppedFramesToNotify - The maximum number of frames that can be dropped between invocations of VideoRendererEventListener.onDroppedFrames(int, long).

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecAdapter.Factory](../mediacodec/MediaCodecAdapter.Factory.html "interface in com.google.android.exoplayer2.mediacodec")codecAdapterFactory,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,
                               long allowedJoiningTimeMs,
                               boolean enableDecoderFallback,
                               @Nullable[Handler](https://developer.android.com/reference/android/os/Handler.html "class or interface in android.os")eventHandler,
                               @Nullable[VideoRendererEventListener](VideoRendererEventListener.html "interface in com.google.android.exoplayer2.video")eventListener,
                               int maxDroppedFramesToNotify)

Deprecated. Parameters:context - A context.codecAdapterFactory - The MediaCodecAdapter.Factory used to create MediaCodecAdapter instances.mediaCodecSelector - A decoder selector.allowedJoiningTimeMs - The maximum duration in milliseconds for which this video renderer can attempt to seamlessly join an ongoing playback.enableDecoderFallback - Whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is slower/less efficient than the primary decoder.eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.eventListener - A listener of events. May be null if delivery of events is not required.maxDroppedFramesToNotify - The maximum number of frames that can be dropped between invocations of VideoRendererEventListener.onDroppedFrames(int, long).

- 

MediaCodecVideoRenderer

public MediaCodecVideoRenderer​([Context](https://developer.android.com/reference/android/content/Context.html "class or interface in android.content")context,[MediaCodecAdapter.Factory](../mediacodec/MediaCodecAdapter.Factory.html "interface in com.google.android.exoplayer2.mediacodec")codecAdapterFactory,[MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,
                               long allowedJoiningTimeMs,
                               boolean enableDecoderFallback,
                               @Nullable[Handler](https://developer.android.com/reference/android/os/Handler.html "class or interface in android.os")eventHandler,
                               @Nullable[VideoRendererEventListener](VideoRendererEventListener.html "interface in com.google.android.exoplayer2.video")eventListener,
                               int maxDroppedFramesToNotify,
                               float assumedMinimumCodecOperatingRate)

Deprecated.

Creates a new instance. Parameters:context - A context.codecAdapterFactory - The MediaCodecAdapter.Factory used to create MediaCodecAdapter instances.mediaCodecSelector - A decoder selector.allowedJoiningTimeMs - The maximum duration in milliseconds for which this video renderer can attempt to seamlessly join an ongoing playback.enableDecoderFallback - Whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is slower/less efficient than the primary decoder.eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.eventListener - A listener of events. May be null if delivery of events is not required.maxDroppedFramesToNotify - The maximum number of frames that can be dropped between invocations of VideoRendererEventListener.onDroppedFrames(int, long).assumedMinimumCodecOperatingRate - A codec operating rate that all codecs instantiated by this renderer are assumed to meet implicitly (i.e. without the operating rate being set explicitly using MediaFormat.KEY_OPERATING_RATE).

Method Detail

- 

getName

public[String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")getName()

Deprecated.

Description copied from interface: Renderer

Returns the name of this renderer, for logging and debugging purposes. Should typically be the renderer's (un-obfuscated) class name. Returns:The name of this renderer.

- 

supportsFormat

protected @com.google.android.exoplayer2.RendererCapabilities.Capabilities int supportsFormat​([MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,[Format](../Format.html "class in com.google.android.exoplayer2")format)
                                                                                       throws[MediaCodecUtil.DecoderQueryException](../mediacodec/MediaCodecUtil.DecoderQueryException.html "class in com.google.android.exoplayer2.mediacodec")

Deprecated.

Description copied from class: MediaCodecRenderer

Returns the RendererCapabilities.Capabilities for the given Format. Specified by:supportsFormat in class MediaCodecRendererParameters:mediaCodecSelector - The decoder selector.format - The Format.Returns:The RendererCapabilities.Capabilities for this Format.Throws:MediaCodecUtil.DecoderQueryException - If there was an error querying decoders.

- 

getDecoderInfos

protected[List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")> getDecoderInfos​([MediaCodecSelector](../mediacodec/MediaCodecSelector.html "interface in com.google.android.exoplayer2.mediacodec")mediaCodecSelector,[Format](../Format.html "class in com.google.android.exoplayer2")format,
                                               boolean requiresSecureDecoder)
                                        throws[MediaCodecUtil.DecoderQueryException](../mediacodec/MediaCodecUtil.DecoderQueryException.html "class in com.google.android.exoplayer2.mediacodec")

Deprecated.

Description copied from class: MediaCodecRenderer

Returns a list of decoders that can decode media in the specified format, in priority order. Specified by:getDecoderInfos in class MediaCodecRendererParameters:mediaCodecSelector - The decoder selector.format - The Format for which a decoder is required.requiresSecureDecoder - Whether a secure decoder is required.Returns:A list of MediaCodecInfos corresponding to decoders. May be empty.Throws:MediaCodecUtil.DecoderQueryException - Thrown if there was an error querying decoders.

- 

onEnabled

protected void onEnabled​(boolean joining,
                         boolean mayRenderStartOfStream)
                  throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: BaseRenderer

Called when the renderer is enabled.

The default implementation is a no-op.

Overrides:onEnabled in class MediaCodecRendererParameters:joining - Whether this renderer is being enabled to join an ongoing playback.mayRenderStartOfStream - Whether this renderer is allowed to render the start of the stream even if the state is not Renderer.STATE_STARTED yet.Throws:ExoPlaybackException - If an error occurs.

- 

onPositionReset

protected void onPositionReset​(long positionUs,
                               boolean joining)
                        throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: BaseRenderer

Called when the position is reset. This occurs when the renderer is enabled after BaseRenderer.onStreamChanged(Format[], long, long) has been called, and also when a position discontinuity is encountered.

After a position reset, the renderer's SampleStream is guaranteed to provide samples starting from a key frame.

The default implementation is a no-op.

Overrides:onPositionReset in class MediaCodecRendererParameters:positionUs - The new playback position in microseconds.joining - Whether this renderer is being enabled to join an ongoing playback.Throws:ExoPlaybackException - If an error occurs.

- 

isEnded

public boolean isEnded()

Deprecated.

Description copied from interface: Renderer

Whether the renderer is ready for the ExoPlayer instance to transition to Player.STATE_ENDED. The player will make this transition as soon as true is returned by all of its renderers.

This method may be called when the renderer is in the following states: Renderer.STATE_ENABLED, Renderer.STATE_STARTED.

Specified by:isEnded in interface RendererOverrides:isEnded in class MediaCodecRendererReturns:Whether the renderer is ready for the player to transition to the ended state.

- 

isReady

public boolean isReady()

Deprecated.

Description copied from interface: Renderer

Whether the renderer is able to immediately render media from the current position.

If the renderer is in the Renderer.STATE_STARTED state then returning true indicates that the renderer has everything that it needs to continue playback. Returning false indicates that the player should pause until the renderer is ready.

If the renderer is in the Renderer.STATE_ENABLED state then returning true indicates that the renderer is ready for playback to be started. Returning false indicates that it is not.

This method may be called when the renderer is in the following states: Renderer.STATE_ENABLED, Renderer.STATE_STARTED.

Specified by:isReady in interface RendererOverrides:isReady in class MediaCodecRendererReturns:Whether the renderer is ready to render media.

- 

onStarted

protected void onStarted()

Deprecated.

Description copied from class: BaseRenderer

Called when the renderer is started.

The default implementation is a no-op.

Overrides:onStarted in class MediaCodecRenderer

- 

onStopped

protected void onStopped()

Deprecated.

Description copied from class: BaseRenderer

Called when the renderer is stopped.

The default implementation is a no-op.

Overrides:onStopped in class MediaCodecRenderer

- 

onDisabled

protected void onDisabled()

Deprecated.

Description copied from class: BaseRenderer

Called when the renderer is disabled.

The default implementation is a no-op.

Overrides:onDisabled in class MediaCodecRenderer

- 

onReset

protected void onReset()

Deprecated.

Description copied from class: BaseRenderer

Called when the renderer is reset.

The default implementation is a no-op.

Overrides:onReset in class MediaCodecRenderer

- 

handleMessage

public void handleMessage​(@com.google.android.exoplayer2.Renderer.MessageType int messageType,
                          @Nullable[Object](https://developer.android.com/reference/java/lang/Object.html "class or interface in java.lang")message)
                   throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from interface: PlayerMessage.Target

Handles a message delivered to the target. Specified by:handleMessage in interface PlayerMessage.TargetOverrides:handleMessage in class BaseRendererParameters:messageType - The message type.message - The message payload.Throws:ExoPlaybackException - If an error occurred whilst handling the message. Should only be thrown by targets that handle messages on the playback thread.

- 

shouldInitCodec

protected boolean shouldInitCodec​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo)

Deprecated. Overrides:shouldInitCodec in class MediaCodecRenderer

- 

getCodecNeedsEosPropagation

protected boolean getCodecNeedsEosPropagation()

Deprecated.

Description copied from class: MediaCodecRenderer

Returns whether the codec needs the renderer to propagate the end-of-stream signal directly, rather than by using an end-of-stream buffer queued to the codec. Overrides:getCodecNeedsEosPropagation in class MediaCodecRenderer

- 

getMediaCodecConfiguration

protected[MediaCodecAdapter.Configuration](../mediacodec/MediaCodecAdapter.Configuration.html "class in com.google.android.exoplayer2.mediacodec")getMediaCodecConfiguration​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo,[Format](../Format.html "class in com.google.android.exoplayer2")format,
                                                                     @Nullable[MediaCrypto](https://developer.android.com/reference/android/media/MediaCrypto.html "class or interface in android.media")crypto,
                                                                     float codecOperatingRate)

Deprecated.

Description copied from class: MediaCodecRenderer

Returns the MediaCodecAdapter.Configuration that will be used to create and configure a MediaCodec to decode the given Format for a playback. Specified by:getMediaCodecConfiguration in class MediaCodecRendererParameters:codecInfo - Information about the MediaCodec being configured.format - The Format for which the codec is being configured.crypto - For drm protected playbacks, a MediaCrypto to use for decryption.codecOperatingRate - The codec operating rate, or MediaCodecRenderer.CODEC_OPERATING_RATE_UNSET if no codec operating rate should be set.Returns:The parameters needed to call MediaCodec.configure(android.media.MediaFormat, android.view.Surface, android.media.MediaCrypto, int).

- 

canReuseCodec

protected[DecoderReuseEvaluation](../decoder/DecoderReuseEvaluation.html "class in com.google.android.exoplayer2.decoder")canReuseCodec​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo,[Format](../Format.html "class in com.google.android.exoplayer2")oldFormat,[Format](../Format.html "class in com.google.android.exoplayer2")newFormat)

Deprecated.

Description copied from class: MediaCodecRenderer

Evaluates whether the existing MediaCodec can be kept for a new Format, and if it can whether it requires reconfiguration.

The default implementation does not allow decoder reuse.

Overrides:canReuseCodec in class MediaCodecRendererParameters:codecInfo - A MediaCodecInfo describing the decoder.oldFormat - The Format for which the existing instance is configured.newFormat - The new Format.Returns:The result of the evaluation.

- 

render

@CallSuper
public void render​(long positionUs,
                   long elapsedRealtimeUs)
            throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from interface: Renderer

Incrementally renders the SampleStream.

If the renderer is in the Renderer.STATE_ENABLED state then each call to this method will do work toward being ready to render the SampleStream when the renderer is started. If the renderer is in the Renderer.STATE_STARTED state then calls to this method will render the SampleStream in sync with the specified media positions.

The renderer may also render the very start of the media at the current position (e.g. the first frame of a video stream) while still in the Renderer.STATE_ENABLED state, unless it's the initial start of the media after calling Renderer.enable(RendererConfiguration, Format[], SampleStream, long, boolean, boolean, long, long) with mayRenderStartOfStream set to false.

This method should return quickly, and should not block if the renderer is unable to make useful progress.

This method may be called when the renderer is in the following states: Renderer.STATE_ENABLED, Renderer.STATE_STARTED.

Specified by:render in interface RendererOverrides:render in class MediaCodecRendererParameters:positionUs - The current media time in microseconds, measured at the start of the current iteration of the rendering loop.elapsedRealtimeUs - SystemClock.elapsedRealtime() in microseconds, measured at the start of the current iteration of the rendering loop.Throws:ExoPlaybackException - If an error occurs.

- 

resetCodecStateForFlush

@CallSuper
protected void resetCodecStateForFlush()

Deprecated.

Description copied from class: MediaCodecRenderer

Resets the renderer internal state after a codec flush. Overrides:resetCodecStateForFlush in class MediaCodecRenderer

- 

setPlaybackSpeed

public void setPlaybackSpeed​(float currentPlaybackSpeed,
                             float targetPlaybackSpeed)
                      throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from interface: Renderer

Indicates the playback speed to this renderer.

The default implementation is a no-op.

Specified by:setPlaybackSpeed in interface RendererOverrides:setPlaybackSpeed in class MediaCodecRendererParameters:currentPlaybackSpeed - The factor by which playback is currently sped up.targetPlaybackSpeed - The target factor by which playback should be sped up. This may be different from currentPlaybackSpeed, for example, if the speed is temporarily adjusted for live playback.Throws:ExoPlaybackException - If an error occurs handling the playback speed.

- 

getCodecMaxInputSize

public static int getCodecMaxInputSize​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo,[Format](../Format.html "class in com.google.android.exoplayer2")format)

Deprecated.

Returns a maximum input size for a given codec and format. Parameters:codecInfo - Information about the MediaCodec being configured.format - The format.Returns:A maximum input size in bytes, or Format.NO_VALUE if a maximum could not be determined.

- 

getCodecOperatingRateV23

protected float getCodecOperatingRateV23​(float targetPlaybackSpeed,[Format](../Format.html "class in com.google.android.exoplayer2")format,[Format](../Format.html "class in com.google.android.exoplayer2")[] streamFormats)

Deprecated.

Description copied from class: MediaCodecRenderer

Returns the MediaFormat.KEY_OPERATING_RATE value for a given playback speed, current Format and set of possible stream formats.

The default implementation returns MediaCodecRenderer.CODEC_OPERATING_RATE_UNSET.

Overrides:getCodecOperatingRateV23 in class MediaCodecRendererParameters:targetPlaybackSpeed - The target factor by which playback should be sped up. This may be different from the current playback speed, for example, if the speed is temporarily adjusted for live playback.format - The Format for which the codec is being configured.streamFormats - The possible stream formats.Returns:The codec operating rate, or MediaCodecRenderer.CODEC_OPERATING_RATE_UNSET if no codec operating rate should be set.

- 

onReadyToInitializeCodec

@CallSuper
protected void onReadyToInitializeCodec​([Format](../Format.html "class in com.google.android.exoplayer2")format)
                                 throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: MediaCodecRenderer

Called when ready to initialize the MediaCodecAdapter.

This method is called just before the renderer obtains the configuration for the MediaCodecAdapter and creates the adapter via the passed in MediaCodecAdapter.Factory.

The default implementation is a no-op.

Overrides:onReadyToInitializeCodec in class MediaCodecRendererParameters:format - The Format for which the codec is being configured.Throws:ExoPlaybackException - If an error occurs preparing for initializing the codec.

- 

onCodecInitialized

protected void onCodecInitialized​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")name,[MediaCodecAdapter.Configuration](../mediacodec/MediaCodecAdapter.Configuration.html "class in com.google.android.exoplayer2.mediacodec")configuration,
                                  long initializedTimestampMs,
                                  long initializationDurationMs)

Deprecated.

Description copied from class: MediaCodecRenderer

Called when a MediaCodec has been created and configured.

The default implementation is a no-op.

Overrides:onCodecInitialized in class MediaCodecRendererParameters:name - The name of the codec that was initialized.configuration - The MediaCodecAdapter.Configuration used to configure the codec.initializedTimestampMs - SystemClock.elapsedRealtime() when initialization finished.initializationDurationMs - The time taken to initialize the codec in milliseconds.

- 

onCodecReleased

protected void onCodecReleased​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")name)

Deprecated.

Description copied from class: MediaCodecRenderer

Called when a MediaCodec has been released.

The default implementation is a no-op.

Overrides:onCodecReleased in class MediaCodecRendererParameters:name - The name of the codec that was released.

- 

onCodecError

protected void onCodecError​([Exception](https://developer.android.com/reference/java/lang/Exception.html "class or interface in java.lang")codecError)

Deprecated.

Description copied from class: MediaCodecRenderer

Called when a codec error has occurred.

The default implementation is a no-op.

Overrides:onCodecError in class MediaCodecRendererParameters:codecError - The error.

- 

onInputFormatChanged

@Nullable
protected[DecoderReuseEvaluation](../decoder/DecoderReuseEvaluation.html "class in com.google.android.exoplayer2.decoder")onInputFormatChanged​([FormatHolder](../FormatHolder.html "class in com.google.android.exoplayer2")formatHolder)
                                               throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: MediaCodecRenderer

Called when a new Format is read from the upstream MediaPeriod. Overrides:onInputFormatChanged in class MediaCodecRendererParameters:formatHolder - A FormatHolder that holds the new Format.Returns:The result of the evaluation to determine whether the existing decoder instance can be reused for the new format, or null if the renderer did not have a decoder.Throws:ExoPlaybackException - If an error occurs re-initializing the MediaCodec.

- 

onQueueInputBuffer

@CallSuper
protected void onQueueInputBuffer​([DecoderInputBuffer](../decoder/DecoderInputBuffer.html "class in com.google.android.exoplayer2.decoder")buffer)
                           throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Called immediately before an input buffer is queued into the codec.

In tunneling mode for pre Marshmallow, the buffer is treated as if immediately output.

Overrides:onQueueInputBuffer in class MediaCodecRendererParameters:buffer - The buffer to be queued.Throws:ExoPlaybackException - Thrown if an error occurs handling the input buffer.

- 

onOutputFormatChanged

protected void onOutputFormatChanged​([Format](../Format.html "class in com.google.android.exoplayer2")format,
                                     @Nullable[MediaFormat](https://developer.android.com/reference/android/media/MediaFormat.html "class or interface in android.media")mediaFormat)

Deprecated.

Description copied from class: MediaCodecRenderer

Called when one of the output formats changes.

The default implementation is a no-op.

Overrides:onOutputFormatChanged in class MediaCodecRendererParameters:format - The input Format to which future output now corresponds. If the renderer is in bypass mode, this is also the output format.mediaFormat - The codec output MediaFormat, or null if the renderer is in bypass mode.

- 

handleInputBufferSupplementalData

protected void handleInputBufferSupplementalData​([DecoderInputBuffer](../decoder/DecoderInputBuffer.html "class in com.google.android.exoplayer2.decoder")buffer)
                                          throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: MediaCodecRenderer

Handles supplemental data associated with an input buffer.

The default implementation is a no-op.

Overrides:handleInputBufferSupplementalData in class MediaCodecRendererParameters:buffer - The input buffer that is about to be queued.Throws:ExoPlaybackException - Thrown if an error occurs handling supplemental data.

- 

processOutputBuffer

protected boolean processOutputBuffer​(long positionUs,
                                      long elapsedRealtimeUs,
                                      @Nullable[MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,
                                      @Nullable[ByteBuffer](https://developer.android.com/reference/java/nio/ByteBuffer.html "class or interface in java.nio")buffer,
                                      int bufferIndex,
                                      int bufferFlags,
                                      int sampleCount,
                                      long bufferPresentationTimeUs,
                                      boolean isDecodeOnlyBuffer,
                                      boolean isLastBuffer,[Format](../Format.html "class in com.google.android.exoplayer2")format)
                               throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Description copied from class: MediaCodecRenderer

Processes an output media buffer.

When a new ByteBuffer is passed to this method its position and limit delineate the data to be processed. The return value indicates whether the buffer was processed in full. If true is returned then the next call to this method will receive a new buffer to be processed. If false is returned then the same buffer will be passed to the next call. An implementation of this method is free to modify the buffer and can assume that the buffer will not be externally modified between successive calls. Hence an implementation can, for example, modify the buffer's position to keep track of how much of the data it has processed.

Note that the first call to this method following a call to MediaCodecRenderer.onPositionReset(long, boolean) will always receive a new ByteBuffer to be processed.

Specified by:processOutputBuffer in class MediaCodecRendererParameters:positionUs - The current media time in microseconds, measured at the start of the current iteration of the rendering loop.elapsedRealtimeUs - SystemClock.elapsedRealtime() in microseconds, measured at the start of the current iteration of the rendering loop.codec - The MediaCodecAdapter instance, or null in bypass mode were no codec is used.buffer - The output buffer to process, or null if the buffer data is not made available to the application layer (see MediaCodec.getOutputBuffer(int)). This buffer can only be null for video data. Note that the buffer data can still be rendered in this case by using the bufferIndex.bufferIndex - The index of the output buffer.bufferFlags - The flags attached to the output buffer.sampleCount - The number of samples extracted from the sample queue in the buffer. This allows handling multiple samples as a batch for efficiency.bufferPresentationTimeUs - The presentation time of the output buffer in microseconds.isDecodeOnlyBuffer - Whether the buffer was marked with C.BUFFER_FLAG_DECODE_ONLY by the source.isLastBuffer - Whether the buffer is known to contain the last sample of the current stream. This flag is set on a best effort basis, and any logic relying on it should degrade gracefully to handle cases where it's not set.format - The Format associated with the buffer.Returns:Whether the output buffer was fully processed (for example, rendered or skipped).Throws:ExoPlaybackException - If an error occurs processing the output buffer.

- 

onProcessedTunneledBuffer

protected void onProcessedTunneledBuffer​(long presentationTimeUs)
                                  throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Called when a buffer was processed in tunneling mode. Throws:ExoPlaybackException

- 

onProcessedOutputBuffer

@CallSuper
protected void onProcessedOutputBuffer​(long presentationTimeUs)

Deprecated.

Description copied from class: MediaCodecRenderer

Called when an output buffer is successfully processed. Overrides:onProcessedOutputBuffer in class MediaCodecRendererParameters:presentationTimeUs - The timestamp associated with the output buffer.

- 

onProcessedStreamChange

protected void onProcessedStreamChange()

Deprecated.

Description copied from class: MediaCodecRenderer

Called after the last output buffer before a stream change has been processed. Overrides:onProcessedStreamChange in class MediaCodecRenderer

- 

shouldDropOutputBuffer

protected boolean shouldDropOutputBuffer​(long earlyUs,
                                         long elapsedRealtimeUs,
                                         boolean isLastBuffer)

Deprecated.

Returns whether the buffer being processed should be dropped. Parameters:earlyUs - The time until the buffer should be presented in microseconds. A negative value indicates that the buffer is late.elapsedRealtimeUs - SystemClock.elapsedRealtime() in microseconds, measured at the start of the current iteration of the rendering loop.isLastBuffer - Whether the buffer is the last buffer in the current stream.

- 

shouldDropBuffersToKeyframe

protected boolean shouldDropBuffersToKeyframe​(long earlyUs,
                                              long elapsedRealtimeUs,
                                              boolean isLastBuffer)

Deprecated.

Returns whether to drop all buffers from the buffer being processed to the keyframe at or after the current playback position, if possible. Parameters:earlyUs - The time until the current buffer should be presented in microseconds. A negative value indicates that the buffer is late.elapsedRealtimeUs - SystemClock.elapsedRealtime() in microseconds, measured at the start of the current iteration of the rendering loop.isLastBuffer - Whether the buffer is the last buffer in the current stream.

- 

shouldForceRenderOutputBuffer

protected boolean shouldForceRenderOutputBuffer​(long earlyUs,
                                                long elapsedSinceLastRenderUs)

Deprecated.

Returns whether to force rendering an output buffer. Parameters:earlyUs - The time until the current buffer should be presented in microseconds. A negative value indicates that the buffer is late.elapsedSinceLastRenderUs - The elapsed time since the last output buffer was rendered, in microseconds.Returns:Returns whether to force rendering an output buffer.

- 

skipOutputBuffer

protected void skipOutputBuffer​([MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,
                                int index,
                                long presentationTimeUs)

Deprecated.

Skips the output buffer with the specified index. Parameters:codec - The codec that owns the output buffer.index - The index of the output buffer to skip.presentationTimeUs - The presentation time of the output buffer, in microseconds.

- 

dropOutputBuffer

protected void dropOutputBuffer​([MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,
                                int index,
                                long presentationTimeUs)

Deprecated.

Drops the output buffer with the specified index. Parameters:codec - The codec that owns the output buffer.index - The index of the output buffer to drop.presentationTimeUs - The presentation time of the output buffer, in microseconds.

- 

maybeDropBuffersToKeyframe

protected boolean maybeDropBuffersToKeyframe​(long positionUs,
                                             boolean treatDroppedBuffersAsSkipped)
                                      throws[ExoPlaybackException](../ExoPlaybackException.html "class in com.google.android.exoplayer2")

Deprecated.

Drops frames from the current output buffer to the next keyframe at or before the playback position. If no such keyframe exists, as the playback position is inside the same group of pictures as the buffer being processed, returns false. Returns true otherwise. Parameters:positionUs - The current playback position, in microseconds.treatDroppedBuffersAsSkipped - Whether dropped buffers should be treated as intentionally skipped.Returns:Whether any buffers were dropped.Throws:ExoPlaybackException - If an error occurs flushing the codec.

- 

updateDroppedBufferCounters

protected void updateDroppedBufferCounters​(int droppedInputBufferCount,
                                           int droppedDecoderBufferCount)

Deprecated.

Updates local counters and MediaCodecRenderer.decoderCounters to reflect that buffers were dropped. Parameters:droppedInputBufferCount - The number of buffers dropped from the source before being passed to the decoder.droppedDecoderBufferCount - The number of buffers dropped after being passed to the decoder.

- 

updateVideoFrameProcessingOffsetCounters

protected void updateVideoFrameProcessingOffsetCounters​(long processingOffsetUs)

Deprecated.

Updates local counters and DecoderCounters with a new video frame processing offset. Parameters:processingOffsetUs - The video frame processing offset.

- 

experimentalGetVideoFrameProcessorColorConfiguration

protected[Pair](https://developer.android.com/reference/android/util/Pair.html "class or interface in android.util")<[ColorInfo](ColorInfo.html "class in com.google.android.exoplayer2.video"),​[ColorInfo](ColorInfo.html "class in com.google.android.exoplayer2.video")> experimentalGetVideoFrameProcessorColorConfiguration​(@Nullable[ColorInfo](ColorInfo.html "class in com.google.android.exoplayer2.video")inputColorInfo)

Deprecated.

Returns a Pair of input color and output color to configure the VideoFrameProcessor.

- 

renderOutputBuffer

protected void renderOutputBuffer​([MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,
                                  int index,
                                  long presentationTimeUs)

Deprecated.

Renders the output buffer with the specified index. This method is only called if the platform API version of the device is less than 21.

When video frame processing is MediaCodecVideoRenderer.VideoFrameProcessorManager.isEnabled() enabled}, this method renders to MediaCodecVideoRenderer.VideoFrameProcessorManager's input surface.

Parameters:codec - The codec that owns the output buffer.index - The index of the output buffer to drop.presentationTimeUs - The presentation time of the output buffer, in microseconds.

- 

renderOutputBufferV21

@RequiresApi(21)
protected void renderOutputBufferV21​([MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,
                                     int index,
                                     long presentationTimeUs,
                                     long releaseTimeNs)

Deprecated.

Renders the output buffer with the specified index. This method is only called if the platform API version of the device is 21 or later.

When video frame processing is MediaCodecVideoRenderer.VideoFrameProcessorManager.isEnabled() enabled}, this method renders to MediaCodecVideoRenderer.VideoFrameProcessorManager's input surface.

Parameters:codec - The codec that owns the output buffer.index - The index of the output buffer to drop.presentationTimeUs - The presentation time of the output buffer, in microseconds.releaseTimeNs - The wallclock time at which the frame should be displayed, in nanoseconds.

- 

setOutputSurfaceV23

@RequiresApi(23)
protected void setOutputSurfaceV23​([MediaCodecAdapter](../mediacodec/MediaCodecAdapter.html "interface in com.google.android.exoplayer2.mediacodec")codec,[Surface](https://developer.android.com/reference/android/view/Surface.html "class or interface in android.view")surface)

Deprecated.

- 

getMediaFormat

protected[MediaFormat](https://developer.android.com/reference/android/media/MediaFormat.html "class or interface in android.media")getMediaFormat​([Format](../Format.html "class in com.google.android.exoplayer2")format,[String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")codecMimeType,[MediaCodecVideoRenderer.CodecMaxValues](MediaCodecVideoRenderer.CodecMaxValues.html "class in com.google.android.exoplayer2.video")codecMaxValues,
                                     float codecOperatingRate,
                                     boolean deviceNeedsNoPostProcessWorkaround,
                                     int tunnelingAudioSessionId)

Deprecated.

Returns the framework MediaFormat that should be used to configure the decoder. Parameters:format - The Format of media.codecMimeType - The MIME type handled by the codec.codecMaxValues - Codec max values that should be used when configuring the decoder.codecOperatingRate - The codec operating rate, or MediaCodecRenderer.CODEC_OPERATING_RATE_UNSET if no codec operating rate should be set.deviceNeedsNoPostProcessWorkaround - Whether the device is known to do post processing by default that isn't compatible with ExoPlayer.tunnelingAudioSessionId - The audio session id to use for tunneling, or C.AUDIO_SESSION_ID_UNSET if tunneling should not be enabled.Returns:The framework MediaFormat that should be used to configure the decoder.

- 

getCodecMaxValues

protected[MediaCodecVideoRenderer.CodecMaxValues](MediaCodecVideoRenderer.CodecMaxValues.html "class in com.google.android.exoplayer2.video")getCodecMaxValues​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo,[Format](../Format.html "class in com.google.android.exoplayer2")format,[Format](../Format.html "class in com.google.android.exoplayer2")[] streamFormats)

Deprecated.

Returns MediaCodecVideoRenderer.CodecMaxValues suitable for configuring a codec for format in a way that will allow possible adaptation to other compatible formats in streamFormats. Parameters:codecInfo - Information about the MediaCodec being configured.format - The Format for which the codec is being configured.streamFormats - The possible stream formats.Returns:Suitable MediaCodecVideoRenderer.CodecMaxValues.

- 

createDecoderException

protected[MediaCodecDecoderException](../mediacodec/MediaCodecDecoderException.html "class in com.google.android.exoplayer2.mediacodec")createDecoderException​([Throwable](https://developer.android.com/reference/java/lang/Throwable.html "class or interface in java.lang")cause,
                                                            @Nullable[MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo)

Deprecated. Overrides:createDecoderException in class MediaCodecRenderer

- 

getMaxInputSize

protected static int getMaxInputSize​([MediaCodecInfo](../mediacodec/MediaCodecInfo.html "class in com.google.android.exoplayer2.mediacodec")codecInfo,[Format](../Format.html "class in com.google.android.exoplayer2")format)

Deprecated.

Returns a maximum input buffer size for a given MediaCodec and Format. Parameters:codecInfo - Information about the MediaCodec being configured.format - The format.Returns:A maximum input buffer size in bytes, or Format.NO_VALUE if a maximum could not be determined.

- 

codecNeedsSetOutputSurfaceWorkaround

protected boolean codecNeedsSetOutputSurfaceWorkaround​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")name)

Deprecated.

Returns whether the codec is known to implement MediaCodec.setOutputSurface(Surface) incorrectly.

If true is returned then we fall back to releasing and re-instantiating the codec instead.

Parameters:name - The name of the codec.Returns:True if the device is known to implement MediaCodec.setOutputSurface(Surface) incorrectly.

- 

getSurface

@Nullable
protected[Surface](https://developer.android.com/reference/android/view/Surface.html "class or interface in android.view")getSurface()

Deprecated.

Returns the output surface.