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.video.MediaCodecVideoRenderer

  `com.google.android.exoplayer2.video.MediaCodecVideoRenderer.VideoDecoderException`

  ## 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.DecoderException, 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.State`

  ## 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.CodecImplementation, com.google.android.exoplayer2.RendererCapabilities.FormatSupport, 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, DEVICE_NEEDS_SKIP_RESET_ON_DISABLED, FORCE_FLUSH_WORKAROUND, INPUT_BUFFER_INITIALIZATION_MODE`

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

  `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, CODEC_IMPLEMENTATION_HARDWARE, CODEC_IMPLEMENTATION_MASK, CODEC_IMPLEMENTATION_SOFTWARE, FORMAT_EXCEEDS_CAPABILITIES, FORMAT_HANDLED, FORMAT_SUPPORT_MASK, FORMAT_UNSUPPORTED_DRM, FORMAT_UNSUPPORTED_SUBTYPE, FORMAT_UNSUPPORTED_TYPE, 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, com.google.android.exoplayer2.drm.DrmSessionManager drmSessionManager, boolean playClearSamplesWithoutKeys, 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

  `handleMessage, isEnded, isReady, setOperatingRate`

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

  `experimental_setFeedYieldEnabled, experimental_setRenderTimeLimitMs, onRenewed, render, setSynchronizer, supportsFormat, supportsMixedMimeTypeAdaptation`

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

  `clearListener, disable, enable, getCapabilities, getMediaClock, getReadingPositionUs, getState, getStream, getStreamOffsetUs, getTrackType, hasReadStreamToEnd, isCurrentStreamFinal, maybeThrowStreamError, release, replaceStream, reset, resetPosition, setCurrentStreamFinal, setIndex, 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, com.google.android.exoplayer2.drm.DrmSessionManager drmSessionManager, boolean playClearSamplesWithoutKeys, 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
      `drmSessionManager` - The DRM session manager
      `playClearSamplesWithoutKeys` - Whether to play clear samples without keys
      `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