| Index: webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java | 
| diff --git a/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java b/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java | 
| index 41fd0791dccd8249f79b600b0951d373a04e52e4..26b1cf2491bcf82fe471bf5f53b571dda8fe948f 100644 | 
| --- a/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java | 
| +++ b/webrtc/api/java/src/org/webrtc/MediaCodecVideoDecoder.java | 
| @@ -41,6 +41,7 @@ public class MediaCodecVideoDecoder { | 
| // possibly to minimize the amount of translation work necessary. | 
|  | 
| private static final String TAG = "MediaCodecVideoDecoder"; | 
| +  private static final long MAX_DECODE_TIME_MS = 200; | 
|  | 
| // Tracks webrtc::VideoCodecType. | 
| public enum VideoCodecType { | 
| @@ -594,13 +595,19 @@ public class MediaCodecVideoDecoder { | 
| default: | 
| hasDecodedFirstFrame = true; | 
| 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."); | 
| +            decodeTimeMs = MAX_DECODE_TIME_MS; | 
| +          } | 
| return new DecodedOutputBuffer(result, | 
| info.offset, | 
| info.size, | 
| TimeUnit.MICROSECONDS.toMillis(info.presentationTimeUs), | 
| timeStamps.timeStampMs, | 
| timeStamps.ntpTimeStampMs, | 
| -              SystemClock.elapsedRealtime() - timeStamps.decodeStartTimeMs, | 
| +              decodeTimeMs, | 
| SystemClock.elapsedRealtime()); | 
| } | 
| } | 
|  |