Android O Camera深度研究

目录

Adnroid O之前的Android camera软件框架

Adnroid O camera软件框架

Passthrough Mode 

Binderized mode

Wrapper shim for libhardware HALs

Wrapper shim for libhardware HALs

Customized Treble Camera HAL/framework

Camera HAL transition and removal plan

Camera HAL transition and removal plan

Other camera framework changes

Android O metata生成方式

FrameWork HAL1 HAL3

Vendor tag及Flash相关

What is Camera ITS?

Camera framework plans  for future releases​​​​​​​


Adnroid O之前的Android camera软件框架

Adnroid O camera软件框架

Passthrough Mode 

Binderized mode

Wrapper shim for libhardware HALs

1.  Google will provide a wrapper shim layer to adapt libhardware camera HAL implementations to the new HIDL interface.

2.  Google will provide wrapper shim for both HAL1.0 and HAL3.2~HAL3.4

        2.1 HIDL ICameraDevice@1.0 maps to libhardware HAL1.0

        2.2 HIDL ICameraDevice@3.2 maps to libhardware HAL3.2 ~ 3.4

        2.3 HIDL ICameraProvider@2.4 maps to libhardware module 1.0 and 2.4

3.  Partners can use the wrapper shim if you do not have customized HAL API in your code

4.  For partners who do have customized HAL APIs, they must implement customized HIDL HAL to add these APIs back. Some parts of wrapper shim source code might still be relevant. Feel free to reuse  them.

Wrapper shim for libhardware HALs

Customized Treble Camera HAL/framework

Camera HAL transition and removal plan

1.  Android O

        1.1 Newly launched devices can still implement HAL1.0, but have to be running binderized mode

        1.2 Upgraded device can be HAL1.0 and run passthrough mode

2.  Android P and Q

        2.1 Newly launched device must implement HAL3 in binderized mode

        2.2 Upgraded devices can still be HAL1.0(and run in whichever mode in launch)

3.  Android R

        3.1 HAL1.0 support will be removed entirely

Camera HAL transition and removal plan

Other camera framework changes

1.  Libhardware modules/device API version no longer supported

        1.1  Module 2.0 ~ 2.3

                It should be fairly easy to upgrade from 2.0 ~ 2.4

                The only required API addition in 2.4 is torch API, which saves significant power in flashlight use  case.

        1.2  Device 3.0 ~ 3.1

                No one should be using these version as far as we know.

        1.3 ZSL feature in API1 <-> HAL3 shim Was implemented via deprecated “bidirectional” stream tyep, which will be removed in HIDL HAL.  

                Switch to PRIVATE_REPROCESSING interface in Android O if you want to keep this feature working

Android O metata生成方式

Overview:

        The camera.metadata interface is used by the Android camera service, camera provider and camera device to retrieve static camera information and issue camera capture controls.

File path:

        android/hardware/interface/camera/metadata/3.2/types.hal

生成文件

        android/hardware/camera/metadata/3.2/types.h

Docs:

        The docs.html for each version for the detailed description of each metadata Android/system/media/camera/docs/docs.html

FrameWork HAL1 HAL3

FrameWork对HAL1/HAL3的接口控制下移到interface层进行配置定义。

文件路径:

        Android/hardware/interface/camera/device/1.0 or 3.2

        其中目录下的type.hal定义接口会使用到的类型定义

生成文件路径:

        Android/hardware/camera/device/3.2/type.cpp,CameraDeviceAll.cpp,CameraDeviceCallbacAll.cpp,CameraDeviceSessionAll.cpp     

        Android/hardware/camera/devcie/3.2/ICameraDevice.h, BnCameraDevice.h,BpCameraDevice.h …

PS:编译器加载libhwbinder.so生成各文件,之后Framework通过hwbinder与生成的中间文件进行交互。

Vendor tag及Flash相关

Vendor tag及Flash接口定义文件:

        Android/hardware/interface/camera/provider/2.4 (API Version)

