From 0da7f6ca08d88d07ab5600cb3d38b85058329a57 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 24 Aug 2018 04:44:53 -0700 Subject: [PATCH] Use EventLogger in ExoHostedTest ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=210082909 --- .../android/exoplayer2/util/EventLogger.java | 19 +++- .../exoplayer2/testutil/ExoHostedTest.java | 102 +++--------------- 2 files changed, 32 insertions(+), 89 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java b/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java index 0324630f1f..f9bd139298 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java @@ -44,7 +44,7 @@ import java.util.Locale; /** Logs events from {@link Player} and other core components using {@link Log}. */ public class EventLogger implements AnalyticsListener { - private static final String TAG = "EventLogger"; + private static final String DEFAULT_TAG = "EventLogger"; private static final int MAX_TIMELINE_ITEM_LINES = 3; private static final NumberFormat TIME_FORMAT; static { @@ -55,6 +55,7 @@ public class EventLogger implements AnalyticsListener { } private final @Nullable MappingTrackSelector trackSelector; + private final String tag; private final Timeline.Window window; private final Timeline.Period period; private final long startTimeMs; @@ -66,7 +67,19 @@ public class EventLogger implements AnalyticsListener { * logging of track mapping is not required. */ public EventLogger(@Nullable MappingTrackSelector trackSelector) { + this(trackSelector, DEFAULT_TAG); + } + + /** + * Creates event logger. + * + * @param trackSelector The mapping track selector used by the player. May be null if detailed + * logging of track mapping is not required. + * @param tag The tag used for logging. + */ + public EventLogger(@Nullable MappingTrackSelector trackSelector, String tag) { this.trackSelector = trackSelector; + this.tag = tag; window = new Timeline.Window(); period = new Timeline.Period(); startTimeMs = SystemClock.elapsedRealtime(); @@ -403,7 +416,7 @@ public class EventLogger implements AnalyticsListener { * @param msg The message to log. */ protected void logd(String msg) { - Log.d(TAG, msg); + Log.d(tag, msg); } /** @@ -413,7 +426,7 @@ public class EventLogger implements AnalyticsListener { * @param tr The exception to log. */ protected void loge(String msg, Throwable tr) { - Log.e(TAG, msg, tr); + Log.e(tag, msg, tr); } // Internal methods diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index 3c6478c10a..efee52a472 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -22,17 +22,16 @@ import android.os.Looper; import android.os.SystemClock; import android.util.Log; import android.view.Surface; +import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.DefaultLoadControl; import com.google.android.exoplayer2.DefaultRenderersFactory; import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayerFactory; -import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.analytics.AnalyticsListener; -import com.google.android.exoplayer2.audio.AudioRendererEventListener; import com.google.android.exoplayer2.audio.DefaultAudioSink; import com.google.android.exoplayer2.decoder.DecoderCounters; import com.google.android.exoplayer2.drm.DrmSessionManager; @@ -43,16 +42,12 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.util.Clock; +import com.google.android.exoplayer2.util.EventLogger; import com.google.android.exoplayer2.util.HandlerWrapper; import com.google.android.exoplayer2.util.Util; -import com.google.android.exoplayer2.video.VideoRendererEventListener; /** A {@link HostedTest} for {@link ExoPlayer} playback tests. */ -public abstract class ExoHostedTest - implements Player.EventListener, - HostedTest, - AudioRendererEventListener, - VideoRendererEventListener { +public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { static { // DefaultAudioSink is able to work around spurious timestamps reported by the platform (by @@ -151,12 +146,11 @@ public abstract class ExoHostedTest DrmSessionManager drmSessionManager = buildDrmSessionManager(userAgent); player = buildExoPlayer(host, surface, trackSelector, drmSessionManager); player.prepare(buildSource(host, Util.getUserAgent(host, userAgent))); + player.addAnalyticsListener(this); + player.addAnalyticsListener(new EventLogger(trackSelector, tag)); if (analyticsListener != null) { player.addAnalyticsListener(analyticsListener); } - player.addListener(this); - player.addAudioDebugListener(this); - player.addVideoDebugListener(this); player.setPlayWhenReady(true); actionHandler = Clock.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null); // Schedule any pending actions. @@ -199,10 +193,11 @@ public abstract class ExoHostedTest assertPassed(audioDecoderCounters, videoDecoderCounters); } - // Player.EventListener + // AnalyticsListener @Override - public final void onPlayerStateChanged(boolean playWhenReady, int playbackState) { + public final void onPlayerStateChanged( + EventTime eventTime, boolean playWhenReady, int playbackState) { Log.d(tag, "state [" + playWhenReady + ", " + playbackState + "]"); playerWasPrepared |= playbackState != Player.STATE_IDLE; if (playbackState == Player.STATE_ENDED @@ -219,85 +214,20 @@ public abstract class ExoHostedTest } @Override - public final void onPlayerError(ExoPlaybackException error) { + public final void onPlayerError(EventTime eventTime, ExoPlaybackException error) { playerWasPrepared = true; playerError = error; onPlayerErrorInternal(error); } - // AudioRendererEventListener - @Override - public void onAudioEnabled(DecoderCounters counters) { - Log.d(tag, "audioEnabled"); - } - - @Override - public void onAudioSessionId(int audioSessionId) { - Log.d(tag, "audioSessionId [" + audioSessionId + "]"); - } - - @Override - public void onAudioDecoderInitialized(String decoderName, long elapsedRealtimeMs, - long initializationDurationMs) { - Log.d(tag, "audioDecoderInitialized [" + decoderName + "]"); - } - - @Override - public void onAudioInputFormatChanged(Format format) { - Log.d(tag, "audioFormatChanged [" + Format.toLogString(format) + "]"); - } - - @Override - public void onAudioDisabled(DecoderCounters counters) { - Log.d(tag, "audioDisabled"); - audioDecoderCounters.merge(counters); - } - - @Override - public void onAudioSinkUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) { - Log.e(tag, "audioTrackUnderrun [" + bufferSize + ", " + bufferSizeMs + ", " - + elapsedSinceLastFeedMs + "]", null); - } - - // VideoRendererEventListener - - @Override - public void onVideoEnabled(DecoderCounters counters) { - Log.d(tag, "videoEnabled"); - } - - @Override - public void onVideoDecoderInitialized(String decoderName, long elapsedRealtimeMs, - long initializationDurationMs) { - Log.d(tag, "videoDecoderInitialized [" + decoderName + "]"); - } - - @Override - public void onVideoInputFormatChanged(Format format) { - Log.d(tag, "videoFormatChanged [" + Format.toLogString(format) + "]"); - } - - @Override - public void onVideoDisabled(DecoderCounters counters) { - Log.d(tag, "videoDisabled"); - videoDecoderCounters.merge(counters); - } - - @Override - public void onDroppedFrames(int count, long elapsed) { - Log.d(tag, "droppedFrames [" + count + "]"); - } - - @Override - public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, - float pixelWidthHeightRatio) { - // Do nothing. - } - - @Override - public void onRenderedFirstFrame(Surface surface) { - // Do nothing. + 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); + } } // Internal logic