![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Camera
文章平均质量分 66
smile_sambery
这个作者很懒,什么都没留下…
展开
-
Camera2 request处理结果上报源码分析
在openCamera流程Camera3Device#initialize过程中,会将this对象作为参数传递给CameraProviderManager#openSession方法,而CameraProviderManager在查找到对应的CameraDevice后执行open操作创建session并传递callback参数,然后在创建camera session的过程中作为参数传递给CameraDeviceSession,最后赋值给ResultBatcher中的mCallback变量。原创 2024-02-20 17:54:33 · 678 阅读 · 0 评论 -
Camera2 setRepeatingRequest源码分析
在submitRequestsHelper方法中,首先会检查Camera3Device中流程配置状态是否正常,接着通过convertMetadataListToRequestListLocked方法初始化RequestList,然后再通过RequestThread#setRepeatingRequests进行camera stream命令配置,最后等待request配置完成。CaptureRequest创建完成后,会调用prepareHalRequests方法完成request进一步配置。原创 2024-02-20 17:52:49 · 813 阅读 · 0 评论 -
Camera2 createCaptureSession源码分析
3)检查需要创建的camera stream属性,调用Camera3Device#createStream完成camera stream的创建,保存camera stream id对应的outputConfiguration信息和创建的surface;在这个流程中,主要完成camera stream命令请求的重置,并根据应用传递的camera surface参数重新创建和配置camera stream(input和output)。3)根据1)中获取的结果,更新camera stream通路;原创 2024-02-20 17:50:47 · 816 阅读 · 0 评论 -
Camera2 openCamera源码分析
在CameraService中makeClient流程中,主要根据设备版本号和camera api的版本号来创建camera相关的设备。在CameraDeviceImpl的setRemoteDevice流程中,主要完成的是将底层binder对象封装成ICameraDeviceUserWrapper并注册死亡通知,然后通过执行器在线程中完成camera设备打开的状态回调,最终camera应用获取到打开的camera对象,后续可以通过这个camera对象来完成camera命令的调用。原创 2024-02-20 17:46:14 · 606 阅读 · 0 评论 -
Camera2 getCameraList源码分析
接下来分析CameraService中的addListener流程。在这个方法中,通过ServiceManager获取“media.camera”对应的binder对象用来初始化CameraService实例,然后调用CameraService的addListener接口,获取CameraService本地保存的Camera设备和状态信息,并通过onStatusChangedLocked接口更新mDeviceStatus保存的设备和状态,最后保存获取到的CameraService实例用于下次交互。原创 2024-02-20 17:41:55 · 782 阅读 · 0 评论 -
Android Camera相关类功能整理
camera3_callback_ops:Hal层回调结构体,Hal层处理结果通过当前类回调给Native,定义参考camera.cpp文件中的camera3_callback_ops定义。CameraDevice:CameraDevice Hal实现类,调用CameraModule/CameraDeviceSession和Hal层交互。CameraDeviceClientBase:CameraDeviceUser的实际实现类,向上对接CameraDevice。原创 2023-12-26 17:07:49 · 1168 阅读 · 0 评论 -
Native/Hal层处理GraphicBuffer数据
2.Hal层使用GraphicBufferMapper处理GraphicBuffer对应的buffer_handle_t结构体。1.Native层从ANativeWindowBuffer中获取GraphicBuffer,然后再处理数据。原创 2023-10-25 09:56:58 · 207 阅读 · 0 评论 -
UYVY422和RGBA8888格式转换
UYVY422格式转换RGBA8888。查看源文件和转换后的文件。1.使用ffmpeg命令行进行转换。2.C++方法进行格式转换。原创 2023-09-06 14:44:12 · 1026 阅读 · 0 评论 -
使用libyuv将UYVY格式转换成NV21和RGBA
1.UYVY转换成NV21。2.UYVY转换成RGBA。原创 2023-10-24 17:19:33 · 337 阅读 · 0 评论