From df7a856d3d7a62049e3d1091cf07e95019da4609 Mon Sep 17 00:00:00 2001 From: James Dong Date: Mon, 15 Nov 2010 10:38:37 -0800 Subject: Fixed a race condition where some recording frames may not be released. When startRecording() is called before setListener(), recording frames are sent right after startRecording(), but there is no listener to release the recording frames. This causes the hang in media server. bug - 3166356 Change-Id: I19366ca682ef9f6b847590c190c30a15ed32b8e4 --- libs/camera/Camera.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libs/camera/Camera.cpp') diff --git a/libs/camera/Camera.cpp b/libs/camera/Camera.cpp index 148e86407e4e..450971d39dba 100644 --- a/libs/camera/Camera.cpp +++ b/libs/camera/Camera.cpp @@ -372,6 +372,9 @@ void Camera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp< } if (listener != NULL) { listener->postDataTimestamp(timestamp, msgType, dataPtr); + } else { + LOGW("No listener was set. Drop a recording frame."); + releaseRecordingFrame(dataPtr); } } -- cgit v1.2.3-59-g8ed1b