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.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.TunnelingSupport`

  - ### Field Summary

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

      `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, 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 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)` |

  - ### Method Summary

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

      `handleMessage, isEnded, isReady`

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

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

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

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

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

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

- - ### Constructor Detail

    - #### 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)