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.mzph.cn/bicheng/23894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

floor函数

添加链接描述\ #include<bits/stdc.h>using namespace std;const int N 10;int main() {int n;cin>>n;for(int i1;i<50000;i){if(floor(i*1.08)n){cout<<i;return 0;}}cout<<":(";return 0; }floor函数是向下取整 ceil是向上取整 round…

CarSim车辆运动轨迹绘制

CarSim车辆运动轨迹绘制 CarSim中与车辆位置有关的信息分别为Xo和Yo 输出到Simulink中 导入到工作空间中保存&#xff0c;low_carsim_path.mat &#xff0c;绘制结果曲线&#xff0c;low_carsim_path_comp.m data csvread(low_two_path.csv,1,0); low_two_path_x data(:,1)…

【CentOS】手动编译安装make、cmake、gcc、git

摘要 Centos7升级make和gcc版本到最新——CSDN make make 各个版本下载地址 http://ftp.gnu.org/pub/gnu/make 以4.4为例安装&#xff1a; # 下载 wget https://ftp.gnu.org/pub/gnu/make/make-4.4.tar.gz # 解压配置 tar zxf make-4.4.tar.gz cd make-4.4 ./configure --p…

分享我的新版FMEA培训心得

近日&#xff0c;我有幸参加了深圳天行健企业管理咨询公司举办的新版FMEA培训&#xff0c;这次学习不仅让我对FMEA有了更深入的理解&#xff0c;更使我在实际工作中找到了提升产品质量的新路径。 新版FMEA相较于传统版本&#xff0c;更加注重风险识别与预防&#xff0c;强调在…

Java 开发面试题精选:分布式锁相关一篇全搞定

面试路上&#xff0c;分布式锁始终是绕不开的坎&#xff1f;别怕&#xff0c;这篇精心准备的文章正是您的通关秘籍&#xff01;这篇文章聚焦面试官最青睐的提问点&#xff1a;从分布式锁基础概念到其实现机理&#xff0c;再到它在多场景下的应用智慧&#xff1b;深入剖析性能优…

C# FFmpeg 音视频开发总结

&#x1f3c6;作者&#xff1a;科技、互联网行业优质创作者 &#x1f3c6;专注领域&#xff1a;.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 &#x1f3c6;欢迎关注我&#xff08;Net数字智慧化基地&#xff09;&#xff0c;里面…

golang通道(chan)选择(select)与关闭(close)使用示例

1.通道选择 创建两个双向通道 c1 : make(chan string) //双向通道 c2 : make(chan string) //双向通道 向通道写入数据 //协程1向通道1写数据go func() { c1 <- "hello world from c1" }()//协程2向通道2写数据go func() { c2 <- "hello world from …

【递归、搜索与回溯】递归算法

一、经验总结 递归 VS 迭代&#xff08;循环&#xff09; 递归和迭代都解决的是重复的子问题&#xff0c;因此两者是可以相互转化的。利用栈结构可以将递归算法转化为迭代算法。 递归和迭代各有其优缺点&#xff0c;选择时需根据具体场景和需求来决定。 递归的优点包括&#…

苹果眼镜(Vision Pro)专业咨询服务模式优化方案

一、精准定位&#xff1a; 专注于为Apple Vision Pro应用开发者提供一站式、全方位的专业咨询服务&#xff0c;致力于成为开发者在空间计算时代中不可或缺的合作伙伴&#xff0c;共同打造“下一个大事件”。 二、核心业务优化&#xff1a; visionOS策略咨询&#xff1a; 深入…

【氵】Archlinux+KDE Plasma+Wayland 安装nvidia驱动 / 开启HDR

参考: NVIDIA - Arch Linux 中文维基 &#xff08;其实就是把 wiki 简化了一下 注&#xff1a;本教程适用 GeForce 930 起、10 系至 20 系、 Quadro / Tesla / Tegra K-系列以及更新的显卡&#xff08;NV110 以及更新的显卡家族&#xff09;&#xff0c;此处以 RTX3060 为例 …

