目录
3.camera3_capture_request_t这个数据结构体还有用吗
前言
本文主要记录些Camera Servie的一些问题的理解,对几个问题进行讨论,一些参考Camera Service
一、代码位置
服务的进程:/system/bin/cameraserver,进程创建
二、关系类图
几个关键接口:
setStreamingRequestList
三、问题讨论
1.Buffer是在哪分配的,它是怎么轮转的
1.Buffer的数量
status_t Camera3Device::HalInterface::configureStreams(const camera_metadata_t
*sessionParams,
camera3_stream_configuration *config, const std::vector<uint32_t>& bufferSizes)
通过HAL获取返回值
dst->max_buffers = src.v3_2.maxBuffers;
2.Buffer轮转
通过threadloop完成轮转
bool Camera3Device::RequestThread::threadLoop()
请求之间等待的地方应该是buffer轮转过程中是在getbuffer那里等待
prepareHalRequests()
mRepeatingRequests如果不为空,就将mRepeatingRequests里的request插入到mRequestQueue下发队列里

本文深入探讨了Android Camera Service的相关问题,包括Buffer的分配、轮转机制,Metadata的下发方式,camera3_capture_request_t数据结构的作用,以及registerStream中的stream set概念。通过对关键代码位置和关系类图的分析,揭示了Camera Service内部的工作原理。

最低0.47元/天 解锁文章
3358

被折叠的 条评论
为什么被折叠?



