An audio m3u8 playlist with a different #EXT-X-DISCONTINUITY-SEQUENCE number than the video playlist causes the player to be stuck loading forever.
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-2200042844",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-2200042844",NAME="Originalton",LANGUAGE="mul",URI="https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-2200042844",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/7/7.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-599552640",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/5/5.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-599552640",NAME="Originalton",LANGUAGE="mul",URI="https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/6/6.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-599552640",NAME="Audio-Deskription",LANGUAGE="deu",URI="https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/7/7.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-2200042844",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/8/8.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="T1-599552640",NAME="Untertitel deutsch",CODECS="wvtt",LANGUAGE="deu",DEFAULT=YES,AUTOSELECT=YES,URI="https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/8/8.m3u8"
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-2200042844",SUBTITLES="T1-2200042844",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=671111,AVERAGE-BANDWIDTH=581111,AUDIO="A1.1+A2.1+A3.1-599552640",SUBTITLES="T1-599552640",FRAME-RATE=25.000,RESOLUTION=480x270
https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/1/1.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-2200042844",SUBTITLES="T1-2200042844",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=1173371,AVERAGE-BANDWIDTH=969371,AUDIO="A1.1+A2.1+A3.1-599552640",SUBTITLES="T1-599552640",FRAME-RATE=25.000,RESOLUTION=640x360
https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/2/2.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-2200042844",SUBTITLES="T1-2200042844",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",BANDWIDTH=2257198,AVERAGE-BANDWIDTH=1807198,AUDIO="A1.1+A2.1+A3.1-599552640",SUBTITLES="T1-599552640",FRAME-RATE=25.000,RESOLUTION=960x540
https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/3/3.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-2200042844",SUBTITLES="T1-2200042844",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-16.akamaized.net/hls/live/2016499/de/d9aea4455a687fac4d3b06d52e285ad2/4/4.m3u8
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-599552640",SUBTITLES="T1-599552640",FRAME-RATE=50.000,RESOLUTION=1280x720
https://zdf-hls-16.akamaized.net/hls/live/2016499-b/de/d9aea4455a687fac4d3b06d52e285ad2/4/4.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:576445
#EXT-X-DISCONTINUITY-SEQUENCE:26
#EXT-X-PROGRAM-DATE-TIME:2021-09-29T14:45:30Z
#EXTINF:2.000,
576445.ts
#EXT-X-PROGRAM-DATE-TIME:2021-09-29T14:45:32Z
#EXTINF:2.000,
576446.ts
...
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:576419
#EXT-X-DISCONTINUITY-SEQUENCE:27
#EXT-X-PROGRAM-DATE-TIME:2021-09-29T14:44:38Z
#EXTINF:1.984,
576419.aac
#EXT-X-PROGRAM-DATE-TIME:2021-09-29T14:44:40Z
#EXTINF:2.005,
576420.aac
...
EDIT: The EXT-X-DISCONTINUITY-SEQUENCE for the problematic content is back in sync again after a restart of the stream encoder.
An audio m3u8 playlist with a different #EXT-X-DISCONTINUITY-SEQUENCE number than the video playlist causes the player to be stuck loading forever.
Internally the
HlsMediaChunkfor the audio playlist stays forever intimestampAdjuster.sharedInitializeOrWait(isMasterTimestampSource, startTimeUs);because
isMasterTimestampSourceis false and it expects another thread to initialize thetimestampAdjuster.This appears to never happen, as the other
HlsMediaChunkinstances aquired differentTimestampAdjusterinstances viaTested with exoplayer version 14.1 and 15.1.
Happens on https://zdf-hls-16.akamaized.net/hls/live/2016499/de/high/master.m3u8 which is unfortionately geo locked to germany.
master.m3u8
1.m3u8 (video)
7.m3u8 (audio)
This probably relates to #9203
EDIT: The EXT-X-DISCONTINUITY-SEQUENCE for the problematic content is back in sync again after a restart of the stream encoder.