Rename TrackRenderer.reset to TrackRenderer.onReset.

This allows the TrackRenderer superclass to do things when the renderer is
reset, and makes resetting consistent with other 'events' on renderers.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123974633
This commit is contained in:
andrewlewis 2016-06-03 09:16:59 -07:00 committed by Oliver Woodman
parent ff745ac444
commit a100175b72
8 changed files with 62 additions and 51 deletions

View file

@ -326,7 +326,13 @@ public final class LibvpxVideoTrackRenderer extends TrackRenderer {
} }
@Override @Override
protected void reset(long positionUs) { protected void onEnabled(boolean joining) throws ExoPlaybackException {
codecCounters.reset();
eventDispatcher.enabled(codecCounters);
}
@Override
protected void onReset(long positionUs) {
inputStreamEnded = false; inputStreamEnded = false;
outputStreamEnded = false; outputStreamEnded = false;
renderedFirstFrame = false; renderedFirstFrame = false;
@ -336,12 +342,6 @@ public final class LibvpxVideoTrackRenderer extends TrackRenderer {
} }
} }
@Override
protected void onEnabled(boolean joining) throws ExoPlaybackException {
codecCounters.reset();
eventDispatcher.enabled(codecCounters);
}
@Override @Override
protected void onStarted() { protected void onStarted() {
droppedFrameCount = 0; droppedFrameCount = 0;

View file

@ -261,6 +261,14 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer implem
super.onEnabled(joining); super.onEnabled(joining);
} }
@Override
protected void onReset(long positionUs) throws ExoPlaybackException {
super.onReset(positionUs);
audioTrack.reset();
currentPositionUs = positionUs;
allowPositionDiscontinuity = true;
}
@Override @Override
protected void onStarted() { protected void onStarted() {
super.onStarted(); super.onStarted();
@ -305,14 +313,6 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer implem
return currentPositionUs; return currentPositionUs;
} }
@Override
protected void reset(long positionUs) throws ExoPlaybackException {
super.reset(positionUs);
audioTrack.reset();
currentPositionUs = positionUs;
allowPositionDiscontinuity = true;
}
@Override @Override
protected boolean processOutputBuffer(long positionUs, long elapsedRealtimeUs, MediaCodec codec, protected boolean processOutputBuffer(long positionUs, long elapsedRealtimeUs, MediaCodec codec,
ByteBuffer buffer, int bufferIndex, int bufferFlags, long bufferPresentationTimeUs, ByteBuffer buffer, int bufferIndex, int bufferFlags, long bufferPresentationTimeUs,

View file

@ -340,6 +340,15 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer {
return codec == null && format != null; return codec == null && format != null;
} }
@Override
protected void onReset(long positionUs) throws ExoPlaybackException {
inputStreamEnded = false;
outputStreamEnded = false;
if (codec != null) {
flushCodec();
}
}
@Override @Override
protected void onDisabled() { protected void onDisabled() {
format = null; format = null;
@ -391,15 +400,6 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer {
} }
} }
@Override
protected void reset(long positionUs) throws ExoPlaybackException {
inputStreamEnded = false;
outputStreamEnded = false;
if (codec != null) {
flushCodec();
}
}
@Override @Override
protected void onStarted() { protected void onStarted() {
// Do nothing. Overridden to remove throws clause. // Do nothing. Overridden to remove throws clause.

View file

@ -236,8 +236,8 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
} }
@Override @Override
protected void reset(long positionUs) throws ExoPlaybackException { protected void onReset(long positionUs) throws ExoPlaybackException {
super.reset(positionUs); super.onReset(positionUs);
renderedFirstFrame = false; renderedFirstFrame = false;
consecutiveDroppedFrameCount = 0; consecutiveDroppedFrameCount = 0;
joiningDeadlineMs = -1; joiningDeadlineMs = -1;

View file

@ -216,6 +216,28 @@ public abstract class TrackRenderer implements ExoPlayerComponent {
// Do nothing. // Do nothing.
} }
/**
* Called when a reset is encountered, and also when the renderer is enabled.
*
* @param positionUs The playback position in microseconds.
* @throws ExoPlaybackException If an error occurs handling the reset.
*/
/* package */ final void reset(long positionUs) throws ExoPlaybackException {
onReset(positionUs);
}
/**
* Called when a reset is encountered, and also when the renderer is enabled.
* <p>
* The default implementation is a no-op.
*
* @param positionUs The playback position in microseconds.
* @throws ExoPlaybackException If an error occurs handling the reset.
*/
protected void onReset(long positionUs) throws ExoPlaybackException {
// Do nothing.
}
/** /**
* Starts the renderer, meaning that calls to {@link #render(long, long)} will cause media to be * Starts the renderer, meaning that calls to {@link #render(long, long)} will cause media to be
* rendered. * rendered.
@ -348,17 +370,6 @@ public abstract class TrackRenderer implements ExoPlayerComponent {
*/ */
protected abstract int supportsFormat(Format format) throws ExoPlaybackException; protected abstract int supportsFormat(Format format) throws ExoPlaybackException;
/**
* Invoked when a reset is encountered, and also when the renderer is enabled.
* <p>
* This method may be called when the renderer is in the following states:
* {@link #STATE_ENABLED}, {@link #STATE_STARTED}.
*
* @param positionUs The playback position in microseconds.
* @throws ExoPlaybackException If an error occurs handling the reset.
*/
protected abstract void reset(long positionUs) throws ExoPlaybackException;
/** /**
* Incrementally renders the {@link TrackStream}. * Incrementally renders the {@link TrackStream}.
* <p> * <p>

View file

@ -277,18 +277,6 @@ public abstract class AudioDecoderTrackRenderer extends TrackRenderer implements
return currentPositionUs; return currentPositionUs;
} }
@Override
protected void reset(long positionUs) {
audioTrack.reset();
currentPositionUs = positionUs;
allowPositionDiscontinuity = true;
inputStreamEnded = false;
outputStreamEnded = false;
if (decoder != null) {
flushDecoder();
}
}
/** /**
* Invoked when the audio session id becomes known. Once the id is known it will not change * Invoked when the audio session id becomes known. Once the id is known it will not change
* (and hence this method will not be invoked again) unless the renderer is disabled and then * (and hence this method will not be invoked again) unless the renderer is disabled and then
@ -308,6 +296,18 @@ public abstract class AudioDecoderTrackRenderer extends TrackRenderer implements
eventDispatcher.enabled(codecCounters); eventDispatcher.enabled(codecCounters);
} }
@Override
protected void onReset(long positionUs) {
audioTrack.reset();
currentPositionUs = positionUs;
allowPositionDiscontinuity = true;
inputStreamEnded = false;
outputStreamEnded = false;
if (decoder != null) {
flushDecoder();
}
}
@Override @Override
protected void onStarted() { protected void onStarted() {
audioTrack.play(); audioTrack.play();

View file

@ -98,7 +98,7 @@ public final class MetadataTrackRenderer<T> extends TrackRenderer implements Cal
} }
@Override @Override
protected void reset(long positionUs) { protected void onReset(long positionUs) {
pendingMetadata = null; pendingMetadata = null;
inputStreamEnded = false; inputStreamEnded = false;
} }

View file

@ -112,7 +112,7 @@ public final class TextTrackRenderer extends TrackRenderer implements Callback {
} }
@Override @Override
protected void reset(long positionUs) { protected void onReset(long positionUs) {
inputStreamEnded = false; inputStreamEnded = false;
outputStreamEnded = false; outputStreamEnded = false;
if (subtitle != null) { if (subtitle != null) {