Class AdNativeVideoRenderer

java.lang.Object
com.google.android.exoplayer2.BaseRenderer
com.google.android.exoplayer2.video.DecoderVideoRenderer
com.castlabs.android.hybridads.AdNativeVideoRenderer
All Implemented Interfaces:
com.google.android.exoplayer2.PlayerMessage.Target, com.google.android.exoplayer2.Renderer, com.google.android.exoplayer2.RendererCapabilities

public class AdNativeVideoRenderer extends com.google.android.exoplayer2.video.DecoderVideoRenderer
Renders video frames using a native decoder.
  • Nested Class Summary

    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 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
    AdNativeVideoRenderer(AdNativeDecoder decoder, com.castlabs.android.tunerhal.aidl.IPlayerService tunerhalPlayerService, boolean rendererUsesSharedMemory, int sharedMemorySize, long allowedJoiningTimeMs, Handler eventHandler, PlayerConfig playerConfig, com.google.android.exoplayer2.video.VideoRendererEventListener eventListener, int maxDroppedFramesToNotify, int playerServiceInstance, long splicePts, long adDuration, HybridAdView hybridAdView)
    Creates a new AdNativeVideoRenderer.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    void
    handleMessage(int messageType, Object message)
     
    boolean
     
    void
    render(long positionUs, long elapsedRealtimeUs)
     
    final @com.google.android.exoplayer2.RendererCapabilities.Capabilities int
    supportsFormat(com.google.android.exoplayer2.Format format)
     

    Methods inherited from class com.google.android.exoplayer2.video.DecoderVideoRenderer

    isEnded

    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, supportsMixedMimeTypeAdaptation

    Methods inherited from class java.lang.Object

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

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

    setPlaybackSpeed
  • Constructor Details

    • AdNativeVideoRenderer

      public AdNativeVideoRenderer(AdNativeDecoder decoder, com.castlabs.android.tunerhal.aidl.IPlayerService tunerhalPlayerService, boolean rendererUsesSharedMemory, int sharedMemorySize, long allowedJoiningTimeMs, @Nullable Handler eventHandler, PlayerConfig playerConfig, @Nullable com.google.android.exoplayer2.video.VideoRendererEventListener eventListener, int maxDroppedFramesToNotify, int playerServiceInstance, long splicePts, long adDuration, HybridAdView hybridAdView) throws CastlabsPlayerException
      Creates a new AdNativeVideoRenderer.
      Parameters:
      decoder - The decoder to use.
      tunerhalPlayerService - The tuner HAL player service.
      rendererUsesSharedMemory - Whether the renderer uses shared memory.
      sharedMemorySize - The size of the shared memory buffer.
      allowedJoiningTimeMs - The maximum duration for which this renderer can attempt to join an existing playback session, in milliseconds.
      eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.
      playerConfig - The player configuration.
      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 before the renderer is notified.
      playerServiceInstance - The player service instance.
      splicePts - The splice point in presentation timestamps (PTS).
      adDuration - The duration of the ad in presentation timestamps (PTS).
      hybridAdView - The hybrid ad view.
      Throws:
      CastlabsPlayerException - If an error occurs while initializing the renderer.
  • Method Details

    • getName

      @NonNull public String getName()
    • supportsFormat

      @RequiresApi(api=21) public final @com.google.android.exoplayer2.RendererCapabilities.Capabilities int supportsFormat(@NonNull com.google.android.exoplayer2.Format format)
    • isReady

      public boolean isReady()
      Specified by:
      isReady in interface com.google.android.exoplayer2.Renderer
      Overrides:
      isReady in class com.google.android.exoplayer2.video.DecoderVideoRenderer
    • render

      public void render(long positionUs, long elapsedRealtimeUs) throws com.google.android.exoplayer2.ExoPlaybackException
      Specified by:
      render in interface com.google.android.exoplayer2.Renderer
      Overrides:
      render in class com.google.android.exoplayer2.video.DecoderVideoRenderer
      Throws:
      com.google.android.exoplayer2.ExoPlaybackException
    • handleMessage

      public void handleMessage(int messageType, @Nullable Object message)
      Specified by:
      handleMessage in interface com.google.android.exoplayer2.PlayerMessage.Target
      Overrides:
      handleMessage in class com.google.android.exoplayer2.video.DecoderVideoRenderer