第21讲 icameradeviceuser.aidl详解|极客笔记-凯发k8手机登录

本讲是android camera native framework专题的第21讲,我们介绍icameradeviceuser.aidl详解。

更多资源:

资源 描述
在线课程
知识星球 星球名称:深入浅出android camera 星球id: 17296815
wechat 极客笔记圈

什么是icameradeviceuser

camera app执行open camera后, camera java fw调用icameraservice的connectdevice方法获取到一个icameradeviceuser对象

icameradeviceuser代表的就是一颗cameradevice,后续的camera操作流程就是基于icameradeviceuser对象。

什么是icameradeviceuser

icameradeviceuser类图

java端:

icameradeviceuser类图

c 端:

icameradeviceuser类图

icameradeviceuser.aidl接口详解

icameradeviceuser api camera2 java api description
void waituntilidle(); cameradevice的createcapturesession createcapturesession时会先调stoprepeating,然后用该api等待上一次session为idle
void beginconfigure() cameradevice#createcapturesession 开始创建session
int createstream(in outputconfiguration outputconfiguration); cameradevice的createcapturesession 根据outputconfiguration 创建output stream
void deletestream(int streamid); cameradevice的createcapturesession 根据streamid删除未配置的stream
int createinputstream(int width, int height, int format, boolean ismultiresolution); cameradevice的createcapturesession 在reprocess流程中,根据宽/高/format等信息创建input stream
int[] endconfigure(int operatingmode, in camerametadatanative sessionparams, long starttimems); cameradevice的createcapturesession 结束创建session
boolean issessionconfigurationsupported(in sessionconfiguration sessionconfiguration); cameradevice的issessionconfigurationsupported 判断指定的sessionconfiguration是否支持
void prepare(int streamid); cameracapturesession的prepare 预申请某路stream的buffers, 这样能提升第一帧到来的性能
void prepare2(int maxcount, int streamid); cameracapturesession的prepare 预申请某路stream的buffers,可以指定最大张数
void teardown(int streamid); cameracapturesession的teardown(hide api 释放暂时未被填充image的buffers,目的是为了释放memory峰值压力,会以latency和性能作为代价
void updateoutputconfiguration(int streamid, in outputconfiguration outputconfiguration); cameracapturesession 的 updateoutputconfiguration 更新outputconfiguration
void finalizeoutputconfigurations(int streamid, in outputconfiguration outputconfiguration); cameracapturesession 的 finalizeoutputconfigurations 最终决定outputconfiguration
camerametadatanative createdefaultrequest(int templateid); cameradevice的createcapturerequest 根据templateid创建默认的capturerequest
submitinfo submitrequest(in capturerequest request, boolean streaming) na 废弃了,不使用
submitinfo submitrequestlist(in capturerequest[] requestlist, boolean streaming) cameracapturesession的 capture / captureburst setrepeatingrequest / setrepeatingburst 向framework送capturerequests
long cancelrequest(int requestid) cameracapturesession的stoprepeating 取消正在repeating的capturerequest
long flush(); cameracapturesession的abortcaptures 放弃正在处理队列中,未被处理的requests
icameraofflinesession switchtooffline(in icameradevicecallbacks callbacks, in int[] offlineoutputids); cameracapturesession 的 switchtooffline 将当前的cameracapturesession切换到后台继续运行
surface getinputsurface(); cameracapturesession的getinputsurface 在reprocess流程中,创建接受input buffer的surface
void setcameraaudiorestriction(int mode); cameradevice 的 setcameraaudiorestriction 设置当前camera device的audio限制策略
int getglobalaudiorestriction(); cameradevice的 getcameraaudiorestriction 获取当前camera device的audio限制策略
void disconnect() cameradevice#close 关闭camera device
camerametadatanative getcamerainfo(); na 废弃了,不使用

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

网站地图