summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/Camera2Device.h
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2012-08-24 11:29:22 -0700
committerEino-Ville Talvala <etalvala@google.com>2012-08-27 09:14:50 -0700
commitcab96a4a7a2900fa991ab77ae45ba8d4be97e054 (patch)
tree3622d5ac476753b4771d63dbd80a15e26f419dea /services/camera/libcameraservice/Camera2Device.h
parent690921927f289da73556ea71c28981194af8ffcd (diff)
downloadframeworks_av-cab96a4a7a2900fa991ab77ae45ba8d4be97e054.zip
frameworks_av-cab96a4a7a2900fa991ab77ae45ba8d4be97e054.tar.gz
frameworks_av-cab96a4a7a2900fa991ab77ae45ba8d4be97e054.tar.bz2
Camera2: Use CameraMetadata wrapper class.
Wrap the use of the camera_metadata library inside a CameraMetadata class to avoid memory leaks, improve code clarity, and increase type safety. Bug: 6243944 Change-Id: I90ca592b5875e27e4c58ea1ca680582dc3c3b56a
Diffstat (limited to 'services/camera/libcameraservice/Camera2Device.h')
-rw-r--r--services/camera/libcameraservice/Camera2Device.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/services/camera/libcameraservice/Camera2Device.h b/services/camera/libcameraservice/Camera2Device.h
index 790b946..06047b8 100644
--- a/services/camera/libcameraservice/Camera2Device.h
+++ b/services/camera/libcameraservice/Camera2Device.h
@@ -27,6 +27,7 @@
#include <utils/Vector.h>
#include "hardware/camera2.h"
+#include "CameraMetadata.h"
namespace android {
@@ -41,21 +42,26 @@ class Camera2Device : public virtual RefBase {
status_t dump(int fd, const Vector<String16>& args);
/**
- * Get a pointer to the device's static characteristics metadata buffer
+ * The device's static characteristics metadata buffer
*/
- camera_metadata_t* info();
+ const CameraMetadata& info() const;
/**
* Submit request for capture. The Camera2Device takes ownership of the
* passed-in buffer.
*/
- status_t capture(camera_metadata_t *request);
+ status_t capture(CameraMetadata &request);
/**
* Submit request for streaming. The Camera2Device makes a copy of the
* passed-in buffer and the caller retains ownership.
*/
- status_t setStreamingRequest(camera_metadata_t *request);
+ status_t setStreamingRequest(const CameraMetadata &request);
+
+ /**
+ * Clear the streaming request slot.
+ */
+ status_t clearStreamingRequest();
/**
* Create an output stream of the requested size and format.
@@ -92,8 +98,7 @@ class Camera2Device : public virtual RefBase {
* Create a metadata buffer with fields that the HAL device believes are
* best for the given use case
*/
- status_t createDefaultRequest(int templateId,
- camera_metadata_t **request);
+ status_t createDefaultRequest(int templateId, CameraMetadata *request);
/**
* Wait until all requests have been processed. Returns INVALID_OPERATION if
@@ -142,7 +147,7 @@ class Camera2Device : public virtual RefBase {
* Get next metadata frame from the frame queue. Returns NULL if the queue
* is empty; caller takes ownership of the metadata buffer.
*/
- status_t getNextFrame(camera_metadata_t **frame);
+ status_t getNextFrame(CameraMetadata *frame);
/**
* Trigger auto-focus. The latest ID used in a trigger autofocus or cancel
@@ -170,7 +175,7 @@ class Camera2Device : public virtual RefBase {
const int mId;
camera2_device_t *mDevice;
- camera_metadata_t *mDeviceInfo;
+ CameraMetadata mDeviceInfo;
vendor_tag_query_ops_t *mVendorTagOps;
/**