Version
Media3 1.10.0
More version details
Crashes from 1.10.0-beta01 to 1.10.0
Devices that reproduce the issue
In emulators and real devices like Android TV 14.0 in emulator and Google TV Streamer.
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
Play this url with ExoPlayer and hls extension or demo app: https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio141/hlspbaudio141_Auto.m3u8
Expected result
A 404 exception like the one below, and the app doesn't crash. Works with version 1.10.0-alpha01 and earlier.
Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:941)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.os.HandlerThread.run(HandlerThread.java:85)
Caused by: androidx.media3.datasource.HttpDataSource$InvalidResponseCodeException: Response code: 404
at androidx.media3.datasource.DefaultHttpDataSource.open(DefaultHttpDataSource.java:403)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:89)
at androidx.media3.exoplayer.hls.HlsMediaChunk.prepareExtraction(HlsMediaChunk.java:558)
at androidx.media3.exoplayer.hls.HlsMediaChunk.feedDataToExtractor(HlsMediaChunk.java:531)
at androidx.media3.exoplayer.hls.HlsMediaChunk.loadMedia(HlsMediaChunk.java:500)
at androidx.media3.exoplayer.hls.HlsMediaChunk.load(HlsMediaChunk.java:444)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:453)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)
Actual result
App crashes with:
FATAL EXCEPTION: ExoPlayer:Playback
Process: androidx.media3.demo.main, PID: 5240
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at androidx.media3.exoplayer.trackselection.BaseTrackSelection.isTrackExcluded(BaseTrackSelection.java:197)
at androidx.media3.exoplayer.hls.HlsChunkSource.createFallbackOptions(HlsChunkSource.java:954)
at androidx.media3.exoplayer.hls.HlsChunkSource.createFallbackOptions(HlsChunkSource.java:975)
at androidx.media3.exoplayer.hls.HlsSampleStreamWrapper.onLoadError(HlsSampleStreamWrapper.java:1064)
at androidx.media3.exoplayer.hls.HlsSampleStreamWrapper.onLoadError(HlsSampleStreamWrapper.java:98)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.handleMessage(Loader.java:530)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
Media
https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio141/hlspbaudio141_Auto.m3u8
Bug Report
Version
Media3 1.10.0
More version details
Crashes from 1.10.0-beta01 to 1.10.0
Devices that reproduce the issue
In emulators and real devices like Android TV 14.0 in emulator and Google TV Streamer.
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
Play this url with ExoPlayer and hls extension or demo app: https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio141/hlspbaudio141_Auto.m3u8
Expected result
A 404 exception like the one below, and the app doesn't crash. Works with version 1.10.0-alpha01 and earlier.
Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:941)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.os.HandlerThread.run(HandlerThread.java:85)
Caused by: androidx.media3.datasource.HttpDataSource$InvalidResponseCodeException: Response code: 404
at androidx.media3.datasource.DefaultHttpDataSource.open(DefaultHttpDataSource.java:403)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:89)
at androidx.media3.exoplayer.hls.HlsMediaChunk.prepareExtraction(HlsMediaChunk.java:558)
at androidx.media3.exoplayer.hls.HlsMediaChunk.feedDataToExtractor(HlsMediaChunk.java:531)
at androidx.media3.exoplayer.hls.HlsMediaChunk.loadMedia(HlsMediaChunk.java:500)
at androidx.media3.exoplayer.hls.HlsMediaChunk.load(HlsMediaChunk.java:444)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:453)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)
Actual result
App crashes with:
FATAL EXCEPTION: ExoPlayer:Playback
Process: androidx.media3.demo.main, PID: 5240
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at androidx.media3.exoplayer.trackselection.BaseTrackSelection.isTrackExcluded(BaseTrackSelection.java:197)
at androidx.media3.exoplayer.hls.HlsChunkSource.createFallbackOptions(HlsChunkSource.java:954)
at androidx.media3.exoplayer.hls.HlsChunkSource.createFallbackOptions(HlsChunkSource.java:975)
at androidx.media3.exoplayer.hls.HlsSampleStreamWrapper.onLoadError(HlsSampleStreamWrapper.java:1064)
at androidx.media3.exoplayer.hls.HlsSampleStreamWrapper.onLoadError(HlsSampleStreamWrapper.java:98)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.handleMessage(Loader.java:530)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
Media
https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio141/hlspbaudio141_Auto.m3u8
Bug Report
adb bugreportto android-media-github@google.com after filing this issue.