HLS: Text track gets stuck in LOADING state if final media segment has no content
- Dominant language
- Java
- Stars
- 21.9k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
### [REQUIRED] Issue description
I play the following m3u8 on ExoPlayer demo app version v2.11.2
{
"name": "Harold",
"uri": "https://cdnapi.kaltura.com/p/243342/sp/24334200/playManifest/entryId/0_uka1msg4/flavorIds/1_vqhfu6uy,1_80sohj7p/format/applehttp/protocol/https/a.m3u8"
},
the selected text track is "fr".
- if I let the media to play to the end ENDED event is fired.
- if I seek to the end the last event that is fired is BUFFERING.
- if I turn off text tracks and seek to END ENDED event is fired.
I wonder why ENDED is not fired any way the information of the target position and the media duration is well known so in such mismatch ENDED should be fired instead of ignoring the
ENDED event.
### [REQUIRED] Reproduction steps
Describe how the issue can be reproduced, ideally using the ExoPlayer demo app
or a small sample app that you’re able to share as source code on GitHub.
### [REQUIRED] Link to test content
{
"name": "Harold",
"uri": "https://cdnapi.kaltura.com/p/243342/sp/24334200/playManifest/entryId/0_uka1msg4/flavorIds/1_vqhfu6uy,1_80sohj7p/format/applehttp/protocol/https/a.m3u8"
},
### [REQUIRED] Version of ExoPlayer being used
v2.11.2
### [REQUIRED] Device(s) and version(s) of Android being used
Pixel 3 Android 10
LOGS with ENDED:
2020-01-21 10:20:03.070 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: isPlaying [eventTime=9.89, mediaPos=52.02, window=0, period=0, true]
2020-01-21 10:20:03.071 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: loading [eventTime=9.89, mediaPos=52.02, window=0, period=0, false]
2020-01-21 10:20:11.178 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: state [eventTime=17.99, mediaPos=60.05, window=0, period=0, true, ENDED]
2020-01-21 10:20:11.188 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: isPlaying [eventTime=18.00, mediaPos=60.05, window=0, period=0, false]
LOGS of BUFFERING without ENDED after seek to END:
45.370 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: seekStarted [eventTime=7.46, mediaPos=4.53, window=0, period=0]
2020-01-21 10:20:45.370 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: positionDiscontinuity [eventTime=7.46, mediaPos=60.04, window=0, period=0, SEEK]
2020-01-21 10:20:45.391 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: loading [eventTime=7.48, mediaPos=60.04, window=0, period=0, true]
2020-01-21 10:20:45.392 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: state [eventTime=7.48, mediaPos=60.04, window=0, period=0, true, BUFFERING]
2020-01-21 10:20:45.394 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: isPlaying [eventTime=7.49, mediaPos=60.04, window=0, period=0, false]
2020-01-21 10:20:45.395 26532-26532/com.google.android.exoplayer2.demo D/EventLogger: seekProcessed [eventTime=7.49, mediaPos=60.04, window=0, period=0]
Contributor guide
Assessment
This issue has not been assessed yet.