Decrease the amount of maximum outstanding frames for Android HW H.264 decoder.
BUG=b/28150902
R=pbos@webrtc.org, sakal@webrtc.org
Review URL: https://codereview.webrtc.org/2088353002 .
Cr-Commit-Position: refs/heads/master@{#13302}
diff --git a/webrtc/api/java/jni/androidmediacodeccommon.h b/webrtc/api/java/jni/androidmediacodeccommon.h
index e9eb245..4926f4d 100644
--- a/webrtc/api/java/jni/androidmediacodeccommon.h
+++ b/webrtc/api/java/jni/androidmediacodeccommon.h
@@ -54,7 +54,7 @@
// Maximum amount of pending frames for VP9 decoder.
enum { kMaxPendingFramesVp9 = 1 };
// Maximum amount of pending frames for H.264 decoder.
-enum { kMaxPendingFramesH264 = 8 };
+enum { kMaxPendingFramesH264 = 3 };
// Maximum amount of decoded frames for which per-frame logging is enabled.
enum { kMaxDecodedLogFrames = 10 };
// Maximum amount of encoded frames for which per-frame logging is enabled.
diff --git a/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java b/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java
index e8470c4..02235fe 100644
--- a/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java
+++ b/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java
@@ -619,8 +619,9 @@
TimeStamps timeStamps = decodeStartTimeMs.remove();
long decodeTimeMs = SystemClock.elapsedRealtime() - timeStamps.decodeStartTimeMs;
if (decodeTimeMs > MAX_DECODE_TIME_MS) {
- Logging.e(TAG, "Very high decode time: " + decodeTimeMs + "ms."
- + " Might be caused by resuming H264 decoding after a pause.");
+ Logging.e(TAG, "Very high decode time: " + decodeTimeMs + "ms"
+ + ". Q size: " + decodeStartTimeMs.size()
+ + ". Might be caused by resuming H264 decoding after a pause.");
decodeTimeMs = MAX_DECODE_TIME_MS;
}
return new DecodedOutputBuffer(result,