diff options
Diffstat (limited to 'camera/OMXCameraAdapter/OMXMetadata.cpp')
-rw-r--r-- | camera/OMXCameraAdapter/OMXMetadata.cpp | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/camera/OMXCameraAdapter/OMXMetadata.cpp b/camera/OMXCameraAdapter/OMXMetadata.cpp deleted file mode 100644 index af8c49c..0000000 --- a/camera/OMXCameraAdapter/OMXMetadata.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (C) Texas Instruments - http://www.ti.com/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** -* @file OMX3A.cpp -* -* This file contains functionality for handling 3A configurations. -* -*/ - -#undef LOG_TAG - -#define LOG_TAG "OMXMetaData" - -#include "OMXCameraAdapter.h" -#include <camera/CameraMetadata.h> - -namespace Ti { -namespace Camera { - -#ifdef OMAP_ENHANCEMENT_CPCAM -camera_memory_t * OMXCameraAdapter::getMetaData(const OMX_PTR plat_pvt, - camera_request_memory allocator) const -{ - camera_memory_t * ret = NULL; - - OMX_OTHER_EXTRADATATYPE *extraData; - OMX_FACEDETECTIONTYPE *faceData = NULL; - OMX_TI_WHITEBALANCERESULTTYPE * WBdata = NULL; - OMX_TI_VECTSHOTINFOTYPE *shotInfo = NULL; - OMX_TI_LSCTABLETYPE *lscTbl = NULL; - camera_metadata_t *metaData; - size_t offset = 0; - - size_t metaDataSize = sizeof(camera_metadata_t); - - extraData = getExtradata(plat_pvt, (OMX_EXTRADATATYPE) OMX_FaceDetection); - if ( NULL != extraData ) { - faceData = ( OMX_FACEDETECTIONTYPE * ) extraData->data; - metaDataSize += faceData->ulFaceCount * sizeof(camera_metadata_face_t); - } - - extraData = getExtradata(plat_pvt, (OMX_EXTRADATATYPE) OMX_WhiteBalance); - if ( NULL != extraData ) { - WBdata = ( OMX_TI_WHITEBALANCERESULTTYPE * ) extraData->data; - } - - extraData = getExtradata(plat_pvt, (OMX_EXTRADATATYPE) OMX_TI_VectShotInfo); - if ( NULL != extraData ) { - shotInfo = ( OMX_TI_VECTSHOTINFOTYPE * ) extraData->data; - } - - extraData = getExtradata(plat_pvt, (OMX_EXTRADATATYPE) OMX_TI_LSCTable); - if ( NULL != extraData ) { - lscTbl = ( OMX_TI_LSCTABLETYPE * ) extraData->data; - metaDataSize += OMX_TI_LSC_GAIN_TABLE_SIZE; - } - - ret = allocator(-1, metaDataSize, 1, NULL); - if ( NULL == ret ) { - return NULL; - } else { - metaData = static_cast<camera_metadata_t *> (ret->data); - offset += sizeof(camera_metadata_t); - } - - if ( NULL != faceData ) { - metaData->number_of_faces = 0; - int idx = 0; - metaData->faces_offset = offset; - struct camera_metadata_face *faces = reinterpret_cast<struct camera_metadata_face *> (static_cast<char*>(ret->data) + offset); - for ( int j = 0; j < faceData->ulFaceCount ; j++ ) { - if(faceData->tFacePosition[j].nScore <= FACE_DETECTION_THRESHOLD) { - continue; - } - idx = metaData->number_of_faces; - metaData->number_of_faces++; - // TODO: Rework and re-use encodeFaceCoordinates() - faces[idx].left = faceData->tFacePosition[j].nLeft; - faces[idx].top = faceData->tFacePosition[j].nTop; - faces[idx].bottom = faceData->tFacePosition[j].nWidth; - faces[idx].right = faceData->tFacePosition[j].nHeight; - } - offset += sizeof(camera_metadata_face_t) * metaData->number_of_faces; - } - - if ( NULL != WBdata ) { - metaData->awb_temp = WBdata->nColorTemperature; - metaData->gain_b = WBdata->nGainB; - metaData->gain_gb = WBdata->nGainGB; - metaData->gain_gr = WBdata->nGainGR; - metaData->gain_r = WBdata->nGainR; - metaData->offset_b = WBdata->nOffsetB; - metaData->offset_gb = WBdata->nOffsetGB; - metaData->offset_gr = WBdata->nOffsetGR; - metaData->offset_r = WBdata->nOffsetR; - } - - if ( NULL != lscTbl ) { - metaData->lsc_table_applied = lscTbl->bApplied; - metaData->lsc_table_size = OMX_TI_LSC_GAIN_TABLE_SIZE; - metaData->lsc_table_offset = offset; - uint8_t *lsc_table = reinterpret_cast<uint8_t *> (static_cast<char*>(ret->data) + offset); - memcpy(lsc_table, lscTbl->pGainTable, OMX_TI_LSC_GAIN_TABLE_SIZE); - offset += metaData->lsc_table_size; - } - - if ( NULL != shotInfo ) { - metaData->frame_number = shotInfo->nFrameNum; - metaData->shot_number = shotInfo->nConfigId; - metaData->analog_gain = shotInfo->nAGain; - metaData->analog_gain_req = shotInfo->nReqGain; - metaData->analog_gain_min = shotInfo->nGainMin; - metaData->analog_gain_max = shotInfo->nGainMax; - metaData->analog_gain_error = shotInfo->nSenAGainErr; - metaData->analog_gain_dev = shotInfo->nDevAGain; - metaData->exposure_time = shotInfo->nExpTime; - metaData->exposure_time_req = shotInfo->nReqExpTime; - metaData->exposure_time_min = shotInfo->nExpMin; - metaData->exposure_time_max = shotInfo->nExpMax; - metaData->exposure_time_dev = shotInfo->nDevExpTime; - metaData->exposure_time_error = shotInfo->nSenExpTimeErr; - metaData->exposure_compensation_req = shotInfo->nReqEC; - metaData->exposure_dev = shotInfo->nDevEV; - } - - return ret; -} -#endif - -status_t OMXCameraAdapter::encodePreviewMetadata(camera_frame_metadata_t *meta, const OMX_PTR plat_pvt) -{ - status_t ret = NO_ERROR; -#ifdef OMAP_ENHANCEMENT_CPCAM - OMX_OTHER_EXTRADATATYPE *extraData = NULL; - - extraData = getExtradata(plat_pvt, (OMX_EXTRADATATYPE) OMX_TI_VectShotInfo); - - if ( (NULL != extraData) && (NULL != extraData->data) ) { - OMX_TI_VECTSHOTINFOTYPE *shotInfo; - shotInfo = (OMX_TI_VECTSHOTINFOTYPE*) extraData->data; - - meta->analog_gain = shotInfo->nAGain; - meta->exposure_time = shotInfo->nExpTime; - } else { - meta->analog_gain = -1; - meta->exposure_time = -1; - } - - // Send metadata event only after any value has been changed - if ((metadataLastAnalogGain == meta->analog_gain) && - (metadataLastExposureTime == meta->exposure_time)) { - ret = NOT_ENOUGH_DATA; - } else { - metadataLastAnalogGain = meta->analog_gain; - metadataLastExposureTime = meta->exposure_time; - } -#else - // no-op in non enhancement mode - CAMHAL_UNUSED(meta); - CAMHAL_UNUSED(plat_pvt); -#endif - - return ret; -} - -} // namespace Camera -} // namespace Ti |