美颜相机 视频录制 trace 分析
和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、美颜相机录制视频 trace 分析概览
二、Camera FWK 与 camera HAL 录像交互
三、美颜相机app 与SurfaceFlinger 交互
一、美颜相机录制视频 trace 分析概览
美颜相机录制视频 trace 分析概览
截取1s 内 美颜相机帧率为30fps, 对应的Camera HAL 、Camera FWK 、美颜相机 App 的帧率如上
二、Camera FWK 与 camera HAL 录像交互
Camera FWK 与 camera HAL 录像交互
Camera FWK 与 camera HAL 录像交互
Camera FWK 通过dequeueBuffer 申请有给buffer,处理一帧请求。
Camera FWK
通过HIDL进行一阵请求processCaptureRequest_3_4处理,关键字:HIDL::ICameraDeviceSession::processCaptureRequest_3_4::clientCamera HAL 处理FWK 的processCaptureRequest_3_4请求,关键字:
HIDL::ICameraDeviceSession::processCaptureRequest_3_4::serverCamera HAL 处理完后,通过HIDL callback 通知FWK 处理完成 关键字: HIDL::ICameraDeviceCallback::notify::client
Camera FWK 通过 HIDL::ICameraDeviceCallback::notify::server 获取通知。
Camera HAL 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::client 将一帧的处理结果callback 给FWK
Camera FWK 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::server 接受 Camera HAL callback 帧
Camera FWK 处理完成后 通过queuebuffer 将buffer 送到SurfaceTexture 中.
queuebuffer 后美颜相机对应的surfaceTexture buffer +1
三、美颜相机app 与SurfaceFlinger 交互
美颜相机app 与SurfaceFlinger 交互
美颜相机app 与SurfaceFlinger 交互流程如下:
Camera FWK 通过queuebuffer callback 给app 一帧 buffer 给SurfaceTexture
美颜相机app 对应的 SurfaceTexture buffer +1
美颜相机app 从Camera FWK callback 的帧 取帧处理后,通过queueBuffer 将buffer 送给SF 的BufferQueue中
SurfaceView对应的buffer +1
Vsync-sf 到来后, SF 从 SurfaceView 的buffer 中取出一帧率进行消费并送显, 同时 surface 的 buffer -1
友情推荐:
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
点击阅读原文,为大佬点赞!