summaryrefslogtreecommitdiffstats
path: root/include/camera
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-09-06 09:32:43 -0700
committerEino-Ville Talvala <etalvala@google.com>2013-10-02 18:11:21 -0700
commitf1e98d857ec377f2c9b916073d40732e6ebb7ced (patch)
tree2a435e723f17c0c7b3e6db323d68be6cfb7d5c66 /include/camera
parentf05e50eb06d3f70e50fa7f44c1fd32128033b49d (diff)
downloadframeworks_av-f1e98d857ec377f2c9b916073d40732e6ebb7ced.zip
frameworks_av-f1e98d857ec377f2c9b916073d40732e6ebb7ced.tar.gz
frameworks_av-f1e98d857ec377f2c9b916073d40732e6ebb7ced.tar.bz2
Camera API 2, Device 2/3: Implement idle and shutter callbacks
- Update callback Binder interface - Rename frameId to be requestId to be consistent and disambiguate from frameNumber. - Implement shutter callback from HAL2/3 notify() - Add in-flight tracking to HAL2 - Add requestId to in-flight tracking - Report requestId from shutter callback - Implement idle callback from HAL3 process_capture_result - Add new idle tracker thread - Update all idle waiting to use the tracker - Add reporting from request thread, all streams to tracker - Remove existing idle waiting infrastructure Bug: 10549462 Change-Id: I867bfc248e3848c50e71527e3561fe92dc037958
Diffstat (limited to 'include/camera')
-rw-r--r--include/camera/IProCameraCallbacks.h2
-rw-r--r--include/camera/ProCamera.h2
-rw-r--r--include/camera/camera2/ICameraDeviceCallbacks.h22
3 files changed, 20 insertions, 6 deletions
diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h
index c774698..e8abb89 100644
--- a/include/camera/IProCameraCallbacks.h
+++ b/include/camera/IProCameraCallbacks.h
@@ -51,7 +51,7 @@ public:
/** Missing by design: implementation is client-side in ProCamera.cpp **/
// virtual void onBufferReceived(int streamId,
// const CpuConsumer::LockedBufer& buf);
- virtual void onResultReceived(int32_t frameId,
+ virtual void onResultReceived(int32_t requestId,
camera_metadata* result) = 0;
};
diff --git a/include/camera/ProCamera.h b/include/camera/ProCamera.h
index d9ee662..83a3028 100644
--- a/include/camera/ProCamera.h
+++ b/include/camera/ProCamera.h
@@ -252,7 +252,7 @@ protected:
virtual void onLockStatusChanged(
IProCameraCallbacks::LockStatus newLockStatus);
- virtual void onResultReceived(int32_t frameId,
+ virtual void onResultReceived(int32_t requestId,
camera_metadata* result);
private:
ProCamera(int cameraId);
diff --git a/include/camera/camera2/ICameraDeviceCallbacks.h b/include/camera/camera2/ICameraDeviceCallbacks.h
index 041fa65..8dac4f2 100644
--- a/include/camera/camera2/ICameraDeviceCallbacks.h
+++ b/include/camera/camera2/ICameraDeviceCallbacks.h
@@ -35,13 +35,27 @@ class ICameraDeviceCallbacks : public IInterface
public:
DECLARE_META_INTERFACE(CameraDeviceCallbacks);
+ /**
+ * Error codes for CAMERA_MSG_ERROR
+ */
+ enum CameraErrorCode {
+ ERROR_CAMERA_DISCONNECTED = 0,
+ ERROR_CAMERA_DEVICE = 1,
+ ERROR_CAMERA_SERVICE = 2
+ };
+
+ // One way
+ virtual void onDeviceError(CameraErrorCode errorCode) = 0;
+
+ // One way
+ virtual void onDeviceIdle() = 0;
+
// One way
- virtual void notifyCallback(int32_t msgType,
- int32_t ext1,
- int32_t ext2) = 0;
+ virtual void onCaptureStarted(int32_t requestId,
+ int64_t timestamp) = 0;
// One way
- virtual void onResultReceived(int32_t frameId,
+ virtual void onResultReceived(int32_t requestId,
const CameraMetadata& result) = 0;
};