Commit 17014e62 by olly Committed by Oliver Woodman

Fix concat media source premature listener invocation

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128987095
parent c1729b64
...@@ -45,6 +45,12 @@ public final class ConcatenatingMediaSource implements MediaSource { ...@@ -45,6 +45,12 @@ public final class ConcatenatingMediaSource implements MediaSource {
@Override @Override
public void onTimelineChanged(Timeline timeline) { public void onTimelineChanged(Timeline timeline) {
timelines[index] = timeline; timelines[index] = timeline;
for (int i = 0; i < timelines.length; i++) {
if (timelines[i] == null) {
// Don't invoke the listener until all sources have timelines.
return;
}
}
ConcatenatingMediaSource.this.timeline = new ConcatenatedTimeline(timelines.clone()); ConcatenatingMediaSource.this.timeline = new ConcatenatedTimeline(timelines.clone());
listener.onTimelineChanged(ConcatenatingMediaSource.this.timeline); listener.onTimelineChanged(ConcatenatingMediaSource.this.timeline);
} }
...@@ -105,10 +111,8 @@ public final class ConcatenatingMediaSource implements MediaSource { ...@@ -105,10 +111,8 @@ public final class ConcatenatingMediaSource implements MediaSource {
int[] sourceOffsets = new int[timelines.length]; int[] sourceOffsets = new int[timelines.length];
int sourceIndexOffset = 0; int sourceIndexOffset = 0;
for (int i = 0; i < timelines.length; i++) { for (int i = 0; i < timelines.length; i++) {
Timeline manifest = timelines[i]; int periodCount = timelines[i].getPeriodCount();
int periodCount; if (periodCount == Timeline.UNKNOWN_PERIOD_COUNT) {
if (manifest == null
|| (periodCount = manifest.getPeriodCount()) == Timeline.UNKNOWN_PERIOD_COUNT) {
sourceOffsets = Arrays.copyOf(sourceOffsets, i); sourceOffsets = Arrays.copyOf(sourceOffsets, i);
break; break;
} }
......
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