mirror of
https://github.com/samsonjs/media.git
synced 2026-04-14 12:45:47 +00:00
Fix race condition in DownloadHelper
Sending MESSAGE_PREPARE_SOURCE should happen last in the constructor. It was previously happening before initialization finished (and in particular before pendingMediaPeriods was instantiated). Issue: #6146 PiperOrigin-RevId: 257158275
This commit is contained in:
parent
92fb654ab6
commit
b3d258b6cf
1 changed files with 3 additions and 3 deletions
|
|
@ -809,10 +809,10 @@ public final class DownloadHelper {
|
|||
private final MediaSource mediaSource;
|
||||
private final DownloadHelper downloadHelper;
|
||||
private final Allocator allocator;
|
||||
private final ArrayList<MediaPeriod> pendingMediaPeriods;
|
||||
private final Handler downloadHelperHandler;
|
||||
private final HandlerThread mediaSourceThread;
|
||||
private final Handler mediaSourceHandler;
|
||||
private final Handler downloadHelperHandler;
|
||||
private final ArrayList<MediaPeriod> pendingMediaPeriods;
|
||||
|
||||
@Nullable public Object manifest;
|
||||
public @MonotonicNonNull Timeline timeline;
|
||||
|
|
@ -824,6 +824,7 @@ public final class DownloadHelper {
|
|||
this.mediaSource = mediaSource;
|
||||
this.downloadHelper = downloadHelper;
|
||||
allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
|
||||
pendingMediaPeriods = new ArrayList<>();
|
||||
@SuppressWarnings("methodref.receiver.bound.invalid")
|
||||
Handler downloadThreadHandler = Util.createHandler(this::handleDownloadHelperCallbackMessage);
|
||||
this.downloadHelperHandler = downloadThreadHandler;
|
||||
|
|
@ -831,7 +832,6 @@ public final class DownloadHelper {
|
|||
mediaSourceThread.start();
|
||||
mediaSourceHandler = Util.createHandler(mediaSourceThread.getLooper(), /* callback= */ this);
|
||||
mediaSourceHandler.sendEmptyMessage(MESSAGE_PREPARE_SOURCE);
|
||||
pendingMediaPeriods = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void release() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue