android camera data -> surface 显示

一、ais_v4l2_proxy -> v4l2loopback

这里就是将dev上申请的DMA buffer,在ais_server将camera data填充后,通知到ais_v4l2_proxy,然后proxy会将index、时间戳、帧信息cpoy到v4l2loopback中保存起来,等camera v4l2 hal来使用buffer的时候会告诉它用那个index等信息。

这就是为啥你在camera hal看到buffer交互是 "buffer.memory = V4L2_MEMORY_MMAP", 但是在kernal中会看到copy_to_user的操作。

camera data数据是内存映射,camera index、时间戳等信息是copy_to_user操作。

二、v4l2loopback -> c2d buffer

product surface bufffer -> consumer buffer

1、一般在android中向graphicbuffer填充数据的对象是app来绘制,但是camera中是camera hal来填充app申请的camera surface画面,然后通知consumer 去消费buffer

2、Camera3Device: : RequestThread::threadloop 一直再循环中当发现有可用的buffer后,就会将这个buffer set到camera hal去

相关推荐
xiangxiongfly9151 小时前
Android 圆形和圆角矩形总结
android·圆形·圆角·imageview
幻雨様7 小时前
UE5多人MOBA+GAS 45、制作冲刺技能
android·ue5
Jerry说前后端8 小时前
Android 数据可视化开发:从技术选型到性能优化
android·信息可视化·性能优化
Meteors.9 小时前
Android约束布局(ConstraintLayout)常用属性
android
alexhilton10 小时前
玩转Shader之学会如何变形画布
android·kotlin·android jetpack
whysqwhw14 小时前
安卓图片性能优化技巧
android
风往哪边走14 小时前
自定义底部筛选弹框
android
Yyyy48215 小时前
MyCAT基础概念
android
Android轮子哥15 小时前
尝试解决 Android 适配最后一公里
android
雨白16 小时前
OkHttp 源码解析:enqueue 非同步流程与 Dispatcher 调度
android