diff options
Diffstat (limited to 'media/java/android/media/MediaCodec.java')
-rw-r--r-- | media/java/android/media/MediaCodec.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 510ee442f852..c9d79784004c 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -1702,20 +1702,22 @@ final public class MediaCodec { break; } case EVENT_FRAME_RENDERED: - synchronized (mListenerLock) { - Map<String, Object> map = (Map<String, Object>)msg.obj; - for (int i = 0; ; ++i) { - Object mediaTimeUs = map.get(i + "-media-time-us"); - Object systemNano = map.get(i + "-system-nano"); - if (mediaTimeUs == null || systemNano == null - || mOnFrameRenderedListener == null) { - break; - } - mOnFrameRenderedListener.onFrameRendered( - mCodec, (long)mediaTimeUs, (long)systemNano); + Map<String, Object> map = (Map<String, Object>)msg.obj; + for (int i = 0; ; ++i) { + Object mediaTimeUs = map.get(i + "-media-time-us"); + Object systemNano = map.get(i + "-system-nano"); + OnFrameRenderedListener onFrameRenderedListener; + synchronized (mListenerLock) { + onFrameRenderedListener = mOnFrameRenderedListener; } - break; + if (mediaTimeUs == null || systemNano == null + || onFrameRenderedListener == null) { + break; + } + onFrameRenderedListener.onFrameRendered( + mCodec, (long)mediaTimeUs, (long)systemNano); } + break; default: { break; |