美颜相机 视频录制 trace 分析

程序员Android

共 1537字,需浏览 4分钟

 ·

2022-04-11 23:25

和你一起终身学习,这里是程序员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 录像交互
  1. Camera FWK 通过dequeueBuffer 申请有给buffer,处理一帧请求。

  2. Camera FWK
    通过HIDL进行一阵请求processCaptureRequest_3_4处理,关键字:HIDL::ICameraDeviceSession::processCaptureRequest_3_4::client

  3. Camera HAL 处理FWK 的processCaptureRequest_3_4请求,关键字:
    HIDL::ICameraDeviceSession::processCaptureRequest_3_4::server

  4. Camera HAL 处理完后,通过HIDL callback 通知FWK 处理完成 关键字: HIDL::ICameraDeviceCallback::notify::client

  5. Camera FWK 通过 HIDL::ICameraDeviceCallback::notify::server 获取通知。

  6. Camera HAL 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::client 将一帧的处理结果callback 给FWK

  7. Camera FWK 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::server 接受 Camera HAL callback 帧

  8. Camera FWK 处理完成后 通过queuebuffer 将buffer 送到SurfaceTexture 中.

  9. queuebuffer 后美颜相机对应的surfaceTexture buffer +1

三、美颜相机app 与SurfaceFlinger 交互

美颜相机app 与SurfaceFlinger 交互

美颜相机app 与SurfaceFlinger 交互流程如下:
  1. Camera FWK 通过queuebuffer callback 给app 一帧 buffer 给SurfaceTexture

  2. 美颜相机app 对应的 SurfaceTexture buffer +1

  3. 美颜相机app 从Camera FWK callback 的帧 取帧处理后,通过queueBuffer 将buffer 送给SF 的BufferQueue中

  4. SurfaceView对应的buffer +1

  5. Vsync-sf 到来后, SF 从 SurfaceView 的buffer 中取出一帧率进行消费并送显, 同时 surface 的 buffer -1

友情推荐:

Android 开发干货集锦

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

点击阅读原文,为大佬点赞!

浏览 92
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报