Sailfish OS Camera架构

时间:2021-08-11
本文章向大家介绍Sailfish OS Camera架构,主要包括Sailfish OS Camera架构使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 1 关键词

  • Gstreamer

    Gstreamer官方参考文档  

    Gstreamer是一个非常强大且通用流媒体框架,其具有非常灵活的模块化特点,本文中的相机技术接触gstreamer其原理是编写了一个gstreamer插件。

  • HAL

    简书描述安卓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