From 1726f9e5fea7f39d7915b61f82dc7ecce8ca88b9 Mon Sep 17 00:00:00 2001 From: sharjeel Date: Tue, 18 Sep 2018 13:11:11 -0700 Subject: [PATCH] Don't notify drop frames when maxDroppedFramesToNotify < 1 With default of value set to -1, every single dropped frame is reported because of expression: if (droppedFrames >= maxDroppedFramesToNotify) { maybeNotifyDroppedFrames(); } ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=213502573 --- .../ext/vp9/LibvpxVideoRenderer.java | 2 +- .../video/MediaCodecVideoRenderer.java | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) 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 0f403b4a5c..c09d2fe55a 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 @@ -632,7 +632,7 @@ public class LibvpxVideoRenderer extends BaseRenderer { consecutiveDroppedFrameCount += droppedBufferCount; decoderCounters.maxConsecutiveDroppedBufferCount = Math.max(consecutiveDroppedFrameCount, decoderCounters.maxConsecutiveDroppedBufferCount); - if (droppedFrames >= maxDroppedFramesToNotify) { + if (maxDroppedFramesToNotify > 0 && droppedFrames >= maxDroppedFramesToNotify) { maybeNotifyDroppedFrames(); } } 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 bd3550d1dc..35121829a3 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 @@ -160,7 +160,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { allowedJoiningTimeMs, /* eventHandler= */ null, /* eventListener= */ null, - -1); + /* maxDroppedFramesToNotify= */ -1); } /** @@ -171,12 +171,16 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { * @param eventHandler A handler to use when delivering events to {@code eventListener}. May be * null if delivery of events is not required. * @param eventListener A listener of events. May be null if delivery of events is not required. - * @param maxDroppedFrameCountToNotify The maximum number of frames that can be dropped between + * @param maxDroppedFramesToNotify The maximum number of frames that can be dropped between * invocations of {@link VideoRendererEventListener#onDroppedFrames(int, long)}. */ - public MediaCodecVideoRenderer(Context context, MediaCodecSelector mediaCodecSelector, - long allowedJoiningTimeMs, @Nullable Handler eventHandler, - @Nullable VideoRendererEventListener eventListener, int maxDroppedFrameCountToNotify) { + public MediaCodecVideoRenderer( + Context context, + MediaCodecSelector mediaCodecSelector, + long allowedJoiningTimeMs, + @Nullable Handler eventHandler, + @Nullable VideoRendererEventListener eventListener, + int maxDroppedFramesToNotify) { this( context, mediaCodecSelector, @@ -185,7 +189,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { /* playClearSamplesWithoutKeys= */ false, eventHandler, eventListener, - maxDroppedFrameCountToNotify); + maxDroppedFramesToNotify); } /** @@ -850,7 +854,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { consecutiveDroppedFrameCount += droppedBufferCount; decoderCounters.maxConsecutiveDroppedBufferCount = Math.max(consecutiveDroppedFrameCount, decoderCounters.maxConsecutiveDroppedBufferCount); - if (droppedFrames >= maxDroppedFramesToNotify) { + if (maxDroppedFramesToNotify > 0 && droppedFrames >= maxDroppedFramesToNotify) { maybeNotifyDroppedFrames(); } }