AV freeze indefinitely in HLS stream having multiple #EXT-X-PROGRAM-DATE-TIME with jump in segments with discontinuity.
- Dominant language
- Java
- Stars
- 21.9k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
EXOPLAYER_VERSION = com.amazon.android:exoplayer:2.11.3
exoplayer source code: https://github.com/amzn/exoplayer-amazon-port/tree/amazon/r2.11.3
Tested on demo app from "exoplayer amazon port".
I see AV freeze and no player errors thrown when i stream windowed live HLS manifest with variant having multiple #EXT-X-PROGRAM-DATE-TIME with jump in timestamp, below bolded text is the snippet of variant playlist having jump in timestamp.
#EXT-X-PROGRAM-DATE-TIME:2022-01-17T**13:10:10.424Z**
#EXTINF:2.002,
http://hostname_xyz/cmaf-hls/ad-1_001.cmfv
#EXTINF:2.002,
http://hostname_xyz/cmaf-hls/ad-1_002.cmfv
#EXT-X-DISCONTINUITY
#EXT-X-MAP:URI="https://hostname/video/vid05/init.mp4"
#EXT-X-PROGRAM-DATE-TIME:2022-01-17T**13:15:22.161Z**
#EXTINF:0.192,
https://hostname/video/vid05/1856.m4s
Same variant works fine on iOS and seeing issue only in android.
Also, if its playing content which has second #EXT-X-PROGRAM-DATE-TIME, i was expecting window.windowStartTimeMs to have second #EXT-X-PROGRAM-DATE-TIME but after going through https://github.com/google/ExoPlayer/issues/8312 and going through source code of exoplayer, i see that multiple #EXT-X-PROGRAM-DATE-TIME is not handled and playlist time is window start time which is populated during variant playlist download.
For me, even activePlayer.getCurrentPosition() is not returning proper value, in this case, getCurrentPosition() should return after 5mins jump when its playing 1856.m4s.
I will send mail to dev.exoplayer@gmail.com with charles dump, adb logs as well stream details with this ticket number which can help for local repro.
Contributor guide
Assessment
This issue has not been assessed yet.