Loading services/camera/libcameraservice/camera2/CallbackProcessor.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -399,6 +399,9 @@ status_t CallbackProcessor::processNewCallback(sp<Camera2Client> &client) { ALOGV("%s: Freeing buffer", __FUNCTION__); mCallbackConsumer->unlockBuffer(imgBuffer); // mCallbackHeap may get freed up once input mutex is released callbackHeap = mCallbackHeap; } // Call outside parameter lock to allow re-entrancy from notification Loading @@ -409,7 +412,7 @@ status_t CallbackProcessor::processNewCallback(sp<Camera2Client> &client) { ALOGV("%s: Camera %d: Invoking client data callback", __FUNCTION__, mId); l.mRemoteCallback->dataCallback(CAMERA_MSG_PREVIEW_FRAME, mCallbackHeap->mBuffers[heapIdx], NULL); callbackHeap->mBuffers[heapIdx], NULL); } } Loading Loading
services/camera/libcameraservice/camera2/CallbackProcessor.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -399,6 +399,9 @@ status_t CallbackProcessor::processNewCallback(sp<Camera2Client> &client) { ALOGV("%s: Freeing buffer", __FUNCTION__); mCallbackConsumer->unlockBuffer(imgBuffer); // mCallbackHeap may get freed up once input mutex is released callbackHeap = mCallbackHeap; } // Call outside parameter lock to allow re-entrancy from notification Loading @@ -409,7 +412,7 @@ status_t CallbackProcessor::processNewCallback(sp<Camera2Client> &client) { ALOGV("%s: Camera %d: Invoking client data callback", __FUNCTION__, mId); l.mRemoteCallback->dataCallback(CAMERA_MSG_PREVIEW_FRAME, mCallbackHeap->mBuffers[heapIdx], NULL); callbackHeap->mBuffers[heapIdx], NULL); } } Loading