
If a MediaPeriod uses a Loadable, then there are typically reference chains of the form: LoadingThread[GCroot]->Loadable->MediaPeriod->Player Where the player is the MediaPeriod callback. When the player is released, this reference chain prevents the player from being GC'd until Loadable cancellation completes, which may not always be fast. This in turn will typically prevent the application's activity from being GC'd, since it'll normally be registered as a listener on the player (directly or indirectly via something like a view). This change mitigates the issue by removing references that the MediaPeriod holds back to the player. The MediaPeriod will still not be eligible for GC, but the player and application activity will be, which in most cases will be most of the leak (in terms of size). Issue: #4249 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=199143646
ExoPlayer SmoothStreaming library module
Provides support for Smooth Streaming content. To play Smooth Streaming content,
instantiate a SsMediaSource
and pass it to ExoPlayer.prepare
.
Links
- Javadoc: Classes matching
com.google.android.exoplayer2.source.smoothstreaming.*
belong to this module.