Audio event consistency cleanup

PiperOrigin-RevId: 321440594
This commit is contained in:
olly 2020-07-15 22:33:41 +01:00 committed by Oliver Woodman
parent cfef1378a7
commit 6b4abf2643
3 changed files with 17 additions and 43 deletions

View file

@ -140,11 +140,9 @@ public interface AudioRendererEventListener {
}
}
/**
* Invokes {@link AudioRendererEventListener#onAudioSinkUnderrun(int, long, long)}.
*/
public void audioTrackUnderrun(final int bufferSize, final long bufferSizeMs,
final long elapsedSinceLastFeedMs) {
/** Invokes {@link AudioRendererEventListener#onAudioSinkUnderrun(int, long, long)}. */
public void underrun(
final int bufferSize, final long bufferSizeMs, final long elapsedSinceLastFeedMs) {
if (handler != null) {
handler.post(
() ->

View file

@ -18,6 +18,7 @@ package com.google.android.exoplayer2.audio;
import android.media.audiofx.Virtualizer;
import android.os.Handler;
import android.os.SystemClock;
import androidx.annotation.CallSuper;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import com.google.android.exoplayer2.BaseRenderer;
@ -295,19 +296,10 @@ public abstract class DecoderAudioRenderer extends BaseRenderer implements Media
}
/** See {@link AudioSink.Listener#onPositionDiscontinuity()}. */
protected void onAudioTrackPositionDiscontinuity() {
// Do nothing.
}
/** See {@link AudioSink.Listener#onUnderrun(int, long, long)}. */
protected void onAudioTrackUnderrun(
int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
// Do nothing.
}
/** See {@link AudioSink.Listener#onSkipSilenceEnabledChanged(boolean)}. */
protected void onAudioTrackSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
// Do nothing.
@CallSuper
protected void onPositionDiscontinuity() {
// We are out of sync so allow currentPositionUs to jump backwards.
allowPositionDiscontinuity = true;
}
/**
@ -686,21 +678,17 @@ public abstract class DecoderAudioRenderer extends BaseRenderer implements Media
@Override
public void onPositionDiscontinuity() {
onAudioTrackPositionDiscontinuity();
// We are out of sync so allow currentPositionUs to jump backwards.
DecoderAudioRenderer.this.allowPositionDiscontinuity = true;
DecoderAudioRenderer.this.onPositionDiscontinuity();
}
@Override
public void onUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
eventDispatcher.audioTrackUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
onAudioTrackUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
eventDispatcher.underrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
}
@Override
public void onSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
eventDispatcher.skipSilenceEnabledChanged(skipSilenceEnabled);
onAudioTrackSkipSilenceEnabledChanged(skipSilenceEnabled);
}
}
}

View file

@ -22,6 +22,7 @@ import android.media.MediaCrypto;
import android.media.MediaFormat;
import android.media.audiofx.Virtualizer;
import android.os.Handler;
import androidx.annotation.CallSuper;
import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlaybackException;
@ -481,19 +482,10 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media
}
/** See {@link AudioSink.Listener#onPositionDiscontinuity()}. */
protected void onAudioTrackPositionDiscontinuity() {
// Do nothing.
}
/** See {@link AudioSink.Listener#onUnderrun(int, long, long)}. */
protected void onAudioTrackUnderrun(
int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
// Do nothing.
}
/** See {@link AudioSink.Listener#onSkipSilenceEnabledChanged(boolean)}. */
protected void onAudioTrackSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
// Do nothing.
@CallSuper
protected void onPositionDiscontinuity() {
// We are out of sync so allow currentPositionUs to jump backwards.
allowPositionDiscontinuity = true;
}
@Override
@ -860,21 +852,17 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media
@Override
public void onPositionDiscontinuity() {
onAudioTrackPositionDiscontinuity();
// We are out of sync so allow currentPositionUs to jump backwards.
MediaCodecAudioRenderer.this.allowPositionDiscontinuity = true;
MediaCodecAudioRenderer.this.onPositionDiscontinuity();
}
@Override
public void onUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
eventDispatcher.audioTrackUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
onAudioTrackUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
eventDispatcher.underrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
}
@Override
public void onSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
eventDispatcher.skipSilenceEnabledChanged(skipSilenceEnabled);
onAudioTrackSkipSilenceEnabledChanged(skipSilenceEnabled);
}
@Override