mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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
|
@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 {
|
||||||
|
|
||||||
// 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) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue