media/libraries/exoplayer
christosts 3696076f0f AsynchronousMediaCodecAdapter: surface queueing errors sooner
The AsynchronousMediaCodecAdapter's queuing thread stores any exceptions
raised by MediaCodec and re-throws them on the next call to
queueInputBuffer()/queueSecureInputBuffer(). However, if MediaCodec
raises and error while queueing, it goes into a failed state and does
not announce available input buffers. If there is no input available
input buffer, the MediaCodecRenderer will never call
queueInputBuffer()/queueSecureInputBuffer(), hence playback is stalled.

This change surfaces the queueing error through the adapter's dequeueing
methods.

PiperOrigin-RevId: 508637346
(cherry picked from commit 706431059c)
2023-02-28 17:55:45 +00:00
..
src AsynchronousMediaCodecAdapter: surface queueing errors sooner 2023-02-28 17:55:45 +00:00
build.gradle Fix instrumentation tests not working via Gradle 2022-09-20 15:25:38 +00:00
lint-baseline.xml Add lint baseline for spurious API-level warnings 2022-06-17 10:08:37 +01:00
proguard-rules.txt Remove FfmpegVideoRenderer from 2.18.0 release 2022-05-30 17:58:14 +00:00
README.md Add javadoc links to README files 2023-01-25 18:01:21 +00:00

ExoPlayer module

This module provides ExoPlayer, the Player implementation for local media playback on Android.

Getting the module

The easiest way to get the module is to add it as a gradle dependency:

implementation 'androidx.media3:media3-exoplayer:1.X.X'

where 1.X.X is the version, which must match the version of the other media modules being used.

Alternatively, you can clone this GitHub project and depend on the module locally. Instructions for doing this can be found in the top level README.