Package com.castlabs.android.player

# Class ExtendedMediaCodecVideoTrackRenderer

java.lang.Object
com.google.android.exoplayer2.BaseRenderer
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
com.google.android.exoplayer2.video.MediaCodecVideoRenderer
com.castlabs.android.player.ExtendedMediaCodecVideoTrackRenderer

All Implemented Interfaces:
  `com.google.android.exoplayer2.drm.DrmSession.EventListener`, `com.google.android.exoplayer2.PlayerMessage.Target`, `com.google.android.exoplayer2.Renderer`, `com.google.android.exoplayer2.RendererCapabilities`

public class ExtendedMediaCodecVideoTrackRenderer extends com.google.android.exoplayer2.video.MediaCodecVideoRenderer
Extension of `MediaCodecVideoRenderer` to add customizations and extensions.

Since:
  3.0.2

- ## Nested Class Summary

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

  `com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.BufferReplacementMode, com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException, com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.Synchronizer`

  ## Nested classes/interfaces inherited from class com.google.android.exoplayer2.BaseRenderer

  `com.google.android.exoplayer2.BaseRenderer.RendererStreamException`

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

  `com.google.android.exoplayer2.Renderer.Listener, com.google.android.exoplayer2.Renderer.MessageType, com.google.android.exoplayer2.Renderer.State, com.google.android.exoplayer2.Renderer.WakeupListener`

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

  `com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport, com.google.android.exoplayer2.RendererCapabilities.Capabilities, com.google.android.exoplayer2.RendererCapabilities.DecoderSupport, com.google.android.exoplayer2.RendererCapabilities.FormatSupport, com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupport, com.google.android.exoplayer2.RendererCapabilities.Listener, com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport`

- ## Field Summary

  ### Fields inherited from class com.google.android.exoplayer2.video.MediaCodecVideoRenderer

  `CODEC_INPUT_KEYFRAME_COUNT_TO_DETECT_INITIAL_STALL, CODEC_NEEDS_RECONFIGURE_WORKAROUND_OVERRIDE, CODEC_NEEDS_REINIT_ON_DRM_SESSION_CHANGE, CODEC_NEEDS_REINIT_ON_MAX_INPUT_SIZE_EXCEED_BYTES, CODEC_NEEDS_REINIT_ON_RESOLUTION_EXCEED_PIXELS, CODEC_NEEDS_SET_OUTPUT_SURFACE_WORKAROUND_OVERRIDE, CODEC_RETRY_COUNTER_OVERRIDE, FORCE_JOINING_ON_INIT_FOR_DEVICES_THAT_DONT_ACCURATELY_REPORT_BUFFER_FLAGS, MIN_BUFFER_COUNT_TO_DISPLAY_FRAME_IN_TUNNELING, MIN_TIME_TO_DISPLAY_TIME_MS_IN_TUNNELING`

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

  `BUFFER_REPLACEMENT_DIRECT, BUFFER_REPLACEMENT_DISABLED, BUFFER_REPLACEMENT_NORMAL, CODEC_WAIT_RELEASE_WORKAROUND_TIME_MS, CODECS_WAIT_RELEASE_WORKAROUND, FORCE_FLUSH_WORKAROUND, INPUT_BUFFER_INITIALIZATION_MODE`

  ### 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_EVENT_MESSAGE_CUE_EVENT, 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
  `ExtendedMediaCodecVideoTrackRenderer(Context context, com.google.android.exoplayer2.mediacodec.MediaCodecAdapter.Factory codecAdapterFactory, com.google.android.exoplayer2.mediacodec.MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, Handler eventHandler, com.google.android.exoplayer2.video.VideoRendererEventListener eventListener, int maxDroppedFrameCountToNotify, boolean pushBlackScreen, boolean enableDecoderFallback, boolean enableDecoderFallbackToUnsecureDecoder)`
  Constructs a new instance.

- ## Method Summary

  ### Methods inherited from class com.google.android.exoplayer2.video.MediaCodecVideoRenderer

  `getCodecMaxInputSize, getName, handleMessage, isEnded, isReady, render, setPlaybackSpeed`

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

  `experimental_setFeedYieldEnabled, onRenewed, setRenderTimeLimitMs, setSynchronizer, supportsFormat, supportsMixedMimeTypeAdaptation`

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

  `clearListener, disable, enable, getCapabilities, getMediaClock, getReadingPositionUs, getState, getStream, getStreamOffsetUs, getTrackType, hasReadStreamToEnd, init, isCurrentStreamFinal, maybeThrowStreamError, release, replaceStream, reset, resetPosition, setCurrentStreamFinal, setListener, setListener, setRenderingIntervalManager, start, stop`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ExtendedMediaCodecVideoTrackRenderer

    public ExtendedMediaCodecVideoTrackRenderer(Context context, com.google.android.exoplayer2.mediacodec.MediaCodecAdapter.Factory codecAdapterFactory, com.google.android.exoplayer2.mediacodec.MediaCodecSelector mediaCodecSelector, long allowedJoiningTimeMs, Handler eventHandler, com.google.android.exoplayer2.video.VideoRendererEventListener eventListener, int maxDroppedFrameCountToNotify, boolean pushBlackScreen, boolean enableDecoderFallback, boolean enableDecoderFallbackToUnsecureDecoder)
    Constructs a new instance.
    Parameters:
      `context` - The context
      `codecAdapterFactory` - The codec adapter factory
      `mediaCodecSelector` - The media codec selector
      `allowedJoiningTimeMs` - The allowed joining time in milliseconds
      `eventHandler` - The event handler
      `eventListener` - The event listener
      `maxDroppedFrameCountToNotify` - The maximum number of dropped frames to notify
      `pushBlackScreen` - Whether to push black screen
      `enableDecoderFallback` - Whether to enable decoder fallback
      `enableDecoderFallbackToUnsecureDecoder` - Whether to enable decoder fallback to unsecure decoder