media/library
christosts 7a2c7c3297 Make asynchronous queueing non-experimental
This change makes asynchronous queueing non-experimental, it enables the
feature by default on devices with API level >= 31 (Android 12+) and
exposes APIs for apps to either fully opt-in or opt-out from the
feature.

The choice to use or not asynchronous queueing is moved out of
MediaCodecRenderer to a new MediaCodecAdapter factory, the
DefaultMediaCodecAdapterFactory. This is because, at the moment,
if an app passes a custom adapter factory to a MediaCodecRenderer and
then enables asynchronous queueing on it, the custom
adapter factory is not used but this is not visible to the user.

The default behavior of DefaultMediaCodecAdapterFactory is to create
asynchronous MediaCodec adapters for devices with API level >= 31
(Android 12+), and synchronous MediaCodec adapters on devices with older
API versions.

DefaultMediaCodecAdapterFactory exposes methods to force enable or force
disable the use of asynchronous adapters so that applications can enable
asynchronous queueing on devices with API versions before 31 (but not
before 23), or fully disable the feature. For applications that build
MediaCodecRenderers directly, they will need to create a
DefaultMediaCodecAdapterFactory and pass it to the renderer constructor.
For applications that rely on the DefaultRenderersFactory, additional
methods have been added on the DefaultRenderersFactory to control
enabling/disabling asynchronous queueing.

Issue: #6348
PiperOrigin-RevId: 400733506
2021-10-05 11:22:01 +01:00
..
all Include RTSP module in gradle project 2021-05-10 23:41:50 +01:00
common Rollback of 8ed6c9fcf5 2021-10-04 15:40:47 +01:00
core Make asynchronous queueing non-experimental 2021-10-05 11:22:01 +01:00
dash Remove fully qualified class names in link tags 2021-10-04 11:53:39 +01:00
extractor Map TS stream type 0x80 to H262 2021-10-04 15:43:47 +01:00
hls Migrate usages of MediaItem.PlaybackProperties to LocalConfiguration 2021-09-28 16:35:31 +01:00
rtsp Migrate callers of ExoPlayer.Builder#build() to buildExoPlayer() 2021-09-28 16:38:20 +01:00
smoothstreaming Migrate usages of MediaItem.PlaybackProperties to LocalConfiguration 2021-09-28 16:35:31 +01:00
transformer Simplify GL program handling. 2021-10-04 15:34:43 +01:00
ui Rollback of 8ed6c9fcf5 2021-10-04 15:40:47 +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.