From 831227816bdcb360148615393e3e93ac379bf3ea Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 24 Aug 2011 19:50:36 -0700 Subject: [PATCH] When Camera is launched by media recording framework, stagefright controls the stop and release. Change-Id: Ic79a60dad0f617a845211d3fbe146c1648a71da3 related-to-bug: 5205804 --- media/libstagefright/CameraSource.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/media/libstagefright/CameraSource.cpp b/media/libstagefright/CameraSource.cpp index ac3565f68947c..256f3baaa9ad0 100755 --- a/media/libstagefright/CameraSource.cpp +++ b/media/libstagefright/CameraSource.cpp @@ -635,6 +635,12 @@ status_t CameraSource::stop() { mStarted = false; mFrameAvailableCondition.signal(); + int64_t token; + bool isTokenValid = false; + if (mCamera != 0) { + token = IPCThreadState::self()->clearCallingIdentity(); + isTokenValid = true; + } releaseQueuedFrames(); while (!mFramesBeingEncoded.empty()) { if (NO_ERROR != @@ -645,6 +651,9 @@ status_t CameraSource::stop() { } stopCameraRecording(); releaseCamera(); + if (isTokenValid) { + IPCThreadState::self()->restoreCallingIdentity(token); + } if (mCollectStats) { LOGI("Frames received/encoded/dropped: %d/%d/%d in %lld us",