Overview:

        The camera.provider HAL is used by the Android Camera service to discover,query, and open individual camera devices.

        It also allows for direct control of the flash unit of camera device tha have one, for turning on/off  torch mode.

File

        ICameraProvider.hal    ICameraProviderCallback.hal

API

        setCallback    getVendorTags    cameraDeviceStatusChange       torchModeStatusChange …

@2.4

        First HIDL version of the camera provider HAL.

What is Camera ITS?

1.  CameraITS(ITS) is part of Android Compatibility Test suite (CTS)

        Includes all tests the require verifying image content

        Required for all Android partners

2.  Running ITS currently a very manual and time-consuming process

3.  List of parts provided to partners

        White photo box,tripod,charts,LED lamp

4.  Multiple manual scenes

        scenes[0, 1, 2, 3, 4, 5]

5.  Function tests, not performance metrics

        Timestamps, exp/gain, crop/rotation, 3A, etc.

Camera framework plans  for future releases

 1.  Continue delivring new features and optimization for Camera2 and HAL3 in upcoming Android releases.

2.  Onging test coverage and infrastructure improvements.

3.  API1(deprecated) will continue to exist, working with HAL3 shim.

4.  Middleware/SuperHAL layer remains on our future roadmap to better isolate OEM and SoC logics.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/672998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【限免】杂波环境下线性调频脉冲、巴克码、频率步进脉冲雷达MTI、脉冲压缩【附MATLAB代码】

来源&#xff1a;微信公众号&#xff1a;EW Frontier 本代码主要模拟杂波环境&#xff08;飞机、地杂波、鸟类信号&#xff09;下&#xff0c;Chirp脉冲、巴克码脉冲、频率步进脉冲雷达信号的脉冲压缩及MTI、​匹配滤波。 MATLAB主代码 % 定义参数 fs 1000; % 采样率 T 1; …

MYSQL一、MYSQL的了解

一、MySQL概述 1、数据库相关概念 为了方便&#xff0c;我们一般把mysql数据库管理系统简称位mysql数据库 通过可以操作数据库管理系统&#xff0c;然后再通过数据库管理系统操作&#xff08;数据库&#xff09;和&#xff08;数据库里面的数据&#xff09; 2、当前主流的关系…

Vue3 - Mac系统用文本编辑写html不显示效果的坑

平时在win系统下&#xff0c;可以直接对文本进行编辑&#xff0c;非常的舒服。 在mac系统中&#xff0c;也有类似的功能&#xff0c;就是文本编辑&#xff0c;没想到居然还有坑。 这是我mac系统中创建的html文件&#xff0c;想着没有几行代码&#xff0c;就没有开编辑器了&am…

Java 异常

一、异常的继承体系图 如图 二、Throwable类常用的方法 1.获取异常的信息 public String getMessage() {return detailMessage; } 2.获取异常的原因 // 获取异常的原因 public String getLocalizedMessage() {return getMessage(); } 3.打印异常信息 // 打印异常信息 publi…

NDIS Filter开发-OID 请求

NDIS 定义对象标识符 (OID) 值来标识适配器参数&#xff0c;其中包括操作参数&#xff0c;例如设备特征、可配置的设置和统计信息。 Filter驱动程序可以查询或设置基础驱动程序的操作参数&#xff0c;或过滤/覆盖顶层驱动程序的 OID 请求。 NDIS 还为 NDIS 6.1 及更高版本的Fi…

STM32_SPI

1、SPI简介 1.1 什么是SPI SPI&#xff0c;即Serial Peripheral Interface&#xff0c;串行外设接口。SPI是一种高速的、全双工、同步的串行通信总线&#xff1b;SPI采用主从方式工作&#xff0c;一般有一个主设备和一个或多个从设备&#xff1b;SPI需要至少4根线&#xff0c;…

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于软件开发人员和团队。使用此应用程序&#xff0c;您可以构建和调试现代Web应用程序&#xff0c;并利用扩展帮助探索几乎任何编程语言。…

springboot高校网上选课系统-计算机毕业设计源码85583

摘 要 本论文主要论述了如何使用JAVA语言开发一个高校网上选课系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述高校网上选课系统的当前背景以及系统开发的目…

