# Hierarchy For Package com.castlabs.android.player

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - com.castlabs.android.player.AbrConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.AbrConfiguration.Builder
  - com.castlabs.android.player.AbstractAudioRendererListener (implements com.castlabs.android.player.AudioRendererListener)
  - com.castlabs.android.player.AbstractCatchupListener (implements com.castlabs.android.player.CatchupListener)
  - com.castlabs.android.player.AbstractPlayerControllerListener (implements com.castlabs.android.player.PlayerControllerListener)
  - com.castlabs.android.player.AbstractPlayerListener (implements com.castlabs.android.player.PlayerListener)
  - com.castlabs.android.player.AbstractStreamingEventListener (implements com.castlabs.android.player.StreamingEventListener)
  - com.castlabs.android.player.AbstractVideoRendererListener (implements com.castlabs.android.player.VideoRendererListener)
  - com.castlabs.android.player.AmLogicPlayerPlugin (implements com.castlabs.android.player.PlayerPlugin)
  - com.castlabs.android.player.AudioAttributes (implements android.os.Parcelable)
  - com.castlabs.android.player.AudioAttributes.Builder
  - com.castlabs.android.player.AudioCapabilitiesManager (implements com.google.android.exoplayer2.audio.AudioCapabilitiesReceiver.Listener)
  - com.castlabs.android.player.AudioTrackListener (implements com.google.android.exoplayer2.audio.AudioRendererEventListener, com.castlabs.android.player.MediaTrackEventListener)
  - com.castlabs.abr.gen.BandwidthMeter
    - com.castlabs.abr.gen.DefaultBandwidthMeter
      - com.castlabs.android.player.CastlabsBandwidthMeter (implements com.google.android.exoplayer2.upstream.BandwidthMeter, com.castlabs.utils.Disposable, com.google.android.exoplayer2.upstream.TransferListener)
  - com.castlabs.android.player.BandwidthMeterWrapper (implements com.google.android.exoplayer2.upstream.BandwidthMeter, com.google.android.exoplayer2.upstream.TransferListener)
  - com.castlabs.android.player.BasePlayerModelBuilder
  - com.google.android.exoplayer2.BaseRenderer (implements com.google.android.exoplayer2.drm.DrmSession.EventListener, com.google.android.exoplayer2.Renderer, com.google.android.exoplayer2.RendererCapabilities)
    - com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
      - com.google.android.exoplayer2.video.MediaCodecVideoRenderer
        - com.castlabs.android.player.ExtendedMediaCodecVideoTrackRenderer
  - android.os.Binder (implements android.os.IBinder)
    - com.castlabs.android.player.PlayerService.Binder
  - com.castlabs.android.player.BufferConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.BufferConfiguration.Builder
  - com.castlabs.android.player.CastlabsBandwidthMeter.Builder
  - com.castlabs.android.player.CatchupConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.CatchupConfiguration.Builder
  - com.castlabs.android.player.Chapter
  - com.castlabs.android.player.ClearkeyTrackRendererBuilder
  - com.castlabs.android.player.ClearTrackRendererPlugin (implements com.castlabs.android.player.TrackRendererPlugin)
  - com.castlabs.android.player.CLLibraryLoader
  - android.content.Context
    - android.content.ContextWrapper
      - android.app.Service (implements android.content.ComponentCallbacks2)
        - com.castlabs.android.player.PlayerService
  - com.castlabs.android.player.CustomDashEventListener.CustomEvent
  - com.castlabs.android.player.CustomUtcTimingElement (implements android.os.Parcelable)
  - com.castlabs.android.player.DashDescriptor
  - org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler)
    - com.google.android.exoplayer2.source.dash.manifest.DashManifestParser (implements com.google.android.exoplayer2.upstream.ParsingLoadable.Parser<T>)
      - com.castlabs.android.player.MPDParser
  - com.castlabs.android.player.DefaultMediaCodecSelector (implements com.google.android.exoplayer2.mediacodec.MediaCodecSelector)
  - com.castlabs.android.player.DisplayInfo
  - com.castlabs.android.player.DrmKeyStorage
  - com.castlabs.android.player.DrmLicenseLoader
  - com.castlabs.android.player.DrmLicenseLoader.Builder
  - com.castlabs.android.player.ExoSubtitlesRendererPlugin (implements com.castlabs.android.player.TrackRendererPlugin)
  - com.castlabs.android.player.ExtendedTrackSelector.ModelSelection
  - com.castlabs.android.player.ExternalSourceSelector.SourceData
  - com.castlabs.android.player.HlsClearKeyCache
    - com.castlabs.android.player.MemoryHlsClearKeyCache (implements android.os.Parcelable)
  - com.castlabs.android.player.IPTVPlayerPlugin (implements com.castlabs.android.player.PlayerPlugin)
  - com.castlabs.android.player.LiveConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.LiveConfiguration.Builder
  - com.castlabs.android.player.LowLatencyProfile
  - com.castlabs.android.player.LowLatencyProfile.Builder
  - com.castlabs.android.player.MediaCodecInfo (implements android.os.Parcelable)
  - com.castlabs.android.player.PeriodInfoProvider.PeriodInfo
  - com.castlabs.android.player.PlayerConfig (implements android.os.Parcelable)
  - com.castlabs.android.player.PlayerConfig.Builder
  - com.castlabs.android.player.PlayerController
    - com.castlabs.android.player.SingleControllerPlaylist (implements com.castlabs.android.player.Playlist)
  - com.castlabs.android.player.PlayerListeners
  - com.castlabs.android.player.PlayerPlugin.DrmInitDataProvider<T>
  - com.castlabs.android.player.PlayerViewLifecycleDelegate
  - com.castlabs.android.player.PlayerViewLifecycleDelegate.ResumeConfiguration
  - com.castlabs.android.player.PlayerViewLifecycleDelegate.ResumeConfiguration.Builder
  - com.castlabs.android.player.PlayerViewPlugin.SingleViewPlayerViewComponent<ViewType> (implements com.castlabs.android.player.PlayerViewPlugin.PlayerViewComponent)
  - com.castlabs.android.Plugin
    - com.castlabs.android.player.DefaultPlayerPlugin
  - com.castlabs.android.player.TrackIndexOverride
  - com.castlabs.android.player.TrackRendererPlugin.TrackRendererContainer
  - com.google.android.exoplayer2.trackselection.TrackSelector
    - com.castlabs.android.player.ExtendedTrackSelector (implements com.castlabs.android.drm.DrmEventListener)
  - com.castlabs.android.player.TrackTypeProvider
    - com.castlabs.android.player.DefaultTrackTypeProvider
  - com.castlabs.android.player.TrickplayConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.TrickplayConfiguration.Builder
  - com.castlabs.android.player.VideoFilterConfiguration (implements android.os.Parcelable)
  - com.castlabs.android.player.VideoFilterConfiguration.Builder
  - com.castlabs.android.player.VideoTrackListener (implements com.castlabs.android.player.MediaTrackEventListener, com.google.android.exoplayer2.video.VideoRendererEventListener)
  - android.view.View (implements android.view.accessibility.AccessibilityEventSource, android.graphics.drawable.Drawable.Callback, android.view.KeyEvent.Callback)
    - android.view.ViewGroup (implements android.view.ViewManager, android.view.ViewParent)
      - android.widget.FrameLayout
        - com.castlabs.android.player.PlayerView (implements com.castlabs.android.player.IPlayerView)
  - com.castlabs.android.player.VisualComponentProxy (implements com.castlabs.android.player.PlayerControllerPlugin.VisualComponent)
    - com.castlabs.android.player.ExoSubtitlesRendererPlugin.ExoSubtitleComponent

