mirror of
https://github.com/androidx/media.git
synced 2025-05-09 16:40:55 +08:00
Use helper method to disable Renderers.
Removes duplicated code and starts cleaning up handling of media clocks. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=174829840
This commit is contained in:
parent
ea80c3e456
commit
f014b67d3e
@ -718,11 +718,9 @@ import java.io.IOException;
|
||||
if (playingPeriodHolder != newPlayingPeriodHolder
|
||||
|| playingPeriodHolder != readingPeriodHolder) {
|
||||
for (Renderer renderer : enabledRenderers) {
|
||||
renderer.disable();
|
||||
disableRenderer(renderer);
|
||||
}
|
||||
enabledRenderers = new Renderer[0];
|
||||
rendererMediaClock = null;
|
||||
rendererMediaClockSource = null;
|
||||
playingPeriodHolder = null;
|
||||
}
|
||||
|
||||
@ -801,13 +799,10 @@ import java.io.IOException;
|
||||
handler.removeMessages(MSG_DO_SOME_WORK);
|
||||
rebuffering = false;
|
||||
standaloneMediaClock.stop();
|
||||
rendererMediaClock = null;
|
||||
rendererMediaClockSource = null;
|
||||
rendererPositionUs = RENDERER_TIMESTAMP_OFFSET_US;
|
||||
for (Renderer renderer : enabledRenderers) {
|
||||
try {
|
||||
ensureStopped(renderer);
|
||||
renderer.disable();
|
||||
disableRenderer(renderer);
|
||||
} catch (ExoPlaybackException | RuntimeException e) {
|
||||
// There's nothing we can do.
|
||||
Log.e(TAG, "Stop failed.", e);
|
||||
@ -853,6 +848,15 @@ import java.io.IOException;
|
||||
}
|
||||
}
|
||||
|
||||
private void disableRenderer(Renderer renderer) throws ExoPlaybackException {
|
||||
if (renderer == rendererMediaClockSource) {
|
||||
rendererMediaClock = null;
|
||||
rendererMediaClockSource = null;
|
||||
}
|
||||
ensureStopped(renderer);
|
||||
renderer.disable();
|
||||
}
|
||||
|
||||
private void reselectTracksInternal() throws ExoPlaybackException {
|
||||
if (playingPeriodHolder == null) {
|
||||
// We don't have tracks yet, so we don't care.
|
||||
@ -905,12 +909,7 @@ import java.io.IOException;
|
||||
if (rendererWasEnabledFlags[i]) {
|
||||
if (sampleStream != renderer.getStream()) {
|
||||
// We need to disable the renderer.
|
||||
if (renderer == rendererMediaClockSource) {
|
||||
rendererMediaClock = null;
|
||||
rendererMediaClockSource = null;
|
||||
}
|
||||
ensureStopped(renderer);
|
||||
renderer.disable();
|
||||
disableRenderer(renderer);
|
||||
} else if (streamResetFlags[i]) {
|
||||
// The renderer will continue to consume from its current stream, but needs to be reset.
|
||||
renderer.resetPosition(rendererPositionUs);
|
||||
@ -1453,12 +1452,7 @@ import java.io.IOException;
|
||||
// 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 re-enable it as its current stream
|
||||
// is final and it's not reading ahead.
|
||||
if (renderer == rendererMediaClockSource) {
|
||||
rendererMediaClock = null;
|
||||
rendererMediaClockSource = null;
|
||||
}
|
||||
ensureStopped(renderer);
|
||||
renderer.disable();
|
||||
disableRenderer(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user