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

am: c03b91a7ef

Change-Id: I362a0153d83363b0c2b419480dcbe01df6976a90
This commit is contained in:
Pawin Vongmasa
2019-11-08 06:00:38 -08:00
committed by android-build-merger

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;
if (mediaTimeUs == null || systemNano == null synchronized (mListenerLock) {
|| mOnFrameRenderedListener == null) { onFrameRenderedListener = mOnFrameRenderedListener;
break;
}
mOnFrameRenderedListener.onFrameRendered(
mCodec, (long)mediaTimeUs, (long)systemNano);
} }
break; if (mediaTimeUs == null || systemNano == null
|| onFrameRenderedListener == null) {
break;
}
onFrameRenderedListener.onFrameRendered(
mCodec, (long)mediaTimeUs, (long)systemNano);
} }
break;
default: default:
{ {
break; break;