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;
}
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;