diff options
author | Zhijun He <zhijunhe@google.com> | 2014-04-15 14:09:55 -0700 |
---|---|---|
committer | Zhijun He <zhijunhe@google.com> | 2014-04-18 17:55:51 -0700 |
commit | 6adc9ccb2948d9421a0ed4b74f52b909bcec2037 (patch) | |
tree | 511b67a742dcc45fa1e7d7932cb9275069e56fae /services/camera/libcameraservice/device3/Camera3IOStreamBase.h | |
parent | cb010a3fa85db1eb90346b35e484e21e7f1b1a4b (diff) | |
download | frameworks_av-6adc9ccb2948d9421a0ed4b74f52b909bcec2037.zip frameworks_av-6adc9ccb2948d9421a0ed4b74f52b909bcec2037.tar.gz frameworks_av-6adc9ccb2948d9421a0ed4b74f52b909bcec2037.tar.bz2 |
Camera3: block until get an available buffer
Camera3Stream shouldn't error out when the max number of buffers are already
dequeued. It should block until next buffer returned from camera device.
Bug: 11595505
Change-Id: If65a70c29cb04219e14ded0744059c0ab783444b
Diffstat (limited to 'services/camera/libcameraservice/device3/Camera3IOStreamBase.h')
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3IOStreamBase.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3IOStreamBase.h b/services/camera/libcameraservice/device3/Camera3IOStreamBase.h index fcb9d04..a35c290 100644 --- a/services/camera/libcameraservice/device3/Camera3IOStreamBase.h +++ b/services/camera/libcameraservice/device3/Camera3IOStreamBase.h @@ -48,7 +48,10 @@ class Camera3IOStreamBase : protected: size_t mTotalBufferCount; // sum of input and output buffers that are currently acquired by HAL - size_t mDequeuedBufferCount; + size_t mHandoutTotalBufferCount; + // number of output buffers that are currently acquired by HAL. This will be + // Redundant when camera3 streams are no longer bidirectional streams. + size_t mHandoutOutputBufferCount; Condition mBufferReturnedSignal; uint32_t mFrameCount; // Last received output buffer's timestamp @@ -76,6 +79,10 @@ class Camera3IOStreamBase : virtual size_t getBufferCountLocked(); + virtual size_t getHandoutOutputBufferCountLocked(); + + virtual size_t getHandoutInputBufferCountLocked(); + virtual status_t getEndpointUsage(uint32_t *usage) = 0; status_t getBufferPreconditionCheckLocked() const; @@ -92,7 +99,8 @@ class Camera3IOStreamBase : buffer_handle_t *handle, int acquire_fence, int release_fence, - camera3_buffer_status_t status); + camera3_buffer_status_t status, + bool output); }; // class Camera3IOStreamBase |