Merge "MediaCodec: Release lock before calling onFrameRendered()"

This commit is contained in:
Treehugger Robot
2019-11-08 13:34:42 +00:00
committed by Gerrit Code Review

View File

@@ -1702,20 +1702,22 @@ final public class MediaCodec {
break; break;
} }
case EVENT_FRAME_RENDERED: case EVENT_FRAME_RENDERED:
synchronized (mListenerLock) {
Map<String, Object> map = (Map<String, Object>)msg.obj; Map<String, Object> map = (Map<String, Object>)msg.obj;
for (int i = 0; ; ++i) { for (int i = 0; ; ++i) {
Object mediaTimeUs = map.get(i + "-media-time-us"); Object mediaTimeUs = map.get(i + "-media-time-us");
Object systemNano = map.get(i + "-system-nano"); Object systemNano = map.get(i + "-system-nano");
OnFrameRenderedListener onFrameRenderedListener;
synchronized (mListenerLock) {
onFrameRenderedListener = mOnFrameRenderedListener;
}
if (mediaTimeUs == null || systemNano == null if (mediaTimeUs == null || systemNano == null
|| mOnFrameRenderedListener == null) { || onFrameRenderedListener == null) {
break; break;
} }
mOnFrameRenderedListener.onFrameRendered( onFrameRenderedListener.onFrameRendered(
mCodec, (long)mediaTimeUs, (long)systemNano); mCodec, (long)mediaTimeUs, (long)systemNano);
} }
break; break;
}
default: default:
{ {
break; break;