Sailfish OS Camera架构
1 关键词
- Gstreamer
Gstreamer是一个非常强大且通用流媒体框架,其具有非常灵活的模块化特点,本文中的相机技术接触gstreamer其原理是编写了一个gstreamer插件。
- HAL
Android HAL(Hardware Abstract Layer)硬件抽象层,从字面意思可以看出是对硬件设备的抽象和封装,为Android在不同硬件设备提供统一的访问接口。HAL处于Android framework和Linux kernel driver之间。这种屏蔽了不同设备差异,对于上层开发者来说可以不用关心硬件设备,只需要按照HAL提供的标准接口访问硬件即可。这也为Andriod和GUN Linux的 “嫁接” 提供非常方便的标准。
2 简介
本文主要调研Sailfish OS中jolla camera相机的工作原理,其框架层设计与安卓相机HAL抽象层交互,以控制相机的工作参数和状态,以插件的形式将其与gstreamer连接。本文的基础是假设内核、HAL层都已实现,libhybris将安卓的HAL层代码从bonnic libc转为glibc,方便我们在GUN Linux中访问,整体框架如下图1-1。
图 1-1 Sailfish OS 相机技术框架图
在libhybris的转换下,可以通过android-headers-23和android_hardware_libhardware访问安卓HAL硬件抽象接口,而android.hardware.camera.provider@2.4-service 是一个常驻的后台进程为系统提供相机底层服务,而使用gstreamer作为视频流框架使得相机预览和录制视频等功能更加方便。为了提供一个标准的、统一的相机API层,Sailfish OS在框架上融合这些功能,将功能融合在gst-droidcamsrc项目中,通过标准结构hw_module_t、hw_device_t、camera_device_t访问HAL层相机,控制开关状态和Flash、Focus、White balance、zoom、ISO、EV comp等相机的运行参数。
3 安卓HAL层相机
4 技术方案
4.1 整体设计
4.2 关键技术
4.3 工作原理
4.4 工作流程
4 对接QtMultimedia
5 安卓应用使用Camera
原文地址:https://www.cnblogs.com/xiaoyaobing/p/15127793.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法