Package com.castlabs.android.player

## Class IPTVPlayerPlugin

- java.lang.Object
- - com.castlabs.android.player.IPTVPlayerPlugin

- All Implemented Interfaces:
    `PlayerPlugin`

      public class IPTVPlayerPlugin
      extends Object
      implements PlayerPlugin

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.castlabs.android.player.PlayerPlugin

      `PlayerPlugin.DrmInitDataProvider<T extends com.google.android.exoplayer2.offline.FilterableManifest>`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IPTVPlayerPlugin()` |
    `IPTVPlayerPlugin​(boolean playsClearWithExo)` |
    `IPTVPlayerPlugin​(com.google.android.exoplayer2.analytics.IptvAnalyticsListener.EventDispatcher dispatcher)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PlayerPlugin.DrmInitDataProvider` | `createDrmInitDataProvider​(ManifestModifier manifestModifier)` |
    `com.google.android.exoplayer2.source.MediaSource` | `createMediaSource​(PlayerConfig config, PlayerController playerController)` | Create the content media source based on the supplied path and the `PlayerController`
    `List<TrackRendererPlugin.TrackRendererContainer>` | `createRendererContainers​(PlayerController playerController, DrmConfiguration drmConfiguration)` | Create the list of renderer containers based on the supplied `DrmConfiguration` and `PlayerController`
    `com.google.android.exoplayer2.RendererCapabilities[]` | `getRendererCapabilities​(Context context, DrmConfiguration drmConfiguration)` | Retrieve array of supported RendererCapabilities.
    `boolean` | `isFormatSupported​(int format, DrmConfiguration configuration)` |
    `void` | `removeWVCASLicense​(String lic)` |
    `void` | `setDiscontiniuityThreshold​(long discontinuityThreshold)` |
    `void` | `setDispatcher​(com.google.android.exoplayer2.analytics.IptvAnalyticsListener.EventDispatcher dispatcher)` |
    `void` | `setIgnoreDataTillVideoKeyframe​(boolean ignoreDataTillVideoKeyframe)` |
    `void` | `setRtpQueueSizeInPackets​(int rtpQueueSizeInPackets)` |

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

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

- - ### Constructor Detail

    - #### IPTVPlayerPlugin

          public IPTVPlayerPlugin​(boolean playsClearWithExo)

    - #### IPTVPlayerPlugin

          public IPTVPlayerPlugin()

    - #### IPTVPlayerPlugin

          public IPTVPlayerPlugin​(com.google.android.exoplayer2.analytics.IptvAnalyticsListener.EventDispatcher dispatcher)

  - ### Method Detail

    - #### setDispatcher

          public void setDispatcher​(com.google.android.exoplayer2.analytics.IptvAnalyticsListener.EventDispatcher dispatcher)

    - #### setRtpQueueSizeInPackets

          public void setRtpQueueSizeInPackets​(int rtpQueueSizeInPackets)

    - #### setDiscontiniuityThreshold

          public void setDiscontiniuityThreshold​(long discontinuityThreshold)

    - #### setIgnoreDataTillVideoKeyframe

          public void setIgnoreDataTillVideoKeyframe​(boolean ignoreDataTillVideoKeyframe)

    - #### removeWVCASLicense

          public void removeWVCASLicense​(String lic)

    - #### isFormatSupported

          public boolean isFormatSupported​(int format,
                                           @Nullable
                                           DrmConfiguration configuration)

      Specified by:
        `isFormatSupported` in interface `PlayerPlugin`
      Parameters:
        `format` - the content format (one of `SdkConsts.CONTENT_TYPE_UNKNOWN`, `SdkConsts.CONTENT_TYPE_DASH`, `SdkConsts.CONTENT_TYPE_HLS`, `SdkConsts.CONTENT_TYPE_SMOOTHSTREAMING`, or `SdkConsts.CONTENT_TYPE_MP4`)
        `configuration` - the drm configuration
      Returns:
        true if this plugin can create a player for the given content format and drm configuration

    - #### getRendererCapabilities

          @Nullable
          public com.google.android.exoplayer2.RendererCapabilities[] getRendererCapabilities​(@NonNull
                                                                                              Context context,
                                                                                              @Nullable
                                                                                              DrmConfiguration drmConfiguration)

      Description copied from interface: `PlayerPlugin`
      Retrieve array of supported RendererCapabilities.
      Specified by:
        `getRendererCapabilities` in interface `PlayerPlugin`
      Parameters:
        `context` - the context
        `drmConfiguration` - the drm configuration
      Returns:
        RendererCapabilities array supported by the player plugin or null

    - #### createDrmInitDataProvider

          @Nullable
          public PlayerPlugin.DrmInitDataProvider createDrmInitDataProvider​(ManifestModifier manifestModifier)

      Specified by:
        `createDrmInitDataProvider` in interface `PlayerPlugin`

    - #### createMediaSource

          @NonNull
          public com.google.android.exoplayer2.source.MediaSource createMediaSource​(@NonNull
                                                                                    PlayerConfig config,
                                                                                    @NonNull
                                                                                    PlayerController playerController)

      Description copied from interface: `PlayerPlugin`
      Create the content media source based on the supplied path and the `PlayerController`
      Specified by:
        `createMediaSource` in interface `PlayerPlugin`
      Parameters:
        `config` - The `PlayerConfig`
        `playerController` - The `PlayerController` instance
      Returns:
        The media source

    - #### createRendererContainers

          @NonNull
          public List<TrackRendererPlugin.TrackRendererContainer> createRendererContainers​(@NonNull
                                                                                           PlayerController playerController,
                                                                                           @Nullable
                                                                                           DrmConfiguration drmConfiguration)
                                                                                    throws CastlabsPlayerException

      Description copied from interface: `PlayerPlugin`
      Create the list of renderer containers based on the supplied `DrmConfiguration` and `PlayerController`
      Specified by:
        `createRendererContainers` in interface `PlayerPlugin`
      Parameters:
        `playerController` - The `PlayerController` instance
        `drmConfiguration` - The `DrmConfiguration`, might be `null`
      Returns:
        The list of renderer containers
      Throws:
        `CastlabsPlayerException` - when render containers can not be created or an error occurs