mirror of
https://github.com/samsonjs/media.git
synced 2026-04-04 11:05:47 +00:00
Separate DefaultAudioSink state flush into helper method.
PiperOrigin-RevId: 319222833
This commit is contained in:
parent
48f2b44936
commit
729ec8a1c6
1 changed files with 29 additions and 24 deletions
|
|
@ -1056,30 +1056,8 @@ public final class DefaultAudioSink implements AudioSink {
|
|||
@Override
|
||||
public void flush() {
|
||||
if (isInitialized()) {
|
||||
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();
|
||||
trimmingAudioProcessor.resetTrimmedFrameCount();
|
||||
flushAudioProcessors();
|
||||
inputBuffer = null;
|
||||
inputBufferAccessUnitCount = 0;
|
||||
outputBuffer = null;
|
||||
stoppedAudioTrack = false;
|
||||
handledEndOfStream = false;
|
||||
drainingAudioProcessorIndex = C.INDEX_UNSET;
|
||||
avSyncHeader = null;
|
||||
bytesUntilNextAvSync = 0;
|
||||
resetSinkStateForFlush();
|
||||
|
||||
if (audioTrackPositionTracker.isPlaying()) {
|
||||
audioTrack.pause();
|
||||
}
|
||||
|
|
@ -1125,6 +1103,33 @@ public final class DefaultAudioSink implements AudioSink {
|
|||
|
||||
// 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}. */
|
||||
private void releaseKeepSessionIdAudioTrack() {
|
||||
if (keepSessionIdAudioTrack == null) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue