[libcamera-devel] [PATCH v2 7/7] qcam: dng_writer: Record camera model

Niklas Söderlund niklas.soderlund at ragnatech.se
Mon Aug 10 18:43:06 CEST 2020


Record the model property of the camera if available.

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
 src/qcam/dng_writer.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp
index b5b81f0637b545af..3556dad16fd71b64 100644
--- a/src/qcam/dng_writer.cpp
+++ b/src/qcam/dng_writer.cpp
@@ -15,6 +15,7 @@
 
 #include <libcamera/control_ids.h>
 #include <libcamera/formats.h>
+#include <libcamera/property_ids.h>
 
 using namespace libcamera;
 
@@ -352,6 +353,8 @@ int DNGWriter::write(const char *filename, const Camera *camera,
 		     const ControlList &metadata,
 		     const FrameBuffer *buffer, const void *data)
 {
+	const ControlList &cameraProperties = camera->properties();
+
 	const auto it = formatInfo.find(config.pixelFormat);
 	if (it == formatInfo.cend()) {
 		std::cerr << "Unsupported pixel format" << std::endl;
@@ -386,9 +389,13 @@ int DNGWriter::write(const char *filename, const Camera *camera,
 	TIFFSetField(tif, TIFFTAG_DNGBACKWARDVERSION, version);
 	TIFFSetField(tif, TIFFTAG_FILLORDER, FILLORDER_MSB2LSB);
 	TIFFSetField(tif, TIFFTAG_MAKE, "libcamera");
-	/* \todo Report a real model string instead of id. */
-	TIFFSetField(tif, TIFFTAG_MODEL, camera->id().c_str());
-	TIFFSetField(tif, TIFFTAG_UNIQUECAMERAMODEL, camera->id().c_str());
+
+	if (cameraProperties.contains(properties::Model)) {
+		std::string model = cameraProperties.get(properties::Model);
+		TIFFSetField(tif, TIFFTAG_MODEL, model.c_str());
+		TIFFSetField(tif, TIFFTAG_UNIQUECAMERAMODEL, model.c_str());
+	}
+
 	TIFFSetField(tif, TIFFTAG_SOFTWARE, "qcam");
 	TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
 
-- 
2.28.0



More information about the libcamera-devel mailing list