当前位置: 首页 > news >正文

Android-Q升级-Camera记录

目录

代码环境

建立Android Q使用的camera仓

Camera底层适配

camx

 原生接口变化

其他编译问题

chi-cdk

数据类型不匹配

case未加break的报错

libalRnBRT_GL_GBWRAPPER链接问题

vidhance编译错误

libarcsat链接问题

vendor/qcom/proprietary

prebuilt_HY11

调试camera遇到的问题

Qcom Android Q PreES的代码,framework中

Qcom Android Q ES代码

骁龙相机的报错

拍照闪退

前置无法1080P录像

Q相机无法使用

骁龙相机界面选项裁剪

E5G打开camera后,点出后面的指纹模块,app界面必现一层蓝框

Camera相关的修改


代码环境

详细请见CM的邮件:[8150-Q]New 3rd party software release

编译代码:

source ./build/envsetup.sh 

lunch <product-name>-userdebug

chmod +x build.sh

./build.sh -j8

(以上环境可能会变,以CM最新发送为准)

建立Android Q使用的camera仓

Qcom release的Android Q源码,很多仓是没有的,对于如下仓都需要申请创建:

a. chi-cdk需要是单独的仓(跟随F1 P,否则不好打patch)

platform/vendor/qcom-proprietary/chi-cdk

b.release的代码是没有camx的,需要创建camx

platform/vendor/qcom-proprietary/camx

c.其他camera底层相关的仓

platform/vendor/xxxx/proprietary/dualcamera_cal

platform/vendor/qcom-proprietary/camx-lib-stats

platform/vendor/xxxx/proprietary/algorithm_manager

具体添加仓的步骤,需要咨询CM

Camera底层适配

camx

 原生接口变化

原生camera接口定义主要在:hardware/libhardware/include/hardware/camera3.h,Android Q上 camera3_device_ops_t, camera3_stream_configuration_t, camera3_callback_ops_t 等结构体有修改;

camx接口定义主要在:

  camx/src/core/hal/camxcommontypes.h

  src/core/hal/camxhal3entry.cpp

  src/core/hal/camxhal3types.h

  src/core/hal/camxhal3types.cpp

其中需要修改/增加不少CAMX_STATIC_ASSERT,高通提供的新camx直接注释掉了这些被修改接口的assert,这样有风险,hal中会使用这些做指针拷贝,如果camx的定义和原生接口不匹配有很大风险;

其他编译问题

a. case未加break的报错

error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]

b. 数据类型不匹配

chi-cdk

数据类型不匹配

case未加break的报错

libalRnBRT_GL_GBWRAPPER链接问题

04-02 03:31:04.783  8752  8752 E CamX    : [ERROR][UTILS  ] camxosutilslinux.cpp:874 LibMap() dlopen: dlopen failed: cannot locate symbol "_ZN7android13GraphicBuffer4lockEjPPv" referenced by "/vendor/lib64/libalRnBRT_GL_GBWRAPPER.so"..., on '/vendor/lib64/camera/components/com.altek.node.distortioncorrection.so'

原因:这个是Android Q上android::GraphicBuffer::lock修改了,导致 libalRnBRT_GL_GBWRAPPER 使用错误,主要

http://www.lryc.cn/news/370575.html

相关文章:

  • Android studio如何导入项目
  • PHP实现一个简单的接口签名方法以及思路分析
  • StartAI”梦想合伙人 ”招募计划
  • 记录:podman安装redis
  • TrinityCore启动报错: MySQL library version (8.0.37 id 80037) does not match
  • 代码随想三刷字符串篇
  • 华为支持手指关节手势的原理
  • Flink的简单学习五
  • C++|哈希应用->位图
  • Rust 实战丨SSE(Server-Sent Events)
  • Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
  • React基础教程:TodoList案例
  • PHP超详细安装及应用
  • 【算法篇】大数加法JavaScript版
  • 【LeetCode 128】 最长连续子序列
  • SpringCloud-面试篇(二十六)
  • 使用__try...__except和try...catch捕获异常实例分享(附源码)
  • 基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)
  • 王德峰视频讲座,王德峰视频全部大全集,百度云百度网盘资源下载
  • Visual Studio和BOM历史渊源
  • 虚拟现实(VR)游戏与增强现实(AR)游戏的区别
  • git已经设置了自己的账号和密码,提交信息还是别人解决方法
  • 探索面向对象与并发编程的完美融合:Java中的实践与思考
  • 探索在线问诊系统的安全性与隐私保护
  • How To: Localize Bar and Ribbon Skin Items
  • 通过 urllib 结合代理IP下载文件实现Python爬虫
  • 单线服务器与双线服务器的区别?
  • 使用Hadoop MapReduce实现各省学生总分降序排序,根据省份分出输出到不同文件
  • LeetCode | 66.加一
  • Oracle最终会扼杀MySQL?(译)