基于MT6737平台,6735m架构
HalSensorList.buildStaticInfo.cpp
先看结构体:
staticchar const*constkStaticMetadataTypeNames[] = { "LENS", "SENSOR", "TUNING_3A", "FlashLIGHT", "SCALER", "FEATURE", "CAMERA", "REQUEST", NULL};这个结构体中成员名字都是字符串,在metadata目录中,每个sensor的metadata文件名字都包含其中一个字符串。config_static_metadata.lens.s5k3h7yxmipiraw.h
config_static_metadata.PRoject.camera.s5k3h7yxmipiraw.h
config_static_metadata.project.flashlight.s5k3h7yxmipiraw.h
config_static_metadata.sensor.s5k3h7yxmipiraw.h
config_static_metadata.tuning_3a.s5k3h7yxmipiraw.h
config_static_metadata_feature.h
config_static_metadata_request_commonType.h
config_static_metadata_scaler.h
其中config_static_metadata.sensor.s5k3h7yxmipiraw.h这个文件会定义:STATIC_METADATA2_BEGIN(DEVICE, SENSOR, SENSOR_DRVNAME_S5K3H7YX_MIPI_RAW)
SENSOR和文件名字中的sensor一一对应,其他文件类似。
函数会
staticMBOOLimpBuildStaticInfo( Info const& rInfo, IMetadata& rMetadata)
会解析出文件句柄:
char const*const pTypeName = kStaticMetadataTypeNames[i]; ----------->前面的字符串机构体
String8 const s8Symbol_Sensor = String8::format("%s_DEVICE_%s_%s", PREFIX_FUNCTION_STATIC_METADATA, pTypeName, rInfo.getSensorDrvName().string()); status = impConstructStaticMetadata_by_SymbolName(s8Symbol_Sensor, rInfo, rMetadata);
新闻热点
疑难解答