media/library
olly 6a82f99ca1 Explicitly null MediaPeriod callbacks on release
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
2018-06-05 15:18:33 +01:00
..
all Migrate ExoPlayer Gradle build files. 2018-03-02 09:20:02 +00:00
core Explicitly null MediaPeriod callbacks on release 2018-06-05 15:18:33 +01:00
dash Explicitly null MediaPeriod callbacks on release 2018-06-05 15:18:33 +01:00
hls Explicitly null MediaPeriod callbacks on release 2018-06-05 15:18:33 +01:00
smoothstreaming Explicitly null MediaPeriod callbacks on release 2018-06-05 15:18:33 +01:00
ui Support TTML font size using % correctly. 2018-05-18 15:04:55 +01:00
README.md Tweak and add READMEs + remove refs to V1 2017-08-17 22:59:34 +01:00

ExoPlayer library

The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.