mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Avoid concurrent read/write access to sampleQueues in HlsSampleStreamWrapper
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=177435977
This commit is contained in:
parent
ef8fa28163
commit
ce8736c71a
1 changed files with 10 additions and 1 deletions
|
|
@ -16,12 +16,15 @@
|
||||||
package com.google.android.exoplayer2.source.hls;
|
package com.google.android.exoplayer2.source.hls;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.util.Log;
|
||||||
import com.google.android.exoplayer2.C;
|
import com.google.android.exoplayer2.C;
|
||||||
import com.google.android.exoplayer2.Format;
|
import com.google.android.exoplayer2.Format;
|
||||||
import com.google.android.exoplayer2.FormatHolder;
|
import com.google.android.exoplayer2.FormatHolder;
|
||||||
import com.google.android.exoplayer2.decoder.DecoderInputBuffer;
|
import com.google.android.exoplayer2.decoder.DecoderInputBuffer;
|
||||||
|
import com.google.android.exoplayer2.extractor.DummyTrackOutput;
|
||||||
import com.google.android.exoplayer2.extractor.ExtractorOutput;
|
import com.google.android.exoplayer2.extractor.ExtractorOutput;
|
||||||
import com.google.android.exoplayer2.extractor.SeekMap;
|
import com.google.android.exoplayer2.extractor.SeekMap;
|
||||||
|
import com.google.android.exoplayer2.extractor.TrackOutput;
|
||||||
import com.google.android.exoplayer2.source.AdaptiveMediaSourceEventListener.EventDispatcher;
|
import com.google.android.exoplayer2.source.AdaptiveMediaSourceEventListener.EventDispatcher;
|
||||||
import com.google.android.exoplayer2.source.SampleQueue;
|
import com.google.android.exoplayer2.source.SampleQueue;
|
||||||
import com.google.android.exoplayer2.source.SampleQueue.UpstreamFormatChangedListener;
|
import com.google.android.exoplayer2.source.SampleQueue.UpstreamFormatChangedListener;
|
||||||
|
|
@ -67,6 +70,8 @@ import java.util.Arrays;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final String TAG = "HlsSampleStreamWrapper";
|
||||||
|
|
||||||
private static final int PRIMARY_TYPE_NONE = 0;
|
private static final int PRIMARY_TYPE_NONE = 0;
|
||||||
private static final int PRIMARY_TYPE_TEXT = 1;
|
private static final int PRIMARY_TYPE_TEXT = 1;
|
||||||
private static final int PRIMARY_TYPE_AUDIO = 2;
|
private static final int PRIMARY_TYPE_AUDIO = 2;
|
||||||
|
|
@ -588,13 +593,17 @@ import java.util.Arrays;
|
||||||
// ExtractorOutput implementation. Called by the loading thread.
|
// ExtractorOutput implementation. Called by the loading thread.
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SampleQueue track(int id, int type) {
|
public TrackOutput track(int id, int type) {
|
||||||
int trackCount = sampleQueues.length;
|
int trackCount = sampleQueues.length;
|
||||||
for (int i = 0; i < trackCount; i++) {
|
for (int i = 0; i < trackCount; i++) {
|
||||||
if (sampleQueueTrackIds[i] == id) {
|
if (sampleQueueTrackIds[i] == id) {
|
||||||
return sampleQueues[i];
|
return sampleQueues[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sampleQueuesBuilt) {
|
||||||
|
Log.w(TAG, "Unmapped track with id " + id + " of type " + type);
|
||||||
|
return new DummyTrackOutput();
|
||||||
|
}
|
||||||
SampleQueue trackOutput = new SampleQueue(allocator);
|
SampleQueue trackOutput = new SampleQueue(allocator);
|
||||||
trackOutput.setSampleOffsetUs(sampleOffsetUs);
|
trackOutput.setSampleOffsetUs(sampleOffsetUs);
|
||||||
trackOutput.setUpstreamFormatChangeListener(this);
|
trackOutput.setUpstreamFormatChangeListener(this);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue