Tweak stop/disable cycles.

This commit is contained in:
ojw28 2014-09-25 20:13:40 +01:00
parent fc230733ae
commit 4adf8f77f4
3 changed files with 19 additions and 13 deletions

View File

@ -417,11 +417,11 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer {
@Override @Override
protected void onStopped() { protected void onStopped() {
super.onStopped();
if (audioTrack != null) { if (audioTrack != null) {
resetSyncParams(); resetSyncParams();
audioTrack.pause(); audioTrack.pause();
} }
super.onStopped();
} }
@Override @Override
@ -563,9 +563,12 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer {
@Override @Override
protected void onDisabled() { protected void onDisabled() {
super.onDisabled();
releaseAudioTrack();
audioSessionId = 0; audioSessionId = 0;
try {
releaseAudioTrack();
} finally {
super.onDisabled();
}
} }
@Override @Override

View File

@ -269,20 +269,20 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
@Override @Override
protected void onStopped() { protected void onStopped() {
super.onStopped();
joiningDeadlineUs = -1; joiningDeadlineUs = -1;
notifyAndResetDroppedFrameCount(); notifyAndResetDroppedFrameCount();
super.onStopped();
} }
@Override @Override
public void onDisabled() { public void onDisabled() {
super.onDisabled();
currentWidth = -1; currentWidth = -1;
currentHeight = -1; currentHeight = -1;
currentPixelWidthHeightRatio = -1; currentPixelWidthHeightRatio = -1;
lastReportedWidth = -1; lastReportedWidth = -1;
lastReportedHeight = -1; lastReportedHeight = -1;
lastReportedPixelWidthHeightRatio = -1; lastReportedPixelWidthHeightRatio = -1;
super.onDisabled();
} }
@Override @Override

View File

@ -238,14 +238,17 @@ public class ChunkSampleSource implements SampleSource, Loader.Callback {
Assertions.checkState(track == 0); Assertions.checkState(track == 0);
pendingDiscontinuity = false; pendingDiscontinuity = false;
state = STATE_PREPARED; state = STATE_PREPARED;
loadControl.unregister(this); try {
chunkSource.disable(mediaChunks); chunkSource.disable(mediaChunks);
if (loader.isLoading()) { } finally {
loader.cancelLoading(); loadControl.unregister(this);
} else { if (loader.isLoading()) {
clearMediaChunks(); loader.cancelLoading();
clearCurrentLoadable(); } else {
loadControl.trimAllocator(); clearMediaChunks();
clearCurrentLoadable();
loadControl.trimAllocator();
}
} }
} }