diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2013-09-06 09:32:43 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2013-10-02 18:11:21 -0700 |
commit | f1e98d857ec377f2c9b916073d40732e6ebb7ced (patch) | |
tree | 2a435e723f17c0c7b3e6db323d68be6cfb7d5c66 /include/camera | |
parent | f05e50eb06d3f70e50fa7f44c1fd32128033b49d (diff) | |
download | frameworks_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.h | 2 | ||||
-rw-r--r-- | include/camera/ProCamera.h | 2 | ||||
-rw-r--r-- | include/camera/camera2/ICameraDeviceCallbacks.h | 22 |
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; }; |