## Interface Hierarchy

- com.castlabs.android.player.AudioRendererListener
- com.castlabs.android.player.CatchupListener
- com.castlabs.android.player.CLLibraryLoader.PostLoadAction
- com.castlabs.android.player.ConfigurationProvider
- com.castlabs.android.player.CustomDashEventListener
- com.castlabs.android.player.DrmLicenseLoader.Callback
- com.castlabs.android.player.ExtendedTrackSelector.EventListener
- com.castlabs.android.player.ExtendedTrackSelector.PlayerInfoProvider
- com.castlabs.android.player.ExternalSourceSelector
  - com.castlabs.android.player.SourceSelector
- com.castlabs.android.player.FormatChangeListener
- com.castlabs.android.player.InitialPositionProvider
- com.castlabs.android.player.IPlayerView
- com.castlabs.android.player.ManifestModifier<T>
- com.castlabs.android.player.MediaTrackEventListener
- com.castlabs.android.player.MetadataListener
- com.castlabs.android.player.PeriodChangedListener
- com.castlabs.android.player.PeriodInfoProvider
- com.castlabs.android.player.PlaybackStateStorage
- com.castlabs.android.player.PlayerControllerListener
- com.castlabs.android.player.PlayerControllerPlugin
- com.castlabs.android.player.PlayerControllerPlugin.Component
  - com.castlabs.android.player.PlayerControllerPlugin.VisualComponent (also extends com.castlabs.android.player.PlayerControllerPlugin.ComponentViewListener)
- com.castlabs.android.player.PlayerControllerPlugin.ComponentViewListener
  - com.castlabs.android.player.PlayerControllerPlugin.VisualComponent (also extends com.castlabs.android.player.PlayerControllerPlugin.Component)
- com.castlabs.android.player.PlayerListener
- com.castlabs.android.player.PlayerPlugin
- com.castlabs.android.player.PlayerService.NotificationHandler
- com.castlabs.android.player.PlayerViewLifecycleDelegate.LifecycleListener
- com.castlabs.android.player.PlayerViewPlugin
- com.castlabs.android.player.PlayerViewPlugin.PlayerViewComponent
- com.castlabs.android.player.Playlist
- com.castlabs.android.player.SingleControllerPlaylist.PlaylistListener
- com.castlabs.android.player.StreamingEventListener
- com.castlabs.android.player.TimelineChangedListener
- com.castlabs.android.player.TimelineListener
- com.castlabs.android.player.TrackRendererPlugin
- com.castlabs.android.player.TrackRendererPlugin.TrackRendererBuilder
- com.castlabs.android.player.TrackSelectionListener
- com.castlabs.android.player.VideoRendererListener

## Annotation Type Hierarchy

- com.castlabs.android.player.AbrConfiguration.AbrMethod (implements java.lang.annotation.Annotation)
- com.castlabs.android.player.DashDescriptor.DescriptorType (implements java.lang.annotation.Annotation)
- com.castlabs.android.player.PlayerController.TrackType (implements java.lang.annotation.Annotation)
- com.castlabs.android.player.PlayerView.ScalingMode (implements java.lang.annotation.Annotation)
- com.castlabs.android.player.PlayerView.SurfaceType (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - com.castlabs.android.player.CatchupConfiguration.TimeReference
    - com.castlabs.android.player.CatchupConfiguration.Type
    - com.castlabs.android.player.CustomDashEventListener.EventType
    - com.castlabs.android.player.ExternalSourceSelector.SwitchType
    - com.castlabs.android.player.PlayerController.State
    - com.castlabs.android.player.TrackRendererPlugin.Type
    - com.castlabs.android.player.TrickplayConfiguration.SpeedupMode