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

Issue: #9004
PiperOrigin-RevId: 379516815
This commit is contained in:
olly 2021-06-15 18:16:21 +01:00 committed by Ian Baker
parent 08dbfd5c5a
commit c269a62fe0
2 changed files with 13 additions and 1 deletions

View File

@ -19,6 +19,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)).
* UI:
* Add `PendingIntent.FLAG_IMMUTABLE` flag when creating a broadcast intent
in `PlayerNotificationManager`. This is required to avoid an error on

View File

@ -139,12 +139,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