Camera API1 相机参数设置流程一 framework层

37 篇文章 12 订阅
订阅专栏
10 篇文章 2 订阅
订阅专栏

Camera API1 相机参数设置流程一 framework层

Camera API1 相机参数设置流程二 hardware层

 

Android P Camera API1 是基于 API2 新框架做的兼容。

Camera 参数的传输:APK -> CameraServer -> camerahalserver -> kernel driver ->  cameraDevice

Package

APK发送相机参数

Camera.Parameters parameters = mCamera.getParameters();
parameters.set(…, …);

 

Framework

一 java

frameworks/base/core/java/android/hardware/Camera.java

Camera.java 是跨语言的核心文件。

Camera.Parameters.set 方法调用 Camera.Parameters.put 方法, 在 put 方法中调用 mMap 保存待发送的 camera 参数。

打印系统日志, 过滤出 camera parameter 的日志

MtkCam/ParamsManager: fb-enlarge-eye=0;fb-enlarge-eye-max=4;fb-enlarge-eye-min=-4;fb-extreme-beauty=false;fb-face-pos=-2000:-2000;fb-sharp=0;fb-sharp-max=12;fb-sharp-max-values=12;fb-sharp-min=-12;fb-sharp-min-values=-12;fb-skin-color=0;fb-skin-color-default=9;fb-skin-color-max=12;fb-skin-color-max-values=12;fb-skin-color-min=-12;fb-skin-color-min-values=-12;fb-slim-face=0;fb-slim-face-max=12;fb-slim-face-max-values=12;fb-slim-face-min=-12;fb-slim-face-min-values=-12;fb-smooth-level=0;fb-smooth-level-default=3;fb-smooth-level-max=12;fb-smooth-level-max-values=12;fb-smooth-level-min=-12;fb-smooth-level-min-values=-12;fb-touch-pos=-2000:-2000;first-preview-frame-black=0;flash-duty-max=1;flash-duty-min=0;flash-duty-value=-1;flash-mode=off;flash-mode-values=off;flash-step-max=0;

 

在  Camera.Parameters.flatten 中组装成上述日志的样式,在 Camera.setParameters 中下发参数到  native_setParameters  中处理。接下来进入熟悉 native  C/CPP 空间 。

 

二 native 层

frameworks/base/core/jni/android_hardware_Camera.cpp

JNI 接口方法 andriod_hardware_Camera_setParameters

frameworks/av/camera/Camera.cpp

调用  camera interface 发送相机参数

frameworks/av/camera/CameraBase.cpp

frameworks/av/services/camera/libcameraservice/CameraService.cpp

Camera 如何连接到 Cameraserver 建立 binder 通信,详见: 《 CameraService 和 Client 链接到 HAL》

Camera API2 有所不同,整理好思路后,抽空写 Camera API2 <--> HAL3 的流程。

如下 CameraBase, 成员函数 connect 中的 asBinder 使用binder实现client <--> server 跨进程通信。 

frameworks/av/services/camera/libcameraservice/api1/Camera2Client.cpp

status_t Camera2Client::setParameters(const String8& params)

frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.cpp

status_t Parameters::set(const String8& paramString)

frameworks/av/services/camera/libcameraservice/device1/CameraHardwareInterface.cpp

sp<hardware::camera::device::V1_0::ICameraDevice> mHidlDevice;

HIDL 全称是 Hardware Interface Definition Language。目的是使 Android 可以在不重新编译 HAL 的情况下对 Framework 进行 OTA 升级。详见:《 Android HIDL 简介》

如下代码是 Camera HAL3 中兼容 HAL1 接口。 详见: 《 Treble 框架下的 Android Camera HAL3 一》

至此进入 Camera HAL 层。

