From 926bc805f5090d8162808dc022bfd4ed0ac5b85d Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Fri, 5 Jun 2015 18:28:42 +0100 Subject: [PATCH] Add some useful Systrace --- .../android/exoplayer/MediaCodecTrackRenderer.java | 9 +++++++++ .../com/google/android/exoplayer/upstream/Loader.java | 3 +++ 2 files changed, 12 insertions(+) diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java index 2d944ba4d3..4662fc9490 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java @@ -19,6 +19,7 @@ import com.google.android.exoplayer.MediaCodecUtil.DecoderQueryException; import com.google.android.exoplayer.drm.DrmInitData; import com.google.android.exoplayer.drm.DrmSessionManager; import com.google.android.exoplayer.util.Assertions; +import com.google.android.exoplayer.util.TraceUtil; import com.google.android.exoplayer.util.Util; import android.annotation.TargetApi; @@ -362,9 +363,15 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { codecIsAdaptive = decoderInfo.adaptive; try { long codecInitializingTimestamp = SystemClock.elapsedRealtime(); + TraceUtil.beginSection("createByCodecName(" + decoderName + ")"); codec = MediaCodec.createByCodecName(decoderName); + TraceUtil.endSection(); + TraceUtil.beginSection("configureCodec"); configureCodec(codec, decoderName, format.getFrameworkMediaFormatV16(), mediaCrypto); + TraceUtil.endSection(); + TraceUtil.beginSection("codec.start()"); codec.start(); + TraceUtil.endSection(); long codecInitializedTimestamp = SystemClock.elapsedRealtime(); notifyDecoderInitialized(decoderName, codecInitializedTimestamp, codecInitializedTimestamp - codecInitializingTimestamp); @@ -499,10 +506,12 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { maybeInitCodec(); } if (codec != null) { + TraceUtil.beginSection("drainAndFeed"); while (drainOutputBuffer(positionUs, elapsedRealtimeUs)) {} if (feedInputBuffer(true)) { while (feedInputBuffer(false)) {} } + TraceUtil.endSection(); } codecCounters.ensureUpdated(); } catch (IOException e) { diff --git a/library/src/main/java/com/google/android/exoplayer/upstream/Loader.java b/library/src/main/java/com/google/android/exoplayer/upstream/Loader.java index d3ce6bdc9c..24d8b78c62 100644 --- a/library/src/main/java/com/google/android/exoplayer/upstream/Loader.java +++ b/library/src/main/java/com/google/android/exoplayer/upstream/Loader.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer.upstream; import com.google.android.exoplayer.util.Assertions; +import com.google.android.exoplayer.util.TraceUtil; import com.google.android.exoplayer.util.Util; import android.annotation.SuppressLint; @@ -204,7 +205,9 @@ public final class Loader { try { executorThread = Thread.currentThread(); if (!loadable.isLoadCanceled()) { + TraceUtil.beginSection(loadable.getClass().getSimpleName() + ".load()"); loadable.load(); + TraceUtil.endSection(); } sendEmptyMessage(MSG_END_OF_SOURCE); } catch (IOException e) {