mirror of
https://github.com/samsonjs/media.git
synced 2026-04-09 11:55:46 +00:00
Do not reset period uid when DashMediaSource is released
When the source is prepared again after stop, the period uid
is calculated by subtracting the `firstPeriodId` from the
period uid that is passed in to `createPeriod`. When this
happens after stop, the uid from the old period uid that
is still stored and has the value of the last played uid.
Hence the `firstPeriodId` must not be reset when released.
Issue: google/ExoPlayer#10838
PiperOrigin-RevId: 539028570
(cherry picked from commit 319854d624)
This commit is contained in:
parent
f1529d63a1
commit
1c8c563263
2 changed files with 4 additions and 2 deletions
|
|
@ -81,6 +81,9 @@
|
|||
* Cronet Extension:
|
||||
* RTMP Extension:
|
||||
* DASH Extension:
|
||||
* Fix a bug where re-preparing a multi-period live Dash media source
|
||||
produced a `IndexOutOfBoundsException`
|
||||
([#10838](https://github.com/google/ExoPlayer/issues/10838)).
|
||||
* HLS Extension:
|
||||
* Smooth Streaming Extension:
|
||||
* RTSP Extension:
|
||||
|
|
|
|||
|
|
@ -525,7 +525,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||
DrmSessionEventListener.EventDispatcher drmEventDispatcher = createDrmEventDispatcher(id);
|
||||
DashMediaPeriod mediaPeriod =
|
||||
new DashMediaPeriod(
|
||||
firstPeriodId + periodIndex,
|
||||
/* id= */ firstPeriodId + periodIndex,
|
||||
manifest,
|
||||
baseUrlExclusionList,
|
||||
periodIndex,
|
||||
|
|
@ -573,7 +573,6 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||
elapsedRealtimeOffsetMs = C.TIME_UNSET;
|
||||
staleManifestReloadAttempt = 0;
|
||||
expiredManifestPublishTimeUs = C.TIME_UNSET;
|
||||
firstPeriodId = 0;
|
||||
periodsById.clear();
|
||||
baseUrlExclusionList.reset();
|
||||
drmSessionManager.release();
|
||||
|
|
|
|||
Loading…
Reference in a new issue