RK 解决抖音 流行应用 摄像头画面裁剪放大

问题记录

SOC:RK3568

system:Android12

流行应用 一些APP通过打开板载摄像头出现画面裁剪 画面比例不正常或者是预览方向旋转,但是使用相机APP打开却不会

修改:

hardware\interfaces\camera\device\3.4\default\RgaCropScale.cpp

int RgaCropScale::rga_scale_crop(int src_width, int src_height,unsigned long src_fd, int src_format,unsigned long dst_fd,int dst_width, int dst_height,int zoom_val, int mirror,bool flipH, bool flipV, bool isNeedCrop,bool isDstNV21, bool is16Align, bool isYuyvFormat)
{...           src.rotation = 0;if (mirror == 90)src.rotation = HAL_TRANSFORM_ROT_90;else if(mirror == 180)src.rotation = HAL_TRANSFORM_ROT_180;else if(mirror == 270)src.rotation = HAL_TRANSFORM_ROT_270;...}

修改src.rotation赋值:

旋转:

HAL_TRANSFORM_ROT_90;

HAL_TRANSFORM_ROT_180;

HAL_TRANSFORM_ROT_270

镜像:

HAL_TRANSFORM_FLIP_H

HAL_TRANSFORM_FLIP_V

上面修改会影响系统相机画面,添加判断哪个app打开摄像头

frameworks/av/services/camera/libcameraservice/common/Camera2ClientBase.cpp

template <typename TClientBase>
Camera2ClientBase<TClientBase>::Camera2ClientBase(const sp<CameraService>& cameraService,const sp<TCamCallbacks>& remoteCallback,const String16& clientPackageName,const std::optional<String16>& clientFeatureId,const String8& cameraId,int api1CameraId,int cameraFacing,int sensorOrientation,int clientPid,uid_t clientUid,int servicePid,bool overrideForPerfClass,bool legacyClient):TClientBase(cameraService, remoteCallback, clientPackageName, clientFeatureId,cameraId, api1CameraId, cameraFacing, sensorOrientation, clientPid, clientUid,servicePid),mSharedCameraCallbacks(remoteCallback),mDeviceVersion(cameraService->getDeviceVersion(TClientBase::mCameraIdStr)),mDevice(new Camera3Device(cameraId, overrideForPerfClass, legacyClient)),mDeviceActive(false), mApi1CameraId(api1CameraId)
{ALOGI("Camera %s: Opened. Client: %s (PID %d, UID %d)", cameraId.string(),String8(clientPackageName).string(), clientPid, clientUid);++         int iCameraIDatoi = atoi(cameraId.string());
++         if(iCameraIDatoi == 0 || iCameraIDatoi == 1){++__system_property_set("persist.camera.openCameraAPP",String8(clientPackageName).string());
++  }mInitialClientPid = clientPid;LOG_ALWAYS_FATAL_IF(mDevice == 0, "Device should never be NULL here.");
}

hardware\interfaces\camera\device\3.4\default\RgaCropScale.cpp

++#include <cutils/properties.h>int RgaCropScale::rga_scale_crop(int src_width, int src_height,unsigned long src_fd, int src_format,unsigned long dst_fd,int dst_width, int dst_height,int zoom_val, int mirror,bool flipH, bool flipV, bool isNeedCrop,bool isDstNV21, bool is16Align, bool isYuyvFormat)
{...           
--    src.rotation = 0;
--    if (mirror == 90)
--        src.rotation = HAL_TRANSFORM_ROT_90;
--    else if(mirror == 180)
--        src.rotation = HAL_TRANSFORM_ROT_180;
--    else if(mirror == 270)
--        src.rotation = HAL_TRANSFORM_ROT_270;++    char CameraAPP[128];
++    __system_property_get("persist.camera.openCameraAPP",CameraAPP);
++    if(strcmp(CameraAPP,"tv.danmaku.bili") == 0 ){
++        src.rotation = HAL_TRANSFORM_ROT_90;
++    }...}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/517692.html

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

相关文章

ARM电源策略单元Power Policy Unit