【Android Studio】Camera.Parameters parameters = mCamera.getParameters();NullPointerException空指针异常
好好学习天天向上✿✿ヽ(°▽°)ノ✿
06-27 2169
解决Android Studio 带相机app闪退问题 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
修改framework CameraAPI,旋转摄像头
shijun931011的博客
02-14 745
修改摄像头旋转方向有很多方法,如驱动,hal,应用等修改,这里说一个修改API方法,如果摄像头角度不正确,当每个应用调用API时,需要另外设置旋转。 修改API后,应用不需要更改或根据需要再做调整。 根据CameraAPICamera的类位置: frameworks/base/core/java/android/hardware/Camera.java Camera有个open方法, 当...
Camera API1 相机参数设置流程二 hardware
qq_38907791的博客
04-22 1017
HAL Android P 相机 HAL 代码目录: Android Camera parameters hardware/interfaces/camera/common/1.0/default/CameraParameters.cpp MTK Camera parameters vendor/mediatek/proprietary/hardware/mtkcam/utils/...
Android Camera Framework:从基础到高级
最新发布
小灰灰的博客
07-09 713
在现代移动应用开发相机功能已成为许多应用程序的核心组成部分。Android 提供了一个强大的相机框架,允许开发者轻松集成相机功能到他们的应用。本文将深入探讨 Android Camera Framework 的基础知识、关键组件以及高级功能,帮助开发者充分利用 Android 相机的潜力。是 Camera2 API 的入口点,用于枚举、打开和管理相机设备。通过组合多个曝光捕获,可以实现 HDR 和夜间模式效果。代表一个物理相机设备,可以通过。定义了相机的配置和捕获参数,在使用相机功能之前,需要在。
Camera.setParameters
u012906122的专栏
04-26 78
setParameters需要设置下去,否则previewCallback的数据只是默认分辨率,自己设置的mPreviewSize便不会生效!
Camera Parameters API (一)
小坏的博客
04-24 5460
最近在研究Camera的一些属性,在此把亲测的一些属性跟大家分享。      首先Camera 开发的流程基本 如下(两种):      第一种(初学:直接显示在surfaceview)      1.需要一个surfaceview      2.在权限允许和surfaceview oncreate成功后 打开camera,并且把 surfaceview的holder设置在camera的s
【定制Android系统】Android O Camera(1)——简单梳理 Camera1 的 setParameters 通路.1
我是一只小小小小鸟
08-28 2282
需求:最近在做一个 Camera 相关的项目,最简单粗暴的一个目的就是使用 C++ 开发。也就是说,作为 System/Framework ,我们需要把 Android 的 Camera 系统封装出一套 C++ 接口,以供 SDK/Application 调用,使得 SDK/Application 可以直接使用 C++ 开发,以便更高效地加入 AI 相关的算法。 那么,打开 Came...
[Android P] CameraAPI1 转 HAL3 预览流程(四) — Preview Data
小石不识月,呼作白玉盘。
09-28 3574
总览 预览打开完毕后,就进入了持续预览阶段。 Camera API2 架构下,采用一个 Request 对应一个 Result 的规范,所以在预览期间是需要持续下 Request 来获取预览数据的,而仍然采用 API1 相机应用在 Framework 也会被转换成这样的形式。 其,与 Request 密切相关的一个线程是 Camera3Device::RequestThread,它负责持续下预...
[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview
小石不识月,呼作白玉盘。
09-28 3749
[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview 文章目录[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview总览代码分析startPreview 相关内容Camera2Client::startPreviewCamera2Client::startPreviewLupdatePreview...
camera api2 拍照流程,需要从app到framework再到hal
06-13
相机API2的拍照流程与拍摄RAW照片的流程类似,也涉及到应用(app)、框架framework)和硬件抽象(HAL),下面是在这三个面上使用相机API2拍照的流程: 1. 应用(app):应用程序使用相机管理器...
camera api2 拍照raw流程,需要从app到framework再到hal
06-13
1. 应用(app):应用程序使用相机管理器(CameraManager)打开相机设备,并创建一个用于拍摄的会话。 2. 框架framework):框架相机服务(CameraService)接收应用程序的请求,并与相机驱动程序(camera...
Camera API 1 和API 2 设置获取实时预览的回调数据的格式
十橙
05-07 2862
名字有点拗口哈,本文想说的是在获得camera 实时预览的数据时,怎么设置需要的数据的格式。 API 1 设置预览格式和预览回调: parameters.setPreviewFormat(ImageFormat.NV21); mCamera.setParameters(parameters); mCamera.setPreviewCallback(previewCallback); 默认NV21...
Android Camera框架之Camera Framework(二)
bai915290475的博客
05-13 978
首先,创建一个AIDL文件。
Camera Hal3在Framework架构(一):架构篇
Flying snow
12-09 1823
(1)Hal3架构分析 (A)应用框架 应用代码位于应用框架级别,它使用 Camera 2 API相机硬件进行交互。在内部,这些代码会调用相应的 Binder 接口,以访问与相机互动的原生代码。 (B)AIDL(Binder IPC 接口) 与 CameraService 关联的 binder 接口可在 frameworks/av/camera/aidl/android/hardware 找到。生成的代码会调用较低级别的原生代码以获取对实体相机的访问权限,并返回用于在框架级别创建 CameraDevi
Camera setParameters(), getParameters(),unlock()三个方法之间的限制关系
weixin_34268610的博客
11-16 334
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Camera mCamera = Camera.open(); // 第一次调用getParameters()需要在unlock()方法之前否则出现错误 Camera.Parameters parameters = ...
Android camera: hardware/interfaces/camera
u011279649的专栏
05-17 1155
Camera Device HALThe camera.device HAL interface is used by the Android camera service to operate individual camera devices. Instances of camera.device HAL interface can be obtained via one of the ICa...
android Camera API1+HAL1 takePicture流程 & Android M
Junesxu的博客
03-04 763
上一篇文章讲述了camera开启预览的流程,有了预览后,一般常见的操作是拍照。本文将讲述拍照的控制流的下发和数据流的回调整个流程,因为涉及到数据回调,间会涉及到一点CameraHAL的代码讲解。 1. takePicture Camera.java public final void takePicture(ShutterCallback shutter, PictureCallb...
【定制Android系统】Android O Camera(1)——简单梳理 Camera1 的 setParameters 通路.2(未完不续)
我是一只小小小小鸟
02-18 387
需求:接上一篇,疏通 Camera1APIsetParameters 通路,按照分析,应该调用到 CameraClient.cpp 的 setParameters,然后进入 HAL 。然而,通过打印 Log 发现,并没有走到 CameraClient 类,而是走进了 Camera2Client 类。 CameraService::makeClient() 在 Open Came...
写文章

热门文章

  • 音频中的采样率和比特率的关系 27764
  • 使用 Edge 浏览器抓取 JD cookies 11564
  • Android.mk error: unused parameter 处理方法 9763
  • VS Code c/cpp 插件和配置 7073
  • H264 数据帧头分析 6956

分类专栏

  • Android 37篇
  • Linux 10篇
  • media 12篇
  • c/cpp 2篇
  • python 1篇
  • camera 10篇
  • hal 1篇
  • misc 3篇
  • openGLES 3篇
  • jpeg 3篇
  • exif

最新评论

  • 音频中的采样率和比特率的关系

    brief of gali: 音频比特率就是音频的码率吗?如果我同时调整一个音频输入设备的采样率和比特率,那么该音频设备该以音频比特率还是音频采样率进行采样?

  • openGL 渲染 yuv 的两种方式 glsl

    woter2019: mglTextureY,mglTextureU,mglTextureV,公共变量的定义呢,代码不全

  • openGL 渲染 yuv 的两种方式 glsl

    wushuang443: 楼主,请问下yuv422数据怎么搞?能提供demo参考下吗?有报酬的,谢谢

  • Camera API1 相机参数设置流程二 hardware层

    Abro.: thanks!表情包

  • android 修改第三方库访问权限

    zhandoushi1982: 这个有关so的调用,如何在编译BSP时,就把public.libraries.txt中要修改的内容编译进去,而不用push?

大家在看

  • transformer对位置编码的理解 267
  • Linux:进程状态和优先级 2389
  • MyBatis的配置文件详解 1100
  • 【精品毕设推荐】基于SSM+jsp的学生公寓管理中心系统设计与实现 754

最新文章

  • 群晖搭建 docker OpenGrok 浏览 Android 代码
  • 使用 Edge 浏览器抓取 JD cookies
  • Cmake 编译生成多个库模板
2022年1篇
2021年1篇
2020年4篇
2019年53篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王营销型网站SEO优化费用电商网站搜索优化盐田百度网站优化嘉兴网站优化报价鄢陵口碑好网站优化免费咨询韶关网站搜索优化壹起航在网站优化中影响外链吗淄博网站的优化滁州网站优化公司找哪家沈阳网站关键优化德化县优化网站建设番禺网站seo优化收费网站的优化采选火30星棒湛江网站优化咨询咸宁本地网站优化哪家好平顶山网站推广优化费用情况安阳关键词网站优化潮州具有品牌的免费网站优化莲湖网站推广优化团队清远公司网站关键词优化费用有效网站优化互联网推广黄山网站优化公司费用百度网站按天优化水密码网站优化策略网站seo关键词优化技淮安网站优化要多少钱园岭网站优化成功案例金山区官方网站优化网站优化空间有必要吗虹口区企业网站优化定制方案香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化