Commit 7fb296da by tonihei Committed by Oliver Woodman

Initialize sample streams in FakeAdaptiveMediaPeriod.

This prevents NPE when release or stop is called before
tracks have been selected.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=179911907
parent ec71c05e
......@@ -44,13 +44,18 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
private ChunkSampleStream<FakeChunkSource>[] sampleStreams;
private SequenceableLoader sequenceableLoader;
public FakeAdaptiveMediaPeriod(TrackGroupArray trackGroupArray, EventDispatcher eventDispatcher,
Allocator allocator, FakeChunkSource.Factory chunkSourceFactory, long durationUs) {
public FakeAdaptiveMediaPeriod(
TrackGroupArray trackGroupArray,
EventDispatcher eventDispatcher,
Allocator allocator,
FakeChunkSource.Factory chunkSourceFactory,
long durationUs) {
super(trackGroupArray);
this.eventDispatcher = eventDispatcher;
this.allocator = allocator;
this.chunkSourceFactory = chunkSourceFactory;
this.durationUs = durationUs;
this.sampleStreams = newSampleStreamArray(0);
}
@Override
......@@ -62,13 +67,12 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
}
@Override
public void prepare(Callback callback, long positionUs) {
public synchronized void prepare(Callback callback, long positionUs) {
super.prepare(callback, positionUs);
this.callback = callback;
}
@Override
@SuppressWarnings("unchecked")
public long selectTracks(TrackSelection[] selections, boolean[] mayRetainStreamFlags,
SampleStream[] streams, boolean[] streamResetFlags, long positionUs) {
long returnPositionUs = super.selectTracks(selections, mayRetainStreamFlags, streams,
......@@ -79,7 +83,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
validStreams.add((ChunkSampleStream<FakeChunkSource>) stream);
}
}
this.sampleStreams = validStreams.toArray(new ChunkSampleStream[validStreams.size()]);
this.sampleStreams = validStreams.toArray(newSampleStreamArray(validStreams.size()));
this.sequenceableLoader = new CompositeSequenceableLoader(sampleStreams);
return returnPositionUs;
}
......@@ -131,4 +135,8 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
callback.onContinueLoadingRequested(this);
}
@SuppressWarnings("unchecked")
private static ChunkSampleStream<FakeChunkSource>[] newSampleStreamArray(int length) {
return new ChunkSampleStream[length];
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment