summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-12-09 11:08:14 -0800
committerJames Dong <jdong@google.com>2010-12-10 07:19:13 -0800
commit74920cb1a84907f8732d67f4fae7a4768665d5d2 (patch)
tree3de44e605897479b668e431887f6c266bc3b193f /include
parent337885be6e0eadda2d54977104c5738b03f6fb34 (diff)
downloadframeworks_base-74920cb1a84907f8732d67f4fae7a4768665d5d2.zip
frameworks_base-74920cb1a84907f8732d67f4fae7a4768665d5d2.tar.gz
frameworks_base-74920cb1a84907f8732d67f4fae7a4768665d5d2.tar.bz2
We requires camera hal's implementation should not track the ref count of any outstanding video frames and ignore
releaseRecordingFrame() call after it receives disableMsgType(CAMERA_MSG_VIDEO_FRAME). Change-Id: I2ecb9b3b11dab6bf868ccf8effda1b8df5bcde3c
Diffstat (limited to 'include')
-rw-r--r--include/camera/CameraHardwareInterface.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/include/camera/CameraHardwareInterface.h b/include/camera/CameraHardwareInterface.h
index 3c6c94f..86bd849 100644
--- a/include/camera/CameraHardwareInterface.h
+++ b/include/camera/CameraHardwareInterface.h
@@ -112,6 +112,13 @@ public:
/**
* Disable a message, or a set of messages.
+ *
+ * Once received a call to disableMsgType(CAMERA_MSG_VIDEO_FRAME), camera hal
+ * should not rely on its client to call releaseRecordingFrame() to release
+ * video recording frames sent out by the cameral hal before and after the
+ * disableMsgType(CAMERA_MSG_VIDEO_FRAME) call. Camera hal clients must not
+ * modify/access any video recording frame after calling
+ * disableMsgType(CAMERA_MSG_VIDEO_FRAME).
*/
virtual void disableMsgType(int32_t msgType) = 0;
@@ -216,7 +223,11 @@ public:
/**
* Start record mode. When a record image is available a CAMERA_MSG_VIDEO_FRAME
* message is sent with the corresponding frame. Every record frame must be released
- * by calling releaseRecordingFrame().
+ * by a cameral hal client via releaseRecordingFrame() before the client calls
+ * disableMsgType(CAMERA_MSG_VIDEO_FRAME). After the client calls
+ * disableMsgType(CAMERA_MSG_VIDEO_FRAME), it is camera hal's responsibility
+ * to manage the life-cycle of the video recording frames, and the client must
+ * not modify/access any video recording frames.
*/
virtual status_t startRecording() = 0;
@@ -232,6 +243,13 @@ public:
/**
* Release a record frame previously returned by CAMERA_MSG_VIDEO_FRAME.
+ *
+ * It is camera hal client's responsibility to release video recording
+ * frames sent out by the camera hal before the camera hal receives
+ * a call to disableMsgType(CAMERA_MSG_VIDEO_FRAME). After it receives
+ * the call to disableMsgType(CAMERA_MSG_VIDEO_FRAME), it is camera hal's
+ * responsibility of managing the life-cycle of the video recording
+ * frames.
*/
virtual void releaseRecordingFrame(const sp<IMemory>& mem) = 0;