diff --git a/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java b/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java index 100ca6f00f..ec18db2470 100644 --- a/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java +++ b/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java @@ -342,11 +342,11 @@ public final class LibvpxVideoRenderer extends BaseRenderer { } private void dropBuffer() { - decoderCounters.droppedOutputBufferCount++; + decoderCounters.droppedBufferCount++; droppedFrames++; consecutiveDroppedFrameCount++; - decoderCounters.maxConsecutiveDroppedOutputBufferCount = Math.max( - consecutiveDroppedFrameCount, decoderCounters.maxConsecutiveDroppedOutputBufferCount); + decoderCounters.maxConsecutiveDroppedBufferCount = Math.max( + consecutiveDroppedFrameCount, decoderCounters.maxConsecutiveDroppedBufferCount); if (droppedFrames == maxDroppedFramesToNotify) { maybeNotifyDroppedFrames(); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderCounters.java b/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderCounters.java index e1dff12e52..8409bab558 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderCounters.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderCounters.java @@ -53,24 +53,24 @@ public final class DecoderCounters { */ public int skippedOutputBufferCount; /** - * The number of dropped output buffers. + * The number of dropped buffers. *
- * A dropped output buffer is an output buffer that was supposed to be rendered, but was instead + * A dropped buffer is an buffer that was supposed to be decoded/rendered, but was instead * dropped because it could not be rendered in time. */ - public int droppedOutputBufferCount; + public int droppedBufferCount; /** - * The maximum number of dropped output buffers without an interleaving rendered output buffer. + * The maximum number of dropped buffers without an interleaving rendered output buffer. *
* Skipped output buffers are ignored for the purposes of calculating this value. */ - public int maxConsecutiveDroppedOutputBufferCount; + public int maxConsecutiveDroppedBufferCount; /** * The number of times all buffers to a keyframe were dropped. *
* Each time buffers to a keyframe are dropped, this counter is increased by one, and the dropped - * output buffer counters are increased by one (for the current output buffer) plus the number of - * buffers dropped from the source to advance to the keyframe. + * buffer counters are increased by one (for the current output buffer) plus the number of buffers + * dropped from the source to advance to the keyframe. */ public int droppedToKeyframeCount; @@ -96,9 +96,9 @@ public final class DecoderCounters { skippedInputBufferCount += other.skippedInputBufferCount; renderedOutputBufferCount += other.renderedOutputBufferCount; skippedOutputBufferCount += other.skippedOutputBufferCount; - droppedOutputBufferCount += other.droppedOutputBufferCount; - maxConsecutiveDroppedOutputBufferCount = Math.max(maxConsecutiveDroppedOutputBufferCount, - other.maxConsecutiveDroppedOutputBufferCount); + droppedBufferCount += other.droppedBufferCount; + maxConsecutiveDroppedBufferCount = Math.max(maxConsecutiveDroppedBufferCount, + other.maxConsecutiveDroppedBufferCount); droppedToKeyframeCount += other.droppedToKeyframeCount; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index 84073f9338..cb443e38ee 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -700,11 +700,11 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { * @param droppedBufferCount The number of additional dropped buffers. */ protected void updateDroppedBufferCounters(int droppedBufferCount) { - decoderCounters.droppedOutputBufferCount += droppedBufferCount; + decoderCounters.droppedBufferCount += droppedBufferCount; droppedFrames += droppedBufferCount; consecutiveDroppedFrameCount += droppedBufferCount; - decoderCounters.maxConsecutiveDroppedOutputBufferCount = Math.max(consecutiveDroppedFrameCount, - decoderCounters.maxConsecutiveDroppedOutputBufferCount); + decoderCounters.maxConsecutiveDroppedBufferCount = Math.max(consecutiveDroppedFrameCount, + decoderCounters.maxConsecutiveDroppedBufferCount); if (droppedFrames >= maxDroppedFramesToNotify) { maybeNotifyDroppedFrames(); } diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java index 9d9272f10e..fda74db28d 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java @@ -154,8 +154,8 @@ public final class DebugTextViewHelper extends Player.DefaultEventListener imple return " sib:" + counters.skippedInputBufferCount + " sb:" + counters.skippedOutputBufferCount + " rb:" + counters.renderedOutputBufferCount - + " db:" + counters.droppedOutputBufferCount - + " mcdb:" + counters.maxConsecutiveDroppedOutputBufferCount + + " db:" + counters.droppedBufferCount + + " mcdb:" + counters.maxConsecutiveDroppedBufferCount + " dk:" + counters.droppedToKeyframeCount; } diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java index 9b8d6483b9..06dab1164b 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java @@ -323,9 +323,9 @@ public final class DashTestRunner { metricsLogger.logMetric(MetricsLogger.KEY_TEST_NAME, streamName); metricsLogger.logMetric(MetricsLogger.KEY_IS_CDD_LIMITED_RETRY, isCddLimitedRetry); metricsLogger.logMetric(MetricsLogger.KEY_FRAMES_DROPPED_COUNT, - videoCounters.droppedOutputBufferCount); + videoCounters.droppedBufferCount); metricsLogger.logMetric(MetricsLogger.KEY_MAX_CONSECUTIVE_FRAMES_DROPPED_COUNT, - videoCounters.maxConsecutiveDroppedOutputBufferCount); + videoCounters.maxConsecutiveDroppedBufferCount); metricsLogger.logMetric(MetricsLogger.KEY_FRAMES_SKIPPED_COUNT, videoCounters.skippedOutputBufferCount); metricsLogger.logMetric(MetricsLogger.KEY_FRAMES_RENDERED_COUNT, @@ -343,20 +343,20 @@ public final class DashTestRunner { .assertSkippedOutputBufferCount(tag + VIDEO_TAG_SUFFIX, videoCounters, 0); // We allow one fewer output buffer due to the way that MediaCodecRenderer and the // underlying decoders handle the end of stream. This should be tightened up in the future. - DecoderCountersUtil.assertTotalOutputBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters, + DecoderCountersUtil.assertTotalBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters, audioCounters.inputBufferCount - 1, audioCounters.inputBufferCount); - DecoderCountersUtil.assertTotalOutputBufferCount(tag + VIDEO_TAG_SUFFIX, videoCounters, + DecoderCountersUtil.assertTotalBufferCount(tag + VIDEO_TAG_SUFFIX, videoCounters, videoCounters.inputBufferCount - 1, videoCounters.inputBufferCount); } try { int droppedFrameLimit = (int) Math.ceil(MAX_DROPPED_VIDEO_FRAME_FRACTION - * DecoderCountersUtil.getTotalOutputBuffers(videoCounters)); + * DecoderCountersUtil.getTotalBufferCount(videoCounters)); // Assert that performance is acceptable. // Assert that total dropped frames were within limit. - DecoderCountersUtil.assertDroppedOutputBufferLimit(tag + VIDEO_TAG_SUFFIX, videoCounters, + DecoderCountersUtil.assertDroppedBufferLimit(tag + VIDEO_TAG_SUFFIX, videoCounters, droppedFrameLimit); // Assert that consecutive dropped frames were within limit. - DecoderCountersUtil.assertConsecutiveDroppedOutputBufferLimit(tag + VIDEO_TAG_SUFFIX, + DecoderCountersUtil.assertConsecutiveDroppedBufferLimit(tag + VIDEO_TAG_SUFFIX, videoCounters, MAX_CONSECUTIVE_DROPPED_VIDEO_FRAMES); } catch (AssertionFailedError e) { if (trackSelector.includedAdditionalVideoFormats) { diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java index 448ec79c2d..16af394cdf 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java @@ -31,8 +31,9 @@ public final class DecoderCountersUtil { * @param counters The counters for which the total should be calculated. * @return The sum of the skipped, dropped and rendered buffers. */ - public static int getTotalOutputBuffers(DecoderCounters counters) { - return counters.skippedOutputBufferCount + counters.droppedOutputBufferCount + public static int getTotalBufferCount(DecoderCounters counters) { + counters.ensureUpdated(); + return counters.skippedOutputBufferCount + counters.droppedBufferCount + counters.renderedOutputBufferCount; } @@ -44,26 +45,24 @@ public final class DecoderCountersUtil { + expected + ".", expected, actual); } - public static void assertTotalOutputBufferCount(String name, DecoderCounters counters, - int minCount, int maxCount) { - counters.ensureUpdated(); - int actual = getTotalOutputBuffers(counters); + public static void assertTotalBufferCount(String name, DecoderCounters counters, int minCount, + int maxCount) { + int actual = getTotalBufferCount(counters); TestCase.assertTrue("Codec(" + name + ") output " + actual + " buffers. Expected in range [" + minCount + ", " + maxCount + "].", minCount <= actual && actual <= maxCount); } - public static void assertDroppedOutputBufferLimit(String name, DecoderCounters counters, - int limit) { + public static void assertDroppedBufferLimit(String name, DecoderCounters counters, int limit) { counters.ensureUpdated(); - int actual = counters.droppedOutputBufferCount; + int actual = counters.droppedBufferCount; TestCase.assertTrue("Codec(" + name + ") was late decoding: " + actual + " buffers. " + "Limit: " + limit + ".", actual <= limit); } - public static void assertConsecutiveDroppedOutputBufferLimit(String name, - DecoderCounters counters, int limit) { + public static void assertConsecutiveDroppedBufferLimit(String name, DecoderCounters counters, + int limit) { counters.ensureUpdated(); - int actual = counters.maxConsecutiveDroppedOutputBufferCount; + int actual = counters.maxConsecutiveDroppedBufferCount; TestCase.assertTrue("Codec(" + name + ") was late decoding: " + actual + " buffers consecutively. " + "Limit: " + limit + ".", actual <= limit); }