hardware: samsung_slsi: libcamera2: Camera 2.0 2nd release
This version includes HAL implementation for supporting stillshot.
This version requires dma_buf enabled gscaler and jpeg encodere.
Fixed Color Inversion.
Change-Id: Id4386733d1f3e87ac6fa9b15bb3ed93b2f5f25a5
Signed-off-by: Sungjoong Kang <sj3.kang@samsung.com>
diff --git a/libcamera2/MetadataConverter.cpp b/libcamera2/MetadataConverter.cpp
index b0948bc..8557e67 100644
--- a/libcamera2/MetadataConverter.cpp
+++ b/libcamera2/MetadataConverter.cpp
@@ -27,7 +27,7 @@
* Initial Release
*/
-//#define LOG_NDEBUG 0
+//#define LOG_NDEBUG 1
#define LOG_TAG "MetadataConverter"
#include <utils/Log.h>
@@ -44,7 +44,7 @@
MetadataConverter::~MetadataConverter()
{
- ALOGV("DEBUG(%s):", __func__);
+ ALOGV("DEBUG(%s):", __FUNCTION__);
return;
}
@@ -54,7 +54,7 @@
if (!(entry->type==type))
{
ALOGV("DEBUG(%s):Metadata Missmatch tag(%s) type (%d) count(%d)",
- __func__, get_camera_metadata_tag_name(entry->tag), entry->type, entry->count);
+ __FUNCTION__, get_camera_metadata_tag_name(entry->tag), entry->type, entry->count);
return BAD_VALUE;
}
return NO_ERROR;
@@ -66,20 +66,20 @@
if (!((entry->type==type)&&(entry->count==count)))
{
ALOGV("DEBUG(%s):Metadata Missmatch tag(%s) type (%d) count(%d)",
- __func__, get_camera_metadata_tag_name(entry->tag), entry->type, entry->count);
+ __FUNCTION__, get_camera_metadata_tag_name(entry->tag), entry->type, entry->count);
return BAD_VALUE;
}
return NO_ERROR;
}
-status_t MetadataConverter::ToInternalCtl(camera_metadata_t * request, camera2_ctl_metadata_NEW_t * dst)
+status_t MetadataConverter::ToInternalShot(camera_metadata_t * request, camera2_ctl_metadata_NEW_t * dst)
{
uint32_t num_entry = 0;
uint32_t index = 0;
uint32_t i = 0;
camera_metadata_entry_t curr_entry;
- ALOGV("DEBUG(%s):", __func__);
+ ALOGV("DEBUG(%s):", __FUNCTION__);
if (request == NULL || dst == NULL)
return BAD_VALUE;
@@ -347,7 +347,7 @@
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 1))
break;
dst->ctl.aa.captureIntent = (aa_captureintent_NEW_t)curr_entry.data.u8[0];
- break;
+ break;
case ANDROID_CONTROL_MODE:
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 1))
@@ -437,21 +437,23 @@
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_INT32, 1))
break;
dst->ctl.request.id = curr_entry.data.i32[0];
- ALOGV("DEBUG(%s): ANDROID_REQUEST_ID (%d)", __func__, dst->ctl.request.id);
+ ALOGV("DEBUG(%s): ANDROID_REQUEST_ID (%d)", __FUNCTION__, dst->ctl.request.id);
break;
case ANDROID_REQUEST_METADATA_MODE:
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 1))
break;
dst->ctl.request.metadataMode = (metadata_mode_NEW_t)curr_entry.data.u8[0];
- ALOGV("DEBUG(%s): ANDROID_REQUEST_METADATA_MODE (%d)", __func__, (int)( dst->ctl.request.metadataMode));
+ ALOGV("DEBUG(%s): ANDROID_REQUEST_METADATA_MODE (%d)", __FUNCTION__, (int)( dst->ctl.request.metadataMode));
break;
case ANDROID_REQUEST_OUTPUT_STREAMS:
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE))
break;
- for (i=0 ; i<curr_entry.count ; i++)
+ for (i=0 ; i<curr_entry.count ; i++) {
dst->ctl.request.outputStreams[i] = curr_entry.data.u8[i];
+ ALOGV("DEBUG(%s): OUTPUT_STREAM[%d] = %d ", __FUNCTION__, i, (int)(dst->ctl.request.outputStreams[i]));
+ }
dst->ctl.request.numOutputStream = curr_entry.count;
break;
@@ -459,11 +461,11 @@
if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_INT32, 1))
break;
dst->ctl.request.frameCount = curr_entry.data.i32[0];
- ALOGV("DEBUG(%s): ANDROID_REQUEST_FRAME_COUNT (%d)", __func__, dst->ctl.request.frameCount);
+ ALOGV("DEBUG(%s): ANDROID_REQUEST_FRAME_COUNT (%d)", __FUNCTION__, dst->ctl.request.frameCount);
break;
default:
- ALOGD("DEBUG(%s):Bad Metadata tag (%d)", __func__, curr_entry.tag);
+ ALOGD("DEBUG(%s):Bad Metadata tag (%d)", __FUNCTION__, curr_entry.tag);
break;
}
}
@@ -479,7 +481,7 @@
{
status_t res;
- ALOGV("DEBUG(%s): TEMP version using original request METADATA", __func__);
+ ALOGV("DEBUG(%s): TEMP version using original request METADATA", __FUNCTION__);
if (0 != add_camera_metadata_entry(dst, ANDROID_REQUEST_ID,
&(metadata->ctl.request.id), 1))
return NO_MEMORY;
@@ -495,13 +497,16 @@
if (metadata->ctl.request.metadataMode == METADATA_MODE_NONE_NEW) {
- ALOGV("DEBUG(%s): METADATA_MODE_NONE", __func__);
+ ALOGV("DEBUG(%s): METADATA_MODE_NONE", __FUNCTION__);
return NO_ERROR;
}
- ALOGV("DEBUG(%s): METADATA_MODE_FULL", __func__);
+ ALOGV("DEBUG(%s): METADATA_MODE_FULL", __FUNCTION__);
-
+ if (0 != add_camera_metadata_entry(dst, ANDROID_SENSOR_TIMESTAMP,
+ &(metadata->dm.sensor.timeStamp), 1))
+ return NO_MEMORY;
+ ALOGV("DEBUG(%s): Timestamp: %lld", __FUNCTION__, metadata->dm.sensor.timeStamp);
return NO_ERROR;