Commit 729ec8a1 by samrobinson Committed by Oliver Woodman

Separate DefaultAudioSink state flush into helper method.

PiperOrigin-RevId: 319222833
parent 48f2b449
...@@ -1056,30 +1056,8 @@ public final class DefaultAudioSink implements AudioSink { ...@@ -1056,30 +1056,8 @@ public final class DefaultAudioSink implements AudioSink {
@Override @Override
public void flush() { public void flush() {
if (isInitialized()) { if (isInitialized()) {
submittedPcmBytes = 0; resetSinkStateForFlush();
submittedEncodedFrames = 0;
writtenPcmBytes = 0;
writtenEncodedFrames = 0;
framesPerEncodedSample = 0;
mediaPositionParameters =
new MediaPositionParameters(
getPlaybackSpeed(),
getSkipSilenceEnabled(),
/* mediaTimeUs= */ 0,
/* audioTrackPositionUs= */ 0);
startMediaTimeUs = 0;
afterDrainParameters = null;
mediaPositionParametersCheckpoints.clear();
trimmingAudioProcessor.resetTrimmedFrameCount();
flushAudioProcessors();
inputBuffer = null;
inputBufferAccessUnitCount = 0;
outputBuffer = null;
stoppedAudioTrack = false;
handledEndOfStream = false;
drainingAudioProcessorIndex = C.INDEX_UNSET;
avSyncHeader = null;
bytesUntilNextAvSync = 0;
if (audioTrackPositionTracker.isPlaying()) { if (audioTrackPositionTracker.isPlaying()) {
audioTrack.pause(); audioTrack.pause();
} }
...@@ -1125,6 +1103,33 @@ public final class DefaultAudioSink implements AudioSink { ...@@ -1125,6 +1103,33 @@ public final class DefaultAudioSink implements AudioSink {
// Internal methods. // Internal methods.
private void resetSinkStateForFlush() {
submittedPcmBytes = 0;
submittedEncodedFrames = 0;
writtenPcmBytes = 0;
writtenEncodedFrames = 0;
framesPerEncodedSample = 0;
mediaPositionParameters =
new MediaPositionParameters(
getPlaybackSpeed(),
getSkipSilenceEnabled(),
/* mediaTimeUs= */ 0,
/* audioTrackPositionUs= */ 0);
startMediaTimeUs = 0;
afterDrainParameters = null;
mediaPositionParametersCheckpoints.clear();
inputBuffer = null;
inputBufferAccessUnitCount = 0;
outputBuffer = null;
stoppedAudioTrack = false;
handledEndOfStream = false;
drainingAudioProcessorIndex = C.INDEX_UNSET;
avSyncHeader = null;
bytesUntilNextAvSync = 0;
trimmingAudioProcessor.resetTrimmedFrameCount();
flushAudioProcessors();
}
/** Releases {@link #keepSessionIdAudioTrack} asynchronously, if it is non-{@code null}. */ /** Releases {@link #keepSessionIdAudioTrack} asynchronously, if it is non-{@code null}. */
private void releaseKeepSessionIdAudioTrack() { private void releaseKeepSessionIdAudioTrack() {
if (keepSessionIdAudioTrack == null) { if (keepSessionIdAudioTrack == null) {
......
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