重复文件怎么查找并清理?电脑重复文件清理工具分享:4个

在日常使用电脑的过程中&#xff0c;我们不可避免地会遇到各种重复文件的问题。这些重复文件不仅占据了宝贵的存储空间&#xff0c;还可能导致系统性能下降&#xff0c;甚至引发一些不必要的问题。因此&#xff0c;如何有效地查找并清理这些重复文件成为了许多用户关注的焦点。…

牛客BM85 验证IP地址【中等 字符串 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880 https://www.lintcode.com/problem/1222/description 思路 直接模拟&#xff0c;注意IPv4,ipv6的条件Java代码 import java.util.*;public class Solution {/*** 验证IP地址…

docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令

核心功能操作镜像 Docker安装mysql docker run -d --name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORDlcl15604007179 mysql docker的基本操作 docker rm 容器名称即可 docker ps 查看当前运行的容器 docker rm 干掉当前容器 docker logs 查看容器命令日…

Day 41 NGINX详解

Nginx详解 一、HTTP协议 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 1、HTTP 工作原理 HTTP协议通信流程 WEB Server&…

数组基础-笔记

数组是非常基础的数据结构&#xff0c;实现运用和理解是两回事 数组是存放在连续内存空间上的相同类型的数据的集合 可以方便的通过下表索引的方式获取到下标下对应的数据。 举一个字符数组的例子&#xff1a; 注意两点&#xff1a; 数组下标从0开始 数组内存空间的地址是连…

AOP案例

黑马程序员JavaWeb开发教程 文章目录 一、案例1.1 案例1.2 步骤1.2.1 准备1.2.2 编码 一、案例 1.1 案例 将之前案例中增、删、改相关节后的操作日志记录到数据库表中。 操作日志&#xff1a;日志信息包含&#xff1a;操作人、操作时间、执行方法的全类名、执行方法名、方法…

pytest框架用例命名规则详解

pytest 测试用例的命名规则是为了确保 pytest 能够正确地识别和执行测试用例。 以下是关于 pytest 测试用例命名规则的详细解释&#xff1a; 1 编写单个测试文件 单个测试文件须以‘test_’开头或者以‘_test’结尾 比如我们创建test_case1.py case2_test.py文件。 2 在单个…

【Mac】Lightroom Classic 2024(LrC 2024中文版) v13.1安装教程

软件介绍 Lightroom Classic 2024 for Mac是一款功能强大的照片编辑和组织软件&#xff0c;专为专业摄影师和爱好者设计。它提供了一系列工具和功能来增强和管理您的数码照片。Lightroom Classic 2024在照片组织和管理方面进行了重大改进。它新增了一个智能化的“发现”面板&a…

电容的电路应用

电容的电路应用 1、陶瓷电容应用于滤波 电源电路&#xff0c;负载电流较小时&#xff0c;可以使用陶瓷电容进行滤波。 C18电容起到滤波作用&#xff0c;因为负载电流比较小&#xff0c;所以可以用小容量的电容&#xff0c;比如经典的10uF、1uF、4.7uF都是可以的 滤波过程&am…

名下企业查询,清晰明了;在线操作,方便快捷

在现代社会&#xff0c;越来越多的人开始涉足创业和投资&#xff0c;拥有自己的企业成为一种时尚。然而&#xff0c;随之而来的是繁琐的企业注册流程和复杂的信息查询。为了解决这个问题&#xff0c;挖数据平台推出了一项名下企业查询接口&#xff0c;提供了一种方便快捷的方式…

easy-captcha生成验证码

引入依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>…

【Docker】学习笔记(超万字图文整理)

前言 再此感谢黑马程序员提供的Docker课程&#xff01; 什么是Docker&#xff1f;看这一篇干货文章就够了&#xff01; UPD: 补充更新微服务集群、Docker镜像仓库部分内容 所有笔记、生活分享首发于个人博客 想要获得最佳的阅读体验&#xff08;无广告且清爽&#xff09;&#…