Commit a6640ae3 by olly Committed by Oliver Woodman

Stop merging methods through AnalyticsCollector/AnalyticsListener

PiperOrigin-RevId: 321595514
parent 3b26c218
......@@ -2224,10 +2224,9 @@ public class SimpleExoPlayer extends BasePlayer
}
@Override
public void onAudioSinkUnderrun(
int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
public void onAudioUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
for (AudioRendererEventListener audioDebugListener : audioDebugListeners) {
audioDebugListener.onAudioSinkUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
audioDebugListener.onAudioUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs);
}
}
......
......@@ -172,34 +172,40 @@ public class AnalyticsCollector
// AudioRendererEventListener implementation.
@SuppressWarnings("deprecation")
@Override
public final void onAudioEnabled(DecoderCounters counters) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onAudioEnabled(eventTime, counters);
listener.onDecoderEnabled(eventTime, C.TRACK_TYPE_AUDIO, counters);
}
}
@SuppressWarnings("deprecation")
@Override
public final void onAudioDecoderInitialized(
String decoderName, long initializedTimestampMs, long initializationDurationMs) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onAudioDecoderInitialized(eventTime, decoderName, initializationDurationMs);
listener.onDecoderInitialized(
eventTime, C.TRACK_TYPE_AUDIO, decoderName, initializationDurationMs);
}
}
@SuppressWarnings("deprecation")
@Override
public final void onAudioInputFormatChanged(Format format) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onAudioInputFormatChanged(eventTime, format);
listener.onDecoderInputFormatChanged(eventTime, C.TRACK_TYPE_AUDIO, format);
}
}
@Override
public final void onAudioSinkUnderrun(
public final void onAudioUnderrun(
int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
......@@ -207,10 +213,12 @@ public class AnalyticsCollector
}
}
@SuppressWarnings("deprecation")
@Override
public final void onAudioDisabled(DecoderCounters counters) {
EventTime eventTime = generatePlayingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onAudioDisabled(eventTime, counters);
listener.onDecoderDisabled(eventTime, C.TRACK_TYPE_AUDIO, counters);
}
}
......@@ -251,28 +259,34 @@ public class AnalyticsCollector
// VideoRendererEventListener implementation.
@SuppressWarnings("deprecation")
@Override
public final void onVideoEnabled(DecoderCounters counters) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onVideoEnabled(eventTime, counters);
listener.onDecoderEnabled(eventTime, C.TRACK_TYPE_VIDEO, counters);
}
}
@SuppressWarnings("deprecation")
@Override
public final void onVideoDecoderInitialized(
String decoderName, long initializedTimestampMs, long initializationDurationMs) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onVideoDecoderInitialized(eventTime, decoderName, initializationDurationMs);
listener.onDecoderInitialized(
eventTime, C.TRACK_TYPE_VIDEO, decoderName, initializationDurationMs);
}
}
@SuppressWarnings("deprecation")
@Override
public final void onVideoInputFormatChanged(Format format) {
EventTime eventTime = generateReadingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onVideoInputFormatChanged(eventTime, format);
listener.onDecoderInputFormatChanged(eventTime, C.TRACK_TYPE_VIDEO, format);
}
}
......@@ -285,10 +299,12 @@ public class AnalyticsCollector
}
}
@SuppressWarnings("deprecation")
@Override
public final void onVideoDisabled(DecoderCounters counters) {
EventTime eventTime = generatePlayingMediaPeriodEventTime();
for (AnalyticsListener listener : listeners) {
listener.onVideoDisabled(eventTime, counters);
listener.onDecoderDisabled(eventTime, C.TRACK_TYPE_VIDEO, counters);
}
}
......
......@@ -66,16 +66,14 @@ public interface AudioRendererEventListener {
default void onAudioInputFormatChanged(Format format) {}
/**
* Called when an {@link AudioSink} underrun occurs.
* Called when an audio underrun occurs.
*
* @param bufferSize The size of the {@link AudioSink}'s buffer, in bytes.
* @param bufferSizeMs The size of the {@link AudioSink}'s buffer, in milliseconds, if it is
* configured for PCM output. {@link C#TIME_UNSET} if it is configured for passthrough output,
* as the buffered media can have a variable bitrate so the duration may be unknown.
* @param elapsedSinceLastFeedMs The time since the {@link AudioSink} was last fed data.
* @param bufferSize The size of the audio output buffer, in bytes.
* @param bufferSizeMs The size of the audio output buffer, in milliseconds, if it contains PCM
* encoded audio. {@link C#TIME_UNSET} if the output buffer contains non-PCM encoded audio.
* @param elapsedSinceLastFeedMs The time since audio was last written to the output buffer.
*/
default void onAudioSinkUnderrun(
int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {}
default void onAudioUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {}
/**
* Called when the renderer is disabled.
......@@ -140,14 +138,14 @@ public interface AudioRendererEventListener {
}
}
/** Invokes {@link AudioRendererEventListener#onAudioSinkUnderrun(int, long, long)}. */
/** Invokes {@link AudioRendererEventListener#onAudioUnderrun(int, long, long)}. */
public void underrun(
final int bufferSize, final long bufferSizeMs, final long elapsedSinceLastFeedMs) {
if (handler != null) {
handler.post(
() ->
castNonNull(listener)
.onAudioSinkUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs));
.onAudioUnderrun(bufferSize, bufferSizeMs, elapsedSinceLastFeedMs));
}
}
......
......@@ -301,8 +301,34 @@ public class EventLogger implements AnalyticsListener {
}
@Override
public void onDecoderEnabled(EventTime eventTime, int trackType, DecoderCounters counters) {
logd(eventTime, "decoderEnabled", Util.getTrackTypeString(trackType));
public void onAudioEnabled(EventTime eventTime, DecoderCounters counters) {
logd(eventTime, "audioEnabled");
}
@Override
public void onAudioDecoderInitialized(
EventTime eventTime, String decoderName, long initializationDurationMs) {
logd(eventTime, "audioDecoderInitialized", decoderName);
}
@Override
public void onAudioInputFormatChanged(EventTime eventTime, Format format) {
logd(eventTime, "audioInputFormat", Format.toLogString(format));
}
@Override
public void onAudioUnderrun(
EventTime eventTime, int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
loge(
eventTime,
"audioTrackUnderrun",
bufferSize + ", " + bufferSizeMs + ", " + elapsedSinceLastFeedMs + "]",
/* throwable= */ null);
}
@Override
public void onAudioDisabled(EventTime eventTime, DecoderCounters counters) {
logd(eventTime, "audioDisabled");
}
@Override
......@@ -335,37 +361,34 @@ public class EventLogger implements AnalyticsListener {
}
@Override
public void onDecoderInitialized(
EventTime eventTime, int trackType, String decoderName, long initializationDurationMs) {
logd(eventTime, "decoderInitialized", Util.getTrackTypeString(trackType) + ", " + decoderName);
public void onVideoEnabled(EventTime eventTime, DecoderCounters counters) {
logd(eventTime, "videoEnabled");
}
@Override
public void onDecoderInputFormatChanged(EventTime eventTime, int trackType, Format format) {
logd(
eventTime,
"decoderInputFormat",
Util.getTrackTypeString(trackType) + ", " + Format.toLogString(format));
public void onVideoDecoderInitialized(
EventTime eventTime, String decoderName, long initializationDurationMs) {
logd(eventTime, "videoDecoderInitialized", decoderName);
}
@Override
public void onDecoderDisabled(EventTime eventTime, int trackType, DecoderCounters counters) {
logd(eventTime, "decoderDisabled", Util.getTrackTypeString(trackType));
public void onVideoInputFormatChanged(EventTime eventTime, Format format) {
logd(eventTime, "videoInputFormat", Format.toLogString(format));
}
@Override
public void onAudioUnderrun(
EventTime eventTime, int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
loge(
eventTime,
"audioTrackUnderrun",
bufferSize + ", " + bufferSizeMs + ", " + elapsedSinceLastFeedMs + "]",
null);
public void onDroppedVideoFrames(EventTime eventTime, int count, long elapsedMs) {
logd(eventTime, "droppedFrames", Integer.toString(count));
}
@Override
public void onDroppedVideoFrames(EventTime eventTime, int count, long elapsedMs) {
logd(eventTime, "droppedFrames", Integer.toString(count));
public void onVideoDisabled(EventTime eventTime, DecoderCounters counters) {
logd(eventTime, "videoDisabled");
}
@Override
public void onRenderedFirstFrame(EventTime eventTime, @Nullable Surface surface) {
logd(eventTime, "renderedFirstFrame", String.valueOf(surface));
}
@Override
......@@ -379,11 +402,6 @@ public class EventLogger implements AnalyticsListener {
}
@Override
public void onRenderedFirstFrame(EventTime eventTime, @Nullable Surface surface) {
logd(eventTime, "renderedFirstFrame", String.valueOf(surface));
}
@Override
public void onMediaPeriodCreated(EventTime eventTime) {
logd(eventTime, "mediaPeriodCreated");
}
......
......@@ -51,8 +51,8 @@ public interface VideoListener {
default void onSurfaceSizeChanged(int width, int height) {}
/**
* Called when a frame is rendered for the first time since setting the surface, and when a frame
* is rendered for the first time since the renderer was reset.
* Called when a frame is rendered for the first time since setting the surface, or since the
* renderer was reset, or since the stream being rendered was changed.
*/
default void onRenderedFirstFrame() {}
}
......@@ -114,8 +114,8 @@ public interface VideoRendererEventListener {
int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {}
/**
* Called when a frame is rendered for the first time since setting the surface, and when a frame
* is rendered for the first time since the renderer was reset.
* Called when a frame is rendered for the first time since setting the surface, or since the
* renderer was reset, or since the stream being rendered was changed.
*
* @param surface The {@link Surface} to which a first frame has been rendered, or {@code null} if
* the renderer renders to something that isn't a {@link Surface}.
......
......@@ -22,7 +22,6 @@ import android.os.SystemClock;
import android.view.Surface;
import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer;
......@@ -209,13 +208,13 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
}
@Override
public void onDecoderDisabled(
EventTime eventTime, int trackType, DecoderCounters decoderCounters) {
if (trackType == C.TRACK_TYPE_AUDIO) {
audioDecoderCounters.merge(decoderCounters);
} else if (trackType == C.TRACK_TYPE_VIDEO) {
videoDecoderCounters.merge(decoderCounters);
}
public void onAudioDisabled(EventTime eventTime, DecoderCounters decoderCounters) {
audioDecoderCounters.merge(decoderCounters);
}
@Override
public void onVideoDisabled(EventTime eventTime, DecoderCounters decoderCounters) {
videoDecoderCounters.merge(decoderCounters);
}
// Internal logic
......
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