Loading camera/Camera.cpp +17 −2 Original line number Diff line number Diff line Loading @@ -283,7 +283,14 @@ void Camera::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) void Camera::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata_t *metadata) { return CameraBaseT::dataCallback(msgType, dataPtr, metadata); sp<CameraListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postData(msgType, dataPtr, metadata); } } // callback from camera service when timestamped frame is ready Loading @@ -302,7 +309,15 @@ void Camera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp< return; } if (!CameraBaseT::dataCallbackTimestamp(timestamp, msgType, dataPtr)) { sp<CameraListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postDataTimestamp(timestamp, msgType, dataPtr); } else { ALOGW("No listener was set. Drop a recording frame."); releaseRecordingFrame(dataPtr); } Loading camera/CameraBase.cpp +0 −35 Original line number Diff line number Diff line Loading @@ -176,41 +176,6 @@ void CameraBase<TCam, TCamTraits>::notifyCallback(int32_t msgType, } } // callback from camera service when frame or image is ready template <typename TCam, typename TCamTraits> void CameraBase<TCam, TCamTraits>::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata *metadata) { sp<TCamListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postData(msgType, dataPtr, metadata); } } // callback from camera service when timestamped frame is ready template <typename TCam, typename TCamTraits> bool CameraBase<TCam, TCamTraits>::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr) { sp<TCamListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postDataTimestamp(timestamp, msgType, dataPtr); return true; } return false; } template <typename TCam, typename TCamTraits> int CameraBase<TCam, TCamTraits>::getNumberOfCameras() { const sp<ICameraService> cs = getCameraService(); Loading camera/IProCameraCallbacks.cpp +0 −60 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ namespace android { enum { NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, DATA_CALLBACK, DATA_CALLBACK_TIMESTAMP, LOCK_STATUS_CHANGED, RESULT_RECEIVED, }; Loading Loading @@ -63,37 +61,6 @@ public: remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); } // generic data callback from camera service to app with image data void dataCallback(int32_t msgType, const sp<IMemory>& imageData, camera_frame_metadata_t *metadata) { ALOGV("dataCallback"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt32(msgType); data.writeStrongBinder(imageData->asBinder()); if (metadata) { data.writeInt32(metadata->number_of_faces); data.write(metadata->faces, sizeof(camera_face_t) * metadata->number_of_faces); } remote()->transact(DATA_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); } // generic data callback from camera service to app with image data void dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& imageData) { ALOGV("dataCallback"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt64(timestamp); data.writeInt32(msgType); data.writeStrongBinder(imageData->asBinder()); remote()->transact(DATA_CALLBACK_TIMESTAMP, data, &reply, IBinder::FLAG_ONEWAY); } void onLockStatusChanged(LockStatus newLockStatus) { ALOGV("onLockStatusChanged"); Parcel data, reply; Loading Loading @@ -132,33 +99,6 @@ status_t BnProCameraCallbacks::onTransact( notifyCallback(msgType, ext1, ext2); return NO_ERROR; } break; case DATA_CALLBACK: { ALOGV("DATA_CALLBACK"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); int32_t msgType = data.readInt32(); sp<IMemory> imageData = interface_cast<IMemory>( data.readStrongBinder()); camera_frame_metadata_t *metadata = NULL; if (data.dataAvail() > 0) { metadata = new camera_frame_metadata_t; metadata->number_of_faces = data.readInt32(); metadata->faces = (camera_face_t *) data.readInplace( sizeof(camera_face_t) * metadata->number_of_faces); } dataCallback(msgType, imageData, metadata); if (metadata) delete metadata; return NO_ERROR; } break; case DATA_CALLBACK_TIMESTAMP: { ALOGV("DATA_CALLBACK_TIMESTAMP"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); nsecs_t timestamp = data.readInt64(); int32_t msgType = data.readInt32(); sp<IMemory> imageData = interface_cast<IMemory>( data.readStrongBinder()); dataCallbackTimestamp(timestamp, msgType, imageData); return NO_ERROR; } break; case LOCK_STATUS_CHANGED: { ALOGV("LOCK_STATUS_CHANGED"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); Loading camera/IProCameraUser.cpp +5 −21 Original line number Diff line number Diff line Loading @@ -40,8 +40,7 @@ enum { HAS_EXCLUSIVE_LOCK, SUBMIT_REQUEST, CANCEL_REQUEST, REQUEST_STREAM, CANCEL_STREAM, DELETE_STREAM, CREATE_STREAM, CREATE_DEFAULT_REQUEST, GET_CAMERA_INFO, Loading Loading @@ -200,22 +199,13 @@ public: return reply.readInt32(); } virtual status_t requestStream(int streamId) virtual status_t deleteStream(int streamId) { Parcel data, reply; data.writeInterfaceToken(IProCameraUser::getInterfaceDescriptor()); data.writeInt32(streamId); remote()->transact(REQUEST_STREAM, data, &reply); return reply.readInt32(); } virtual status_t cancelStream(int streamId) { Parcel data, reply; data.writeInterfaceToken(IProCameraUser::getInterfaceDescriptor()); data.writeInt32(streamId); remote()->transact(CANCEL_STREAM, data, &reply); remote()->transact(DELETE_STREAM, data, &reply); return reply.readInt32(); } Loading Loading @@ -334,16 +324,10 @@ status_t BnProCameraUser::onTransact( reply->writeInt32(cancelRequest(requestId)); return NO_ERROR; } break; case REQUEST_STREAM: { CHECK_INTERFACE(IProCameraUser, data, reply); int streamId = data.readInt32(); reply->writeInt32(requestStream(streamId)); return NO_ERROR; } break; case CANCEL_STREAM: { case DELETE_STREAM: { CHECK_INTERFACE(IProCameraUser, data, reply); int streamId = data.readInt32(); reply->writeInt32(cancelStream(streamId)); reply->writeInt32(deleteStream(streamId)); return NO_ERROR; } break; case CREATE_STREAM: { Loading camera/ProCamera.cpp +2 −20 Original line number Diff line number Diff line Loading @@ -60,21 +60,6 @@ void ProCamera::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) return CameraBaseT::notifyCallback(msgType, ext1, ext2); } // callback from camera service when frame or image is ready void ProCamera::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata_t *metadata) { return CameraBaseT::dataCallback(msgType, dataPtr, metadata); } // callback from camera service when timestamped frame is ready void ProCamera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr) { CameraBaseT::dataCallbackTimestamp(timestamp, msgType, dataPtr); } void ProCamera::onLockStatusChanged( IProCameraCallbacks::LockStatus newLockStatus) { Loading Loading @@ -185,7 +170,7 @@ status_t ProCamera::deleteStream(int streamId) sp <IProCameraUser> c = mCamera; if (c == 0) return NO_INIT; status_t s = c->cancelStream(streamId); status_t s = c->deleteStream(streamId); mStreams.removeItem(streamId); Loading Loading @@ -330,10 +315,7 @@ void ProCamera::onFrameAvailable(int streamId) { CpuConsumer::LockedBuffer buf; if (listener.get() != NULL) { if (listener->useOnFrameAvailable()) { listener->onFrameAvailable(streamId, stream.cpuConsumer); return; } } // Unblock waitForFrame(id) callers Loading Loading
camera/Camera.cpp +17 −2 Original line number Diff line number Diff line Loading @@ -283,7 +283,14 @@ void Camera::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) void Camera::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata_t *metadata) { return CameraBaseT::dataCallback(msgType, dataPtr, metadata); sp<CameraListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postData(msgType, dataPtr, metadata); } } // callback from camera service when timestamped frame is ready Loading @@ -302,7 +309,15 @@ void Camera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp< return; } if (!CameraBaseT::dataCallbackTimestamp(timestamp, msgType, dataPtr)) { sp<CameraListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postDataTimestamp(timestamp, msgType, dataPtr); } else { ALOGW("No listener was set. Drop a recording frame."); releaseRecordingFrame(dataPtr); } Loading
camera/CameraBase.cpp +0 −35 Original line number Diff line number Diff line Loading @@ -176,41 +176,6 @@ void CameraBase<TCam, TCamTraits>::notifyCallback(int32_t msgType, } } // callback from camera service when frame or image is ready template <typename TCam, typename TCamTraits> void CameraBase<TCam, TCamTraits>::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata *metadata) { sp<TCamListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postData(msgType, dataPtr, metadata); } } // callback from camera service when timestamped frame is ready template <typename TCam, typename TCamTraits> bool CameraBase<TCam, TCamTraits>::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr) { sp<TCamListener> listener; { Mutex::Autolock _l(mLock); listener = mListener; } if (listener != NULL) { listener->postDataTimestamp(timestamp, msgType, dataPtr); return true; } return false; } template <typename TCam, typename TCamTraits> int CameraBase<TCam, TCamTraits>::getNumberOfCameras() { const sp<ICameraService> cs = getCameraService(); Loading
camera/IProCameraCallbacks.cpp +0 −60 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ namespace android { enum { NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, DATA_CALLBACK, DATA_CALLBACK_TIMESTAMP, LOCK_STATUS_CHANGED, RESULT_RECEIVED, }; Loading Loading @@ -63,37 +61,6 @@ public: remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); } // generic data callback from camera service to app with image data void dataCallback(int32_t msgType, const sp<IMemory>& imageData, camera_frame_metadata_t *metadata) { ALOGV("dataCallback"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt32(msgType); data.writeStrongBinder(imageData->asBinder()); if (metadata) { data.writeInt32(metadata->number_of_faces); data.write(metadata->faces, sizeof(camera_face_t) * metadata->number_of_faces); } remote()->transact(DATA_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); } // generic data callback from camera service to app with image data void dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& imageData) { ALOGV("dataCallback"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt64(timestamp); data.writeInt32(msgType); data.writeStrongBinder(imageData->asBinder()); remote()->transact(DATA_CALLBACK_TIMESTAMP, data, &reply, IBinder::FLAG_ONEWAY); } void onLockStatusChanged(LockStatus newLockStatus) { ALOGV("onLockStatusChanged"); Parcel data, reply; Loading Loading @@ -132,33 +99,6 @@ status_t BnProCameraCallbacks::onTransact( notifyCallback(msgType, ext1, ext2); return NO_ERROR; } break; case DATA_CALLBACK: { ALOGV("DATA_CALLBACK"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); int32_t msgType = data.readInt32(); sp<IMemory> imageData = interface_cast<IMemory>( data.readStrongBinder()); camera_frame_metadata_t *metadata = NULL; if (data.dataAvail() > 0) { metadata = new camera_frame_metadata_t; metadata->number_of_faces = data.readInt32(); metadata->faces = (camera_face_t *) data.readInplace( sizeof(camera_face_t) * metadata->number_of_faces); } dataCallback(msgType, imageData, metadata); if (metadata) delete metadata; return NO_ERROR; } break; case DATA_CALLBACK_TIMESTAMP: { ALOGV("DATA_CALLBACK_TIMESTAMP"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); nsecs_t timestamp = data.readInt64(); int32_t msgType = data.readInt32(); sp<IMemory> imageData = interface_cast<IMemory>( data.readStrongBinder()); dataCallbackTimestamp(timestamp, msgType, imageData); return NO_ERROR; } break; case LOCK_STATUS_CHANGED: { ALOGV("LOCK_STATUS_CHANGED"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); Loading
camera/IProCameraUser.cpp +5 −21 Original line number Diff line number Diff line Loading @@ -40,8 +40,7 @@ enum { HAS_EXCLUSIVE_LOCK, SUBMIT_REQUEST, CANCEL_REQUEST, REQUEST_STREAM, CANCEL_STREAM, DELETE_STREAM, CREATE_STREAM, CREATE_DEFAULT_REQUEST, GET_CAMERA_INFO, Loading Loading @@ -200,22 +199,13 @@ public: return reply.readInt32(); } virtual status_t requestStream(int streamId) virtual status_t deleteStream(int streamId) { Parcel data, reply; data.writeInterfaceToken(IProCameraUser::getInterfaceDescriptor()); data.writeInt32(streamId); remote()->transact(REQUEST_STREAM, data, &reply); return reply.readInt32(); } virtual status_t cancelStream(int streamId) { Parcel data, reply; data.writeInterfaceToken(IProCameraUser::getInterfaceDescriptor()); data.writeInt32(streamId); remote()->transact(CANCEL_STREAM, data, &reply); remote()->transact(DELETE_STREAM, data, &reply); return reply.readInt32(); } Loading Loading @@ -334,16 +324,10 @@ status_t BnProCameraUser::onTransact( reply->writeInt32(cancelRequest(requestId)); return NO_ERROR; } break; case REQUEST_STREAM: { CHECK_INTERFACE(IProCameraUser, data, reply); int streamId = data.readInt32(); reply->writeInt32(requestStream(streamId)); return NO_ERROR; } break; case CANCEL_STREAM: { case DELETE_STREAM: { CHECK_INTERFACE(IProCameraUser, data, reply); int streamId = data.readInt32(); reply->writeInt32(cancelStream(streamId)); reply->writeInt32(deleteStream(streamId)); return NO_ERROR; } break; case CREATE_STREAM: { Loading
camera/ProCamera.cpp +2 −20 Original line number Diff line number Diff line Loading @@ -60,21 +60,6 @@ void ProCamera::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) return CameraBaseT::notifyCallback(msgType, ext1, ext2); } // callback from camera service when frame or image is ready void ProCamera::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr, camera_frame_metadata_t *metadata) { return CameraBaseT::dataCallback(msgType, dataPtr, metadata); } // callback from camera service when timestamped frame is ready void ProCamera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr) { CameraBaseT::dataCallbackTimestamp(timestamp, msgType, dataPtr); } void ProCamera::onLockStatusChanged( IProCameraCallbacks::LockStatus newLockStatus) { Loading Loading @@ -185,7 +170,7 @@ status_t ProCamera::deleteStream(int streamId) sp <IProCameraUser> c = mCamera; if (c == 0) return NO_INIT; status_t s = c->cancelStream(streamId); status_t s = c->deleteStream(streamId); mStreams.removeItem(streamId); Loading Loading @@ -330,10 +315,7 @@ void ProCamera::onFrameAvailable(int streamId) { CpuConsumer::LockedBuffer buf; if (listener.get() != NULL) { if (listener->useOnFrameAvailable()) { listener->onFrameAvailable(streamId, stream.cpuConsumer); return; } } // Unblock waitForFrame(id) callers Loading