LlamIndex二 RAG应用开发

在AutoGen)系列后&#xff0c;我又开始了LlamIndex 系列。欢迎查询LlamaIndex 一 简单文档查询 - 掘金 (juejin.cn)了解LlamIndex&#xff0c;今天我们来看看LlamIndex的拿手戏&#xff0c;RAG应用开发。 何为RAG&#xff1f; RAG全称"Retrieval-Augmented Generation&q…

MySQL之创建高性能的索引和查询性能优化(一)

创建高性能的索引 减少索引和数据的碎片 B-Tree索引可能会碎片化&#xff0c;这会降低查询的效率。碎片化的索引可能会以很差或者无序的方式存储在磁盘上。根据设计&#xff0c;B-Tree需要随机磁盘访问才能定位到叶子页&#xff0c;所以随机访问是不可避免地。然而&#xff0…

大田作业全覆盖算法

概述 大田作业全覆盖算法是指在农业生产中&#xff0c;通过合理的路径规划和作业安排&#xff0c;实现对田间作业的全覆盖&#xff0c;避免遗漏任何区域&#xff0c;提高作业效率和质量。该算法通常用于农业机械&#xff0c;如拖拉机、无人机、自动化农机等。以下是实现大田作…

vue处理json数据

背景&#xff1a;后端返回的数据不是我想要的&#xff0c;现在需要把 name 替换为title&#xff08;小声蛐蛐&#xff1a;又让我处理数据&#xff09; 后端返回数据格式 修改字段操作&#xff1a;&#xff08;使用递归遍历的方式将title属性赋了name的值&#xff09; renderT…

shell脚本对编码和行尾符敏感吗

问题 我正在 macOS 上制作一个 NW.js 应用程序&#xff0c;并想通过双击图标在开发模式下运行该应用程序。在第一步中&#xff0c;我试图使我的 shell 脚本正常工作。 在 Windows 上使用 VS Code&#xff0c;我在项目的根目录下创建了一个 run-nw 文件&#xff0c;包含以下内…

详细分析Mysql临时变量的基本知识(附Demo)

目录 前言1. 用户变量2. 会话变量 前言 临时变量主要分为用户变量和会话变量 1. 用户变量 用户变量是特定于会话的&#xff0c;在单个会话内可以在多个语句中共享 以 符号开头在 SQL 语句中使用 SET 语句或直接在查询中赋值 声明和赋值 SET var_name value; -- 或者 SE…

深耕低代码,技术赋能企业转型业务

随着信息化时代的飞速发展&#xff0c;企业对于数字化转型的需求日益迫切。在这个背景下&#xff0c;低代码技术应运而生&#xff0c;为企业提供了一种更加高效、灵活的业务解决方案。本文将围绕“深耕低代码&#xff0c;技术赋能企业转型业务”这一主题&#xff0c;深入探讨低…

构建Vue3项目的几种方式,如何简化setup写法

1、说明 在vue2版本中&#xff0c;我们使用vue-cli脚手架进行构建&#xff0c;而切换到Vue3之后&#xff0c;依然可以使用vue-cli脚手架进行构建&#xff0c;但是官方推荐使用vite工具进行构建&#xff0c;下面将介绍几种方式构建vue3项目。 2、使用vue-cli脚手架构建Vue3项目…

使用Service Worker、Web Workers进行地图渲染优化

地图的渲染涉及到大量的dom&#xff0c; 如果每次地图重渲染都操作dom将会照成很大的性能开销&#xff0c;下面总结两个方案来开发和优化离线地图&#xff0c;以提升地图操作的流畅性和性能&#xff1a; 方案一&#xff1a;使用Service Worker和离线缓存 利用Service Worker技…

180. 连续出现的数字

180. 连续出现的数字 题目链接&#xff1a;180. 连续出现的数字 代码如下&#xff1a; # Write your MySQL query statement below select distinct l1.num as ConsecutiveNums fromLogs as l1,Logs as l2,Logs as l3 wherel1.idl2.id-1and l2.idl3.id-1and l1.numl2.numand …