MTK Camera架构中,Tag是应用层与HAL层相互联系的主要纽带,很多应用层或FrameWork层需要HAL去处理或者接收的信息都是通过Request Key、Session Key、Result Key进行上下沟通的,这篇文章主要用来记录一下当初区分一起算法场景所自定义的Tag路径以及一些简单的HAL层获取方法,主要介绍Session Key和Request Key。
1.FrameWork Tag
FrameWork层的修改之后需要update API生成相应的current.txt文件
1.Session Key
FrameWork层定义:



应用层获取与下发:
Session Key对应的是: com.mediatek.configure/setting/sproSceneMode
![]()
![]()
![]()

2.Request Key:
FrameWork层定义
frameworks/base/core/java/android/hardware/camera2/CaptureRequest.java

应用层下发:

2.HAL层 Tag
mtk_metadata_tag.h文件下可查看所有Tag定义
1.Session Key

2.Request Key

单独的定义Request key只需要修改以上文件即可,如下所示为Session Key切换为Request Key时候的一下冲突解决

Requset Key不在这边定义,会与Session Key冲突


mtk_metadata_tag.h除了要定义Request Key之外,还需解决Session Key冲突


VendorTagTable.h: Request Key不需要




总结:
HAL层对Session Key以及Request Key的获取方式以及Session Key在HAL层的具体定义下节再来具体分析吧!
莫道春寒尚料峭,危中有机天地宽 ......
本文详细解读了MTKCamera架构中SessionKey和RequestKey在应用层与HAL层间的交互,包括如何在FrameWorkTag中定义,以及HAL层的获取方法和SessionKey的定义。同时介绍了如何解决SessionKey与RequestKey冲突的问题。
5227

被折叠的 条评论
为什么被折叠?



