Only provide templates for supported capabilities
Plugs in the StaticProperties class for ease of accessing the
static metadata.
Expands StaticProperties to handle checking template support.
Test: Unit tests pass, test app runs, fixes 2 failing CTS tests on rpi3
BUG: b/32951283
Change-Id: I3077a3507751c3072b88f7d91902bdaa5b53c30e
diff --git a/modules/camera/3_4/camera.h b/modules/camera/3_4/camera.h
index e1f7639..2685fd1 100644
--- a/modules/camera/3_4/camera.h
+++ b/modules/camera/3_4/camera.h
@@ -27,6 +27,7 @@
#include "capture_request.h"
#include "metadata/metadata.h"
#include "request_tracker.h"
+#include "static_properties.h"
#include "stream.h"
namespace default_camera_hal {
@@ -97,6 +98,8 @@
private:
// Camera device handle returned to framework for use
camera3_device_t mDevice;
+ // Get static info from the device and store it in mStaticInfo.
+ int loadStaticInfo();
// Reuse a stream already created by this device
Stream *reuseStream(camera3_stream_t *astream);
// Destroy all streams in a stream array, and the array itself
@@ -121,7 +124,7 @@
// Identifier used by framework to distinguish cameras
const int mId;
// CameraMetadata containing static characteristics
- std::unique_ptr<const android::CameraMetadata> mStaticInfo;
+ std::unique_ptr<StaticProperties> mStaticInfo;
// Flag indicating if settings have been set since
// the last configure_streams() call.
bool mSettingsSet;