Seeking while playing Widevine/AVC can cause a stall
@tianyif is already working on this.
Since Oct 13, 2023.
- Dominant language
- Java
- Stars
- 3k
- Forks
- 955
- Avg merge
- 12d 14h
- Merged PRs (30d)
- 2
Description
Version
ExoPlayer 2.19.1
More version details
While playing back Widevine protected AVC content, I notice the player can get stuck in a state after seeking where it is in a buffering / not loading state. I can see plenty of errors / warnings coming from the device CCodecX classes, but Exoplayer itself never recovers, and appears to load indefinitely.
When performing another seek to a different timestamp (even by just 1ms) playback recovers.
This seems to occur on our Widevine/AVC content as well as the one available inside the ExoPlayer demo app.
Our app is currently using ExoPlayer 2.18.1 - I've reproduced it in the ExoPlayer demo app for 2.18.1 and 2.19.1.
Devices that reproduce the issue
Pixel 5, Android 14
Devices that do not reproduce the issue
Pixel 7 Pro, Android 13
Reproducible in the demo app?
Yes
Reproduction steps
- From the exoplayer demo app, select Widevine DASH(MP4, H264) -> HD (cenc)
- Seek somewhere on the seek bar
- If the seek was successful, retry step 2.
- Observe that seeking occasionally indefinitely hangs, and leaves the device in a buffering but not loading state
- Seek again to regain playback
Expected result
Seeking does not incur indefinite buffering states.
Actual result
Seeking hangs indefinitely, and the user must seek again to regain playback.
Media
I can provide Widevine/AVC protected content via the attached email if needed, but I have reproduced it via the sample content in the Exoplayer app.
Bug Report
- You will email the zip file produced by
adb bugreportto android-media-github@google.com after filing this issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.