Commit 04968a6d by andrewlewis Committed by Oliver Woodman

Fix condition for re-enabling renderers to handle reading ahead.

Issue: #2252

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143433510
parent faff5ec9
...@@ -1319,7 +1319,6 @@ import java.io.IOException; ...@@ -1319,7 +1319,6 @@ import java.io.IOException;
return; return;
} }
playingPeriodHolder = periodHolder;
int enabledRendererCount = 0; int enabledRendererCount = 0;
boolean[] rendererWasEnabledFlags = new boolean[renderers.length]; boolean[] rendererWasEnabledFlags = new boolean[renderers.length];
for (int i = 0; i < renderers.length; i++) { for (int i = 0; i < renderers.length; i++) {
...@@ -1329,10 +1328,12 @@ import java.io.IOException; ...@@ -1329,10 +1328,12 @@ import java.io.IOException;
if (newSelection != null) { if (newSelection != null) {
enabledRendererCount++; enabledRendererCount++;
} }
if (rendererWasEnabledFlags[i] && (newSelection == null || renderer.isCurrentStreamFinal())) { if (rendererWasEnabledFlags[i] && (newSelection == null
|| (renderer.isCurrentStreamFinal()
&& renderer.getStream() == playingPeriodHolder.sampleStreams[i]))) {
// The renderer should be disabled before playing the next period, either because it's not // The renderer should be disabled before playing the next period, either because it's not
// needed to play the next period, or because we need to disable and re-enable it because // needed to play the next period, or because we need to re-enable it as its current stream
// the renderer thinks that its current stream is final. // is final and it's not reading ahead.
if (renderer == rendererMediaClockSource) { if (renderer == rendererMediaClockSource) {
// Sync standaloneMediaClock so that it can take over timing responsibilities. // Sync standaloneMediaClock so that it can take over timing responsibilities.
standaloneMediaClock.setPositionUs(rendererMediaClock.getPositionUs()); standaloneMediaClock.setPositionUs(rendererMediaClock.getPositionUs());
...@@ -1344,6 +1345,7 @@ import java.io.IOException; ...@@ -1344,6 +1345,7 @@ import java.io.IOException;
} }
} }
playingPeriodHolder = periodHolder;
eventHandler.obtainMessage(MSG_TRACKS_CHANGED, periodHolder.getTrackInfo()).sendToTarget(); eventHandler.obtainMessage(MSG_TRACKS_CHANGED, periodHolder.getTrackInfo()).sendToTarget();
enableRenderers(rendererWasEnabledFlags, enabledRendererCount); enableRenderers(rendererWasEnabledFlags, enabledRendererCount);
} }
......
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