diff options
author | Pawin Vongmasa <pawin@google.com> | 2019-11-08 06:14:26 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-08 06:14:26 -0800 |
commit | 7687309a55f87e67467fdccc64f24bc2df149b4c (patch) | |
tree | 10ea7d1a88bea04df28e07887e5bb30678989849 /media/java/android/media/MediaCodec.java | |
parent | 94eebca44eb6833633342842c262a6b6ce704ef2 (diff) | |
parent | a802a56b45c751253be7c4ca463e1c37055419b7 (diff) |
Merge "MediaCodec: Release lock before calling onFrameRendered()" am: c03b91a7ef am: 23b72c725c
am: a802a56b45
Change-Id: I2428e273bed9d458887c677f7391510e6f0461ed
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 b7a9ffe93bae..d16a216a4cc9 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; |