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

Android11 USB Camera会出现预览绿屏问题

目录

一、问题描述

二、问题原因

三、解决方法


一、问题描述

DDR容量是4G及以上的机器,USB Camera会出现预览绿屏问题。

串口中会刷如下log:

二、问题原因

RGA2使用超过4G内存会异常,导致USB Camera调用rga相关操作报错,从而预览绿屏

三、解决方法

限制USB Camera 预览buf及中间buf申请内存在4G以内。

详见patch:

From 8eebf07d39c069422e8b6eed8b414c3fa21e2c5a Mon Sep 17 00:00:00 2001
From: Wang Panzhenzhuan <randy.wang@rock-chips.com>
Date: Tue, 8 Aug 2023 19:00:29 +0800
Subject: [PATCH] usb camera: gralloc alloc buf in 4G for camera useChange-Id: I59410a65057d7ebb2831cea6a97b48c64cd8d7d2
Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
---camera/device/3.4/default/ExternalCameraDeviceSession.cpp      | 3 ++-camera/device/3.4/default/ExternalCameraGralloc4.cpp           | 3 ++-.../include/ext_device_v3_4_impl/ExternalCameraGralloc4.h      | 1 +3 files changed, 5 insertions(+), 2 deletions(-)mode change 100755 => 100644 camera/device/3.4/default/ExternalCameraGralloc4.cppmode change 100755 => 100644 camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraGralloc4.hdiff --git a/camera/device/3.4/default/ExternalCameraDeviceSession.cpp b/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
index e2ab4fa2f..3e625f9a1 100644
--- a/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
+++ b/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
@@ -3493,9 +3493,10 @@ Status ExternalCameraDeviceSession::configureStreams(GRALLOC_USAGE_HW_VIDEO_ENCODER |GRALLOC_USAGE_HW_CAMERA_WRITE |RK_GRALLOC_USAGE_SPECIFY_STRIDE|
-            GRALLOC_USAGE_PRIVATE_1;
+            GRALLOC_USAGE_PRIVATE_1 | RK_GRALLOC_USAGE_WITHIN_4G;out->streams[i].v3_2.consumerUsage = 0;out->streams[i].v3_2.maxBuffers  = mV4L2BufferCount;
+        ALOGD("allocate RK_GRALLOC_USAGE_WITHIN_4G");switch (config.streams[i].format) {case PixelFormat::BLOB:
diff --git a/camera/device/3.4/default/ExternalCameraGralloc4.cpp b/camera/device/3.4/default/ExternalCameraGralloc4.cpp
old mode 100755
new mode 100644
index 8f233243f..462b7a3b2
--- a/camera/device/3.4/default/ExternalCameraGralloc4.cpp
+++ b/camera/device/3.4/default/ExternalCameraGralloc4.cpp
@@ -130,7 +130,8 @@ static inline void sBufferDescriptorInfo(std::string name, uint32_t width, uint3outDescriptorInfo->height = height;outDescriptorInfo->layerCount = layerCount;outDescriptorInfo->format = static_cast<hardware::graphics::common::V1_2::PixelFormat>(format);
-    outDescriptorInfo->usage = usage;
+    outDescriptorInfo->usage = RK_GRALLOC_USAGE_WITHIN_4G|usage;
+    ALOGD("%s:alloc RGA buf in 4G!\n", __FUNCTION__);outDescriptorInfo->reservedSize = 0;}diff --git a/camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraGralloc4.h b/camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraGralloc4.h
old mode 100755
new mode 100644
index e79774ff9..4d730206d
--- a/camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraGralloc4.h
+++ b/camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraGralloc4.h
@@ -36,6 +36,7 @@//#include <base/synchronization/lock.h>//#include <ui/PixelFormat.h>
+#define RK_GRALLOC_USAGE_WITHIN_4G		(1ULL << 56)#define LOGD(msg,...)       ALOGD("@%s(%d): " msg ,__FUNCTION__,__LINE__,##__VA_ARGS__)#define LOGE(msg,...)       ALOGE("@%s(%d): " msg ,__FUNCTION__,__LINE__,##__VA_ARGS__)
-- 
2.25.1

相关文章:

Android11 USB Camera会出现预览绿屏问题

目录 一、问题描述 二、问题原因 三、解决方法 一、问题描述 DDR容量是4G及以上的机器&#xff0c;USB Camera会出现预览绿屏问题。 串口中会刷如下log: 二、问题原因 RGA2使用超过4G内存会异常&#xff0c;导致USB Camera调用rga相关操作报错&#xff0c;从而预览绿屏 三…...

Mongodb 获取集合(collection)的统计信息

在MongoDB中&#xff0c;获取指定集合&#xff08;collection&#xff09;的统计信息可以通过执行collStats命令来实现。这个命令提供了关于集合的详细信息&#xff0c;包括&#xff1a; 集合的大小索引的大小和数量文档的数量存储空间的使用情况各种统计数据&#xff0c;如平…...

Java中的集合(1)——List、Map和Set

Java标准库自带的java.util包提供了集合类&#xff1a;Collection&#xff0c;它是除Map外所有其他集合类的根接口。Java的java.util包中提供了以下三种类型的集合&#xff1a; List&#xff1a;一种有序列表的集合&#xff0c;例如&#xff0c;按索引排列的Student的List&…...

MySQL8.0主从同步报ERROR 13121错误解决方法

由于平台虚拟机宿主机迁移&#xff0c;导致一套MySQL主从库从节点故障&#xff0c;从节点服务终止&#xff0c;在服务启动后&#xff0c;恢复从节点同步服务&#xff0c;发现了如下报错&#xff1a; mysql> show slave status\G; *************************** 1. row *****…...

【论文阅读】03-Diffusion Models and Representation Learning: A Survey

Abstract&#xff08;摘要&#xff09; 扩散模型是各种视觉任务中流行的生成建模方法&#xff0c;引起了人们的广泛关注它们可以被认为是 自监督学习方法【通过数据本身的结构和特征来训练模型&#xff0c;而不是依赖外部标签】 的一个独特实例&#xff0c;因为它们独立于标签注…...

【深度学习】RNN的简单实现

目录 1.RNNCell 2.RNN 3.RNN_Embedding 1.RNNCell import torchinput_size 4 hidden_size 4 batch_size 1idx2char [e, h, l, o] x_data [1, 0, 2, 2, 3] # 输入&#xff1a;hello y_data [3, 1, 2, 3, 2] # 期待&#xff1a;ohlol# 独热向量 one_hot_lookup [[1, …...

每次请求时,检查 JWT Token的有效期并决定是否需要刷新

为了在每次请求时检查 access_token 的有效期&#xff0c;并在过期时自动刷新&#xff0c;可以通过以下步骤实现&#xff1a; 1. 解析 JWT Token 获取过期时间 JWT token 的有效期是编码在 token 本身的&#xff0c;你可以通过解析 token 来获取它的到期时间。JWT token 是由…...

AI大模型开发架构设计(13)——LLM大模型的向量数据库应用实战

文章目录 LLM大模型的向量数据库应用实战1 大模型的局限性大模型的4点局限性大模型的4点局限性的改进实践方法 2 向量数据库使用场景以及改建大模型向量数据库向量数据库选型知识库文档检索增强(Retrieval Augmented Generation) 3 向量数据库应用技术架构剖析向量数据库应用技…...

WPF中Grid、StackPanel、Canvas、WrapPanel常用属性

Grid常用属性 Grid 控件在 WPF 中非常强大&#xff0c;它提供了多种属性来定义行和列的布局。以下是一些常用的 Grid 属性&#xff1a; RowDefinitions 和 ColumnDefinitions&#xff1a; Grid 控件使用 RowDefinitions 和 ColumnDefinitions 来定义行和列的集合。每个 RowDef…...

【芙丽芳丝净润洗面霜和雅漾舒护活泉喷雾

1. 洁面产品&#xff1a; - 芙丽芳丝净润洗面霜&#xff1a;氨基酸洗面奶的经典产品&#xff0c;成分温和&#xff0c;不含酒精、香料等刺激性成分。泡沫丰富细腻&#xff0c;能够有效清洁皮肤的同时&#xff0c;不会过度剥夺皮肤的油脂&#xff0c;洗后皮肤不紧绷&#xff0c;…...

ubuntu更新Cmake

CMake 先验知识创建软链接如何删除符号链接如何找出失效链接并将其删除PATH 优先级查看当前CMake命令的位置 高版本 CMake 安装参考 先验知识 创建软链接 ln -s <path to the file/folder to be linked> <the path of the link to be created>ln 是链接命令&…...

CMOS晶体管的串联与并联

CMOS晶体管的串联与并联 前言 对于mos管的串联和并联&#xff0c;一直没有整明白&#xff0c;特别是设计到EDA软件中&#xff0c;关于MOS的M和F参数&#xff0c;就更困惑了&#xff0c;今天看了许多资料以及在EDA软件上验证了电路结构与版图的对应关系&#xff0c;总算有点收…...

从IT高管到看门大爷:53岁我的职场华丽转身

该文讲述了一位1971年出生的男士&#xff0c;在53岁时因日企撤资而失业。他曾是IT技术员&#xff0c;后晋升为IT高管兼工会主席&#xff0c;但失业后数百份简历石沉大海&#xff0c;面试也因年龄被取消。他意识到年龄是求职的障碍&#xff0c;开始调整心态&#xff0c;降低期望…...

Redis入门到精通(三):入门Redis看这一篇就够了

文章目录 Redis分布式锁的实现原理Redis实现分布式锁如何合理的控制锁的有效时常&#xff1f;**redisson实现的分布式锁**redisson实现的如何保证主从一致性 Redis的集群方案1.主从复制主从数据的同步原理全量同步增量同步 2.哨兵模式Redis的集群脑裂是什么&#xff1f;3.分片集…...

IP基本原理

IP的定义 当前唯一的网络层协议标准定义数据网络层的封装方式、编址方法 MTU 最大传输单元接口收发数据支持的单个包的最大长度不同二层链路类型的接口的MTU不一致。以太网接口默认MTU1500Byte。PPPoE接口默认MTU1480Byte。 IP头部封装格式 IP 头部长度不固定&#xff0c;2…...

数据分析题面试题系列2

一.如何估算星巴克一天的营业额 a.需求澄清&#xff1a;区域&#xff1f;节假日&#xff1f;产品范围&#xff1f; b.收入销售杯数*单价&#xff08;营业时间*每小时产能*每小时产能利用率&#xff09;*平均单价 Hypo该星巴克门店的营业时间为12小时&#xff08;取整&#x…...

uniapp 单表、多级动态表单添加validateFunction自定义规则

uniapp 多级动态表单添加自定义规则 在uniapp制作小程序时&#xff0c;当涉及到需要设置validateFunction的校验规则时。可能遇到的问题 1、validateFunction不生效&#xff0c;没有触发 2、多层级表单怎么添加validateFunction自定义校验规则 本文将以单表单校验和多表单校…...

FPGA高端图像处理培训第一期,提供工程源码+视频教程+FPGA开发板

目录 1、FPGA图像处理培训现状分析2、本FPGA图像处理培训优势亮点架构全起点高实用性强项目应用级别细节恐怖工程源码清晰 3、本FPGA图像处理培训内容介绍图像处理基本框架图像前处理框架图像中处理框架图像前中处理框架图像后处理框架图像中后处理框架图像处理仿真框架视频教程…...

顺序表的实现(数据结构)——C语言

目录 1.结构与概念 2.分类 3 动态顺序表的实现 SeqList.h SeqList.c 创建SLInit&#xff1a; 尾插SLPushBack以及SLCheak&#xff08;检查空间是否足够&#xff09;&#xff1a; 头插SLPushFront&#xff1a; 尾删SLPopBack 头删SLPopFront 查找指定元素SLFind 指定…...

【VUE】Vue中 computed计算属性和watch侦听器的区别

核心功能不同 computed 是一个计算属性&#xff0c;其核心功能是基于已有的数据属性计算得出新的属性值。当某个依赖的数据发生变化时&#xff0c;computed 会自动重新计算并更新自己的值。因此&#xff0c;可以将 computed 看做是一种“派生状态”。 watch 是一个观察者函数&…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...