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,8 +238,10 @@ 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);
} finally {
loadControl.unregister(this);
if (loader.isLoading()) { if (loader.isLoading()) {
loader.cancelLoading(); loader.cancelLoading();
} else { } else {
@ -248,6 +250,7 @@ public class ChunkSampleSource implements SampleSource, Loader.Callback {
loadControl.trimAllocator(); loadControl.trimAllocator();
} }
} }
}
@Override @Override
public boolean continueBuffering(long playbackPositionUs) throws IOException { public boolean continueBuffering(long playbackPositionUs) throws IOException {