You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(None found so far; it appears consistent on all tested Android devices.)
Reproducible in the demo app?
Yes
Reproduction steps
Launch the Media3 demo app (or your own app that uses Media3 1.5.x).
Play the problematic MP4 file.
Observe that playback fails with an ArrayIndexOutOfBoundsException.
Expected result
The video should play normally (as it does in the browser, QuickTime, iOS devices, and previous Media3 1.4.1).
Actual result
Playback fails with a Source error in the Media3 logs. The exception stack trace looks like:
08:51:38.668 E Unexpected exception loading stream
java.lang.ArrayIndexOutOfBoundsException: src.length=417 srcPos=-1 dst.length=418 dstPos=0 length=418
at java.lang.System.arraycopy(Native Method)
at androidx.media3.extractor.mp4.BoxParser.parseStbl(BoxParser.java:776)
at androidx.media3.extractor.mp4.BoxParser.parseTraks(BoxParser.java:168)
at androidx.media3.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:691)
at androidx.media3.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:634)
at androidx.media3.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:610)
at androidx.media3.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:388)
at androidx.media3.exoplayer.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:147)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1122)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
08:51:38.671 E internalError [eventTime=10.26, mediaPos=0.00, window=0, period=0, loadError
androidx.media3.exoplayer.upstream.Loader$UnexpectedLoaderException: Unexpected ArrayIndexOutOfBoundsException: src.length=417 srcPos=-1 dst.length=418 dstPos=0 length=418
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:471)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Caused by: java.lang.ArrayIndexOutOfBoundsException: src.length=417 srcPos=-1 dst.length=418 dstPos=0 length=418
at java.lang.System.arraycopy(Native Method)
at androidx.media3.extractor.mp4.BoxParser.parseStbl(BoxParser.java:776)
at androidx.media3.extractor.mp4.BoxParser.parseTraks(BoxParser.java:168)
at androidx.media3.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:691)
at androidx.media3.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:634)
at androidx.media3.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:610)
at androidx.media3.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:388)
at androidx.media3.exoplayer.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:147)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1122)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
]
08:51:38.679 E Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:737)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:713)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.upstream.Loader$UnexpectedLoaderException: Unexpected ArrayIndexOutOfBoundsException: src.length=417 srcPos=-1 dst.length=418 dstPos=0 length=418
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:471)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Caused by: java.lang.ArrayIndexOutOfBoundsException: src.length=417 srcPos=-1 dst.length=418 dstPos=0 length=418
at java.lang.System.arraycopy(Native Method)
at androidx.media3.extractor.mp4.BoxParser.parseStbl(BoxParser.java:776)
at androidx.media3.extractor.mp4.BoxParser.parseTraks(BoxParser.java:168)
at androidx.media3.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:691)
at androidx.media3.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:634)
at androidx.media3.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:610)
at androidx.media3.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:388)
at androidx.media3.exoplayer.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:147)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1122)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
The exception occurred when an edit list started at a non-sync frame with no preceding sync frame. The fix searches forward for the next sync frame in such cases, preventing the out-of-bounds access.
Issue: #2062
#cherrypick
PiperOrigin-RevId: 720642687
Version
Media3 main branch
More version details
Media3 1.5.0 and 1.5.1.
This issue does not occur on Media3 1.4.1.
Devices that reproduce the issue
Google Pixel 7 running Android 15
Samsung Galaxy S10+ running Android 12
Devices that do not reproduce the issue
(None found so far; it appears consistent on all tested Android devices.)
Reproducible in the demo app?
Yes
Reproduction steps
Expected result
The video should play normally (as it does in the browser, QuickTime, iOS devices, and previous Media3 1.4.1).
Actual result
Playback fails with a Source error in the Media3 logs. The exception stack trace looks like:
Media
I will email the media file to android-media-github@google.com shortly after filing this issue.
Bug Report
adb bugreport
to android-media-github@google.com after filing this issue.The text was updated successfully, but these errors were encountered: