HLS: Fix issue where new init segment would not be loaded

Issue: #9004
#minor-release
PiperOrigin-RevId: 379516815
This commit is contained in:
olly 2021-06-15 18:16:21 +01:00 committed by Oliver Woodman
parent d68dba6e34
commit 2536222fbd
2 changed files with 13 additions and 1 deletions

View File

@ -58,6 +58,11 @@
is set incorrectly
([#4083](https://github.com/google/ExoPlayer/issues/4083)). Such content
is malformed and should be re-encoded.
* HLS:
* Fix issue where a new initialization segment, as specified by an
`EXT-X-MAP` tag in a media playlist, would not be loaded when
encountered during playback
([#9004](https://github.com/google/ExoPlayer/issues/9004)).
* Ad playback:
* Support changing ad break positions in the player logic
([#5067](https://github.com/google/ExoPlayer/issues/5067).

View File

@ -137,12 +137,19 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
ParsableByteArray scratchId3Data;
if (previousChunk != null) {
boolean isSameInitData =
initDataSpec == previousChunk.initDataSpec
|| (initDataSpec != null
&& previousChunk.initDataSpec != null
&& initDataSpec.uri.equals(previousChunk.initDataSpec.uri)
&& initDataSpec.position == previousChunk.initDataSpec.position);
boolean isFollowingChunk =
playlistUrl.equals(previousChunk.playlistUrl) && previousChunk.loadCompleted;
id3Decoder = previousChunk.id3Decoder;
scratchId3Data = previousChunk.scratchId3Data;
previousExtractor =
isFollowingChunk
isSameInitData
&& isFollowingChunk
&& !previousChunk.extractorInvalidated
&& previousChunk.discontinuitySequenceNumber == discontinuitySequenceNumber
? previousChunk.extractor