本规范描述了电源策略单元&#xff08;PPU&#xff09;架构。它定义了PPU架构的1.1版本。 PPU规范的1.1版本增加了操作模式支持。这使得能够为功能或更高粒度的电源控制原因提供组件特定的电源模式支持。 在本文档中&#xff0c;对PPU或PPU的引用指的是实现了此PPU架构的设备…

实现qq音乐歌词滚动效果

闲来无事&#xff0c;听音乐的时候&#xff0c;突发奇想 实现该效果中&#xff0c;包含了根据声音高低生成音波的功能&#xff0c;有兴趣的直接下载代码即可 这是启动后的效果。

泽攸科普——扫描电子显微镜(SEM)样品制备技术综述

扫描电子显微镜(Scanning Electron Microscope&#xff0c; SEM)作为一种功能强大的表征手段&#xff0c;在材料科学、生物医学、地质矿物学等诸多领域发挥着不可或缺的作用。它利用聚焦的电子束在样品表面扫描&#xff0c;通过检测发射出的各种信号来获取样品的形貌、组成等信…

android基础学习

从上面的描述就可以知道&#xff0c;每一个Activity组件都有一个对应的ViewRoot对象、View对象以及WindowManager.LayoutParams对象。这三个对象的对应关系是由WindowManagerImpl类来维护的。具体来说&#xff0c;就是由WindowManagerImpl类的成员变量mRoots、mViews和mParams所…

【C语言】glibc

一、获取源码 apt install glibc-source 在Debian系统中&#xff0c;通过apt install glibc-source命令安装的glibc源码通常会被放置在/usr/src/glibc目录下。安装完成后&#xff0c;可能需要解压缩该源码包。以下是解压缩源码包的步骤&#xff1a; 1. 打开终端。 2. 切换到源…

STM32各外设初始化步骤

1、GPIO初始化步骤 1、使能GPIO时钟 2、初始化GPIO的输入/输出模式 3、设置GPIO的输出值或获取GPIO的输入值 GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin…

【数学+前缀和】第十四届蓝桥杯省赛C++ A组《平方差》(c++)

【问题描述】 给定 L,R&#xff0c;问 L≤x≤R 中有多少个数 x 满足存在整数 y,z 使得 xy的平方−z的平方。 【输入格式】 输入一行包含两个整数 L,R&#xff0c;用一个空格分隔。 【输出格式】 输出一行包含一个整数满足题目给定条件的 x 的数量。 【数据范围】 对于 40% 的…

前端语义化标签及实例

常用的语义化标签的以下几种&#xff1a; header、nav、article、section、aside、footer、abbr、dfn、address、del、ins、pre、meter、progress <header> 定义文章的页眉信息 <header><h1>我的网站标题</h1><nav><ul><li><a …

npm install 报错gyp ERR! configure error

在windows系统上下载gitee Vue项目源码后&#xff0c;执行npm install安装项目依赖时&#xff0c;报错内容如下&#xff1a; 首先参考该篇作者文章&#xff0c;gyp ERR! configure error-CSDN博客文章浏览阅读1.2w次。npm install 错误 | gyp ERR! configure error分析原因&…

会议活动如何高效地执行?邀请媒体到场报道的注意点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 会议活动高效执行要点与媒体邀请注意事项 一、会议活动高效执行要点&#xff1a; 明确目标&#xff1a;确立清晰、具体的会议目的和预期成果。 详细规划&#xff1a;制定详尽的活动流程…

关于DC/DC电源模块的工作温度问题

关于DC/DC电源模块的工作温度问题 BOSHIDA DC/DC电源模块是一种将直流电源转换为其他电压或电流级别的设备。它通常由输入端、输出端、电感、开关管等部件组成。工作温度是影响电源模块性能和可靠性的一个重要参数。一个合适的工作温度范围可以保证模块的正常工作&#xff0c…

1:2.5万、1:5万、1:10万军用地形图图式

当我们决定要开发水经微图&#xff08;简称“微图”&#xff09;Web版的态势标绘后&#xff0c;在前期调研阶段&#xff0c;无意中检索到一份军用地形图图式标准。 军用地形图图式 本标准规定了1:25 000、1:50 000、1:100 000军用地形图所表示的地物、地貌符号的图形、大小和…