media/libraries/exoplayer
tonihei 56dd0f761d Handle output format changes for empty sample streams correctly
When MediaCodecRenderer is given an empty sample stream, it puts
its output format change tracking in a bad state where we never
process future stream changes because we are waiting for a sample
that doesn't exist.

We can fix this by:
 - Looping the pending output stream changes to see if we processed
   more than one change at once (this fixes the tracking for empty
   sample streams that are not the first in the queue).
 - Checking if none of the previous streams queued any samples in
   onStreamChanged to handle this in the same way as the case
   where we already output all samples (this fixes the problem when
   the empty sample stream comes first in the queue).
 - Also calling onProcessedStreamChange for the case above, which
   was missing previously.

#minor-release

PiperOrigin-RevId: 519226637
(cherry picked from commit b9790e69d7)
2023-04-18 14:56:45 +01:00
..
src Handle output format changes for empty sample streams correctly 2023-04-18 14:56:45 +01: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 Fix javadoc links in media README files 2023-03-31 13:35:43 +01: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.