[libcamera-devel,v4,10/10] android: libcamera: add useful debug prints
diff mbox series

Message ID 20221027224135.348115-11-nicholas@rothemail.net
State Superseded
Headers show
Series
  • [libcamera-devel,v4,01/10] ipa: workaround libcxx duration limitation
Related show

Commit Message

Nicolas Dufresne via libcamera-devel Oct. 27, 2022, 10:41 p.m. UTC
From: Nicholas Roth <nicholas@rothemail.net>

I identified opportunities to make libcamera's log output easier to
understand while working to get it working on my Android device as a
HAL. These additional logging statements came out of that and will
hopefully prove useful to Android distribution maintainers with the same
goal as mine and to users who attempt to debug tools like Waydroid.

Signed-off-by: Nicholas Roth <nicholas@rothemail.net>
---
 src/android/.camera_hal_config.cpp.swp | Bin 16384 -> 0 bytes
 src/android/camera_capabilities.cpp    |  12 +++++++++---
 src/android/camera_hal_manager.cpp     |   3 ++-
 src/libcamera/.v4l2_subdevice.cpp.swp  | Bin 0 -> 40960 bytes
 4 files changed, 11 insertions(+), 4 deletions(-)
 delete mode 100644 src/android/.camera_hal_config.cpp.swp
 create mode 100644 src/libcamera/.v4l2_subdevice.cpp.swp

GIT binary patch
literal 40960
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
W$#MR$r^2aO^U3kT68cjq^Zx<5#nCGO

literal 0
HcmV?d00001

Patch
diff mbox series

diff --git a/src/android/.camera_hal_config.cpp.swp b/src/android/.camera_hal_config.cpp.swp
deleted file mode 100644
index e6b7220ae345f309242d3d97dd369fe783e65ed6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16384
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
PK!gP7+;cZs4r~7c$v(c4

diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index 64bd8dde..ef0d10d0 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -374,14 +374,20 @@  void CameraCapabilities::computeHwLevel(
 	camera_metadata_enum_android_info_supported_hardware_level
 		hwLevel = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL;
 
-	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR))
+	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR)) {
+		LOG(HAL, Info) << noFull << "missing manual sensor";
 		hwLevel = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED;
+	}
 
-	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING))
+	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING)) {
+		LOG(HAL, Info) << noFull << "missing manual post processing";
 		hwLevel = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED;
+	}
 
-	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE))
+	if (!caps.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE)) {
+		LOG(HAL, Info) << noFull << "missing burst capture";
 		hwLevel = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED;
+	}
 
 	found = staticMetadata_->getEntry(ANDROID_SYNC_MAX_LATENCY, &entry);
 	if (!found || *entry.data.i32 != 0) {
diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
index 7512cc4e..b229e2d5 100644
--- a/src/android/camera_hal_manager.cpp
+++ b/src/android/camera_hal_manager.cpp
@@ -140,7 +140,8 @@  void CameraHalManager::cameraAdded(std::shared_ptr<Camera> cam)
 	 */
 	if (!isCameraExternal && !halConfig_.exists()) {
 		LOG(HAL, Error)
-			<< "HAL configuration file is mandatory for internal cameras";
+			<< "HAL configuration file is mandatory for internal cameras."
+			<< " Camera " << cam->id() << "failed to load";
 		return;
 	}
 
diff --git a/src/libcamera/.v4l2_subdevice.cpp.swp b/src/libcamera/.v4l2_subdevice.cpp.swp
new file mode 100644
index 0000000000000000000000000000000000000000..f4985643e69f6e8d105e41e293e919c72eb82f99