CameraServiceProxyWrapper |
mCameraServiceProxyWrapper |
在Camer3Device中 1. 用于产生唯一的logId,调用AIDL HAL configureStreams 时使用 2. 用于记录reconfigureCamera的耗时 |
String8 |
mId |
当前Camera3Device的ID |
bool |
mLegacyClient |
表示是否是Camera API1的Client |
int |
mOperatingMode |
Configure streams带下来的Operation Mode |
CameraMetadataNative |
mSessionParams |
Configure streams带下来的Session Parameter |
bool |
mIsConstrainedHighSpeedConfiguration |
标识是否是High Speed Configuration,有一些逻辑需要特殊处理 |
HalInterface |
mInterface |
Camera HAL ICameraDeviceSession类的封装 |
CameraMetadata |
mDeviceInfo |
存放当前Camera的静态信息 |
std::unordered_map<std::string, CameraMetadata> |
mPhysicalDeviceInfoMap |
如果是Logical multi-cam,这里存放每个Physical Camera的静态信息 |
bool |
mSupportNativeZoomRatio |
是否支持通过Zoom Ratio来控制Zoom |
bool |
mIsCompositeJpegRDisabled |
是否支持JPEG_R的Stream。 JPEG_R结合了传统的 JPEG 压缩图像和嵌入式恢复映射(recovery map)。这种格式主要用于支持 Ultra HDR(高动态范围)图像。 |
CameraMetadata |
mRequestTemplateCache |
缓存默认的CaptureRequest,可存放不同Template的CaptureRequest |
enum Status |
mStatus |
记录当前CameraDevice的状态 |
Vector |
mRecentStatusUpdates |
记录最近更新的Status,在waitUntilStateThenRelock使用 |
StreamSet |
mOutputStreams |
当前CameraDevice配置的输出流 |
Camera3Stream |
mInputStream |
当前CameraDevice配置的输入流 |
SessionStatsBuilder |
mSessionStatsBuilder |
统计Stream的Stats,产生直方图 |
std::map<int32_t, std::set> |
mGroupIdPhysicalCameraMap |
Stream GroupID与Physical Camera ID的映射关系 针对Multi Resolution的Stream才有GroupID,请求Physical Camera Stream时使用 |
int |
mNextStreamId |
单调递增,用于产生Stream ID |
bool |
mNeedConfig |
标识是否需要执行config stream,如果条件未变,不重复configure |
int |
mFakeStreamId |
针对configure stream时mOutputStreams size为0的规避解法 |
bool |
mPauseStateNotify |
用于内部做reconfiguration时,skip掉state 更新通知 |
Vector<sp<camera3::Camera3StreamInterface> > |
mDeletedStreams |
持有待删除的Stream,直到configure结束。有可能在configure的过程中发生Flush操作,这种情况也需要对被即将Delete的Stream做Flash。 |
bool |
mUsePartialResult |
标识HAL是否使用Partial Result(也就是Result会拆成多包上来) |
uint32_t |
mNumPartialResults |
有多少包Partial Result,默认值是1 |
bool |
mDeviceTimeBaseIsRealtime |
Timestamp Source是否是Realtime,是的话要对timestamp进行矫正 |
nsecs_t |
mTimestampOffset |
Monotonic time到Boottime的偏移值 |
sp |
mRequestThread |
处理下发Request的线程 |
InFlightRequestMap |
mInFlightMap |
送给HAL,正在被HAL处理的Request list |
nsecs_t |
mExpectedInflightDuration |
用于判断HAL处理request是否发生Timeout,最小5秒 |
wp |
mStatusTracker |
跟踪Camera3Device的状态切换 |
sp |
mBufferManager |
管理Output Stream的Graphic Buffer,一个Camera3Device只有一个Buffer Manager。为了优化内存用量而使用。 |
sp |
mPreparerThread |
用于执行stream prepare的线程 |
std::list |
mResultQueue |
用于存放HAL送上来的CaptureResult |
wp |
mListener |
用于Camera3Device回调Client |
std::unordered_map<std::string, camera3::DistortionMapper> |
mDistortionMappers |
对于支持畸变矫正的Camera,对CaptureRequest和CaptureResult进行修正 |
std::unordered_map<std::string, camera3::ZoomRatioMapper> |
mZoomRatioMappers |
处理Zoom Ration与Crop Region之间的转换,对CaptureRequest和CaptureResult进行修正 |
std::unordered_map<std::string, camera3::UHRCropAndMeteringRegionMapper> |
mUHRCropAndMeteringRegionMappers |
对于支持ULTRA HIGH RESOLUTION的Camera,对CaptureRequest进行修正 |
std::unordered_map<std::string, camera3::RotateAndCropMapper> |
mRotateAndCropMappers |
对于支持Auto rotate-and-crop的Camera,对CaptureRequest和CaptureResult进行修正 |
camera_metadata_enum_android_scaler_rotate_and_crop_t |
mRotateAndCropOverride |
dumpsys media.camera Debug使用,强制设置RotateAndCrop Mode |
TagMonitor |
mTagMonitor |
Debug使用,用于跟踪CaptureRequest/CaptureResult中的Metadata变化情况 |
metadata_vendor_id_t |
mVendorTagId |
标识Vendor Tag的ID,不同Camera可以有不同的Vendor Tag ID,用于操作Vendor Tag |
int |
mLastTemplateId |
存放最后一次获取默认CaptureRequest的Template ID,如果configure streams没有带session parameters,则以这包参数为session parameters |
camera_metadata_enum_android_control_autoframing |
mAutoframingOverride |
dumpsys media.camera Debug使用,强制设置Autoframing Mode |
std::string |
mActivePhysicalId |
Logical Multicam的情况,记录目前正在使用的Physical Camera ID |
sp<Camera3DeviceInjectionMethods> |
mInjectionMethods |
Inject Camera时使用 |