首页 > 其他分享 >APP Stream Manager

APP Stream Manager

时间:2024-04-17 10:45:14浏览次数:24  
标签:调用 Stream buffer APP Framework Manager

 Device HAL3 和 APP Stream Manager 和 Pipeline Model Manager是 MTK HAL三 大组成之一。

 APP Stream Manager: 1.通过 camera3_callback_ops->proccess_capture_result 将数据回调给 Framework。

            2. 定义vendor的实际格式。

            3. Android和MTK之间streaming_info的互相转换

          API:

            1.create()/destroy()        //创建销毁APP Stream Manager

            2. beginConfigureStream()/endConfigureStream()     //配置流时使用

            3. getCaptureRequestMetadataQueue()/getCaptureresultMetadataQueue()   //APP Stream Manager和Framework传递Meatddata时被调用

            4.SubmitRequest()    //向APP Stream Manager传递request时调用

               5. updateResult()     //Pipeline Model处理完数据后将数据传递给APP Stream Manager时被调用

            6. dumpState()

            7. flushRequest()

            8. removeBufferCache()

            10.waitUnitlDrained()   //等待Pipeline Model处理完数据再返回。 

 

APP Stream Manager内部组成图:

            

APP Stream Manager的config stream流程:

            

              Framework通过cameraDeviceSession接口调用beginConfigureStream并传递一个Stream_list,APP Stream Manager会创建metaConfigMap和ImageConfigMap,并对stream_list做解析,

                在metaConfigMap中生成metaStreamInfo,再在ImageConfigMap中创建一个ImageItemFrameQueue队列并在其中保存Stream_list中每个不同的Steam,用于保存下放的request的image buffer。  

             再去配置pipeline,最后再去配置stream

             

 

 APP Stream Manager的process capture request流程:

             

              Framework通过cameraDeviceSession接口调用subimitRequest(),在CreateRequest()中将Framework的request转换为camera3_caoture_request_t,

              再将imageBuffer封装为AppImageStreamBuff,根据Metadata创建AppMetaStreamBuffer。再调用registerRequest()将请求注册到APP Stream Manager内部.

               APP Stream Manager会对调用下来的Request进行处理,并创建一个appRequest给cameraDeviceSession来调用pipeline的SubmitRequest()

               

 

              FrameWork传递下来一个Request时,APP Stream Manage将Request封装为一个FrameParcel保存在创建的FrameQueue中。

              FramePracel中又有ImageItemSet和MetaItemSet,其中是不同的流的buffer,把ImageItemSet和MetaItemSet中的output/input buffer的指针存放Request0 中,

              再将ImageItemSet的每个output buffer的指针保存到流对应的ImageItemFrameQueue中队列,方便回调时管理buffer先进先出的返回规则。

              (B,C,D为StreamA,StreamB,StreamC)

 

APP Stream Manager的 callback流程:

             

               pipeline处理完数据后调用APP Stream Manager的UpdateResult(),对收到的ImageBuffer和metadata进行转换,并回调到Framework。

              快照流程:

               

   

                图片的回调:

                

 

                   error buffer的回调:

                 

 

标签:调用,Stream,buffer,APP,Framework,Manager
From: https://www.cnblogs.com/zsy12138/p/11390609.html

相关文章

  • uniapp中轮播控件中video播放器不能播放等,事件失效
    如题:在uniapp中轮播控件中video播放器不能播放等,事件失效的原因与解决方法:原因:一、首先css中的pointer-events为DOM元素的鼠标事件,值如下:1、auto-----默认值,鼠标事件可以穿透到设置该样式的元素,该元素的鼠标事件的触发;2、none-----不再监听该元素的鼠标事件,......
  • http请求头中application/x-www-form-urlencoded和multipart/form-data区别
    application/x-www-form-urlencoded和multipart/form-data是两种不同的Content-Type,它们在网络请求中(尤其是POST请求)用来指定表单数据的编码格式application/x-www-form-urlencoded:•这是最常见的表单数据编码方式,也是HTML表单的默认编码类型。•所有表单字段名和值都会......
  • 有限元分析与应用 | Finite Element Method (FEM) Analysis and Applications
    第1讲引论/1.2变形体力学的要点https://learning.edx.org/course/course-v1:TsinghuaX+70120073x+1T2024/block-v1:TsinghuaX+70120073x+1T2024+type@sequential+block@5c00cb7f61af4dc8abb857abadc46151/block-v1:TsinghuaX+70120073x+1T2024+type@vertical+block@579410847......
  • 肖sir__app之monkey测试
    momkey_使用:一、adb命令:1、dos下链接:adbconnect127.0.0.1:62001 2、adbdevices原文:Listofdevicesattached(附设)意思:所附设备清单 device:已识别的设备表示连接成功unauthorized:没有授权需要手机授权才能连接unkown:未识别的设备offline:离线设备 3、adbvers......
  • Command line is too long. Shorten command line for JooLunMallApiApplication or a
      在启动微服务项目的某个时候,一直启动不起来,报Commandlineistoolong.ShortencommandlineforApplicationoralsoforApplicatio,在网上查阅资料后,发现这个问题,是因为启动命令太长(就是main方法类)。  解决方法:  选择工具栏的Run并下拉选Run,之后会有个弹窗,选择......
  • 实验一原型设计——在线听歌App
    一、原型设计工具的各自的适用领域及优缺点:1、墨刀:适用领域:交互设计:墨刀提供了丰富的交互组件和动画效果,能够快速创建具有交互功能的原型。移动应用原型设计:墨刀专注于移动应用的原型设计,支持各种常见移动设备的屏幕尺寸和分辨率。用户测试和反馈收集:墨刀支持在线分享原型,轻......
  • Could not set parameters for mapping
    错误现象:Resolved[org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.type.TypeException:Couldnotsetparametersformapping:ParameterMapping{property='keywords',mode=IN,javaType=classjava.lang.Object,jdbcType=n......
  • 实验一原型设计——音乐社交类app
    一、对比墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(一)Moqups:1.适用领域:Moqups适用于快速创建简单的线框图和原型,特别是对于团队合作和迭代设计有很好的支持。2.优点:用户界面简洁,易于学习和使用,适合快速原型设计。具有丰富的模板和图形库,支持团队协作和......
  • 实验一:原型设计-网易云在线听歌app
    一、原型设计工具的各自的适用领域及优缺点(一)、Axure的优缺点1.主要优点Axure作为老牌的原型图工具,功能最齐全,交互最多样,基本任何想要的效果都可以实现,尤其在制作PC端原型图上有优势。2.主要缺点Axure缺点同样也相当明显,Axure的动态面板、中继器等功能都是强大的,但是不容易......
  • 实验一原型设计——随“易”听app
    实验一原型设计——随“易”听app一.对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(一)墨刀1.适用领域:墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、设计师、开发、销售、运营及创业者等用户群体,能够搭建为......