hardware: samsung_slsi: libcamera2: Fix EXIF GPS Processing Method
This patch fixes the case that GPS Processing Method field is not
set in EXIF data.
BUG: 7318174
Change-Id: Iad9059072e2b9e27d4c2e90543a966dcd7a26f7a
Signed-off-by: Sungjoong Kang <sj3.kang@samsung.com>
diff --git a/libcamera2/MetadataConverter.cpp b/libcamera2/MetadataConverter.cpp
index 07e08bf..11d1b3a 100644
--- a/libcamera2/MetadataConverter.cpp
+++ b/libcamera2/MetadataConverter.cpp
@@ -78,6 +78,7 @@
uint32_t num_entry = 0;
uint32_t index = 0;
uint32_t i = 0;
+ uint32_t cnt = 0;
camera_metadata_entry_t curr_entry;
struct camera2_shot * dst = NULL;
@@ -92,7 +93,7 @@
dst->ctl.aa.aeTargetFpsRange[1] = 30;
dst->ctl.aa.aeExpCompensation = 5;
- num_entry = (uint32_t)get_camera_metadata_data_count(request);
+ num_entry = (uint32_t)get_camera_metadata_entry_count(request);
for (index = 0 ; index < num_entry ; index++) {
if (get_camera_metadata_entry(request, index, &curr_entry)==0) {
@@ -205,9 +206,13 @@
break;
case ANDROID_JPEG_GPS_PROCESSING_METHOD:
- if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 32))
+ if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE))
break;
- for (i=0 ; i<curr_entry.count ; i++)
+ if (curr_entry.count > 32)
+ cnt = 32;
+ else
+ cnt = curr_entry.count;
+ for (i = 0 ; i < cnt ; i++)
dst_ext->gpsProcessingMethod[i] = curr_entry.data.u8[i];
break;