目录
代码环境
建立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 使用错误,主要