哈~~哈~
码龄4年
关注
提问 私信
  • 博客:41,606
    视频:2
    41,608
    总访问量
  • 36
    原创
  • 70,052
    排名
  • 361
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-12-29
博客简介:

qq_54089476的博客

查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    606
    当月
    31
个人成就
  • 获得469次点赞
  • 内容获得18次评论
  • 获得512次收藏
创作历程
  • 2篇
    2025年
  • 26篇
    2024年
  • 5篇
    2023年
  • 3篇
    2022年
成就勋章
TA的专栏
  • 音视频专题
    12篇
  • 安卓系统进阶宝典
    13篇
兴趣领域 设置
  • 编程语言
    c++c语言
  • 数据结构与算法
    数据结构
  • 嵌入式
    嵌入式硬件
  • 音视频
    视频编解码
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

git命令手册

切换目标分支(以master为目标分支为例)# 使用 rebase 重新整理提交历史。# 将一个 commit 提交到新的分支。# 拉取仓库master分支的最新版本。# 在master分支下创建分支。#创建本地分支跟踪远程分支并切换。# 查看提交历史的图形化形式。# 编辑 Git 配置文件。# 恢复某个文件的某个版本。# 合并多个提交为一个提交。#取消最近的commit。#查看所有的git配置项。#关闭文件权限的提交。
原创
发布博客 前天 17:04 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

实现linux硬盘smart检测

SkDisk *d 要操作的硬盘对象 这个是通过sk_disk_open(const char *name, SkDisk **d)获取的。SkSmartAttributeParseCallback cb 回调函数指针, 处理每个解析后的 SMART 属性的回调函数。const SkSmartParsedData **data 解析后的 SMART 数据。的指针,包含一个 SMART 属性的解析结果。:用户自定义的数据,直接传递到回调函数中。SkDisk *d 要操作的硬盘对象。
原创
发布博客 前天 16:51 ·
437 阅读 ·
9 点赞 ·
0 评论 ·
6 收藏

RV1126采集VI视频数据流

这个章节主要是讲解如何通过RKMEDIA的API获取RV1126的VI视频流,虽然这部分在之前的课程里面讲解了很多次,但还是要带着大家回顾一下这部分代码。)、第二个参数:通道号ID(这里填0,因为RGA模块创建的通道号是0)、第三个参数:VI码流的缓冲数据。死循环获取VI码流的数据,这里的模块号是RK_ID_VI,通道号是CHN_ID:0,第三个参数:-1阻塞获取。去设置VI模块,设置完VI模块则需要对其进行使能。VI模块捕捉视频的类型,这里默认填写MMAP。VI模块的id号,用于初始化和使能VI模块。
原创
发布博客 2024.09.11 ·
1134 阅读 ·
8 点赞 ·
0 评论 ·
7 收藏

RGA模块的讲解

stImgIn是视频输入的结构体,stImgOut是处理后的视频结构体。由于网页显示的图像是RGB的彩色图像,所以我们需要使用RGA模块把NV12的灰度图像转换成RGB的彩色图像。),最后把RGA的数据赋值到共享内存里面,代码是(共享内存的内容下节课讲解)。视频输入的分辨率虚宽,虚宽的数值跟分辨率宽度数值一致都是1920。视频输入的分辨率虚高,虚高的数值跟分辨率高度数值一致都是1080。视频输出的分辨率虚宽,虚宽的数值跟分辨率宽度数值一致都是1920。上面是RGA模块初始化的代码,这里使用的结构体是。
原创
发布博客 2024.09.11 ·
473 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

共享内存的使用

这是Linux共享内存的创建函数,调用该函数后Linux的内核就可以申请一块内存,并且共享内存是以”页”作为单位,一页等于4KB = 4096bytes,所以在创建共享内存的时候大小最好是4KB的整数倍。shmctl是删除共享内存的方法,它可以将共享内存的状态标记为删除状态。值得注意的是,当共享内存被标识为删除状态后,它不会被马上删除,直到所有进程全部和共享内存全部解除关联,才会彻底被删除。当进程不需要操作共享内存,可以让进程之间和共享内存解除关联,进程推出之后,就结束进程和共享内存关联就自动解除。
原创
发布博客 2024.09.02 ·
1082 阅读 ·
7 点赞 ·
0 评论 ·
18 收藏

CA证书说明与使用

对于私钥/公钥的文件后缀有时候用 key/crt,有时候用 pem,其实这不重要,重要的是文件中的内容格式。主要功能为:证书发放、证书更新、证书撤销和证书验证。生成CA证书之后可以直接部署在服务器上,也可以通过下面的步骤,用CA证书签署服务器公钥生成服务器证书,然后部署到服务器上。2、CA机构对请求文件进行身份确认,邮箱、第三方数据库、当面认证和身份确认等,根据身份认证等级来划分不同的认证方式。通过openssl生成证书,需要生成CA密钥对和CA证书,而第三方CA机构颁发只需要提供一个请求文件即可。
原创
发布博客 2024.09.02 ·
3865 阅读 ·
32 点赞 ·
0 评论 ·
40 收藏

linux下QOS:应用篇

Linux采用了基于对象的实现方法,qos还能保证对不同接口采用不同的策略,TC QOS有很多拥塞控制的机制默认的是FIFo还有其他PQ、CQ、WFQ等.策略类用结构体:Qdisc_ops表示。每个设备可以采用不同的策略对象,在设备和对象的关联需要到Qdisc结构体。并且在上一节我们已经讲了tc的三级树型组织.这里不再贴图. 还有一点注意的就是tc控发不空收.
原创
发布博客 2024.08.16 ·
1200 阅读 ·
13 点赞 ·
0 评论 ·
23 收藏

linux下QOS:理论篇

关于qos ,也是linux下面必备功能之一,一般只需要结合iptables/etables/iproute2 和tc配合即可实现大部分功能. 网上讲这么方面的资料很多,大部分都讲tc命令的应用.这里就先从理论入手.QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。但是对关键应用和多媒体应用就十分必要。
原创
发布博客 2024.08.16 ·
1299 阅读 ·
7 点赞 ·
0 评论 ·
28 收藏

onvif技术框架介绍

在OSI网络通信模型中,RPC跨域了传输层和应用层。wsdl(Web Services Description Language,网络服务描述语言)理解起来很简单,就跟我们平时开发c语言和c++语言一样,我们要写头文件.h或者.hpp,头文件里面都是函数声明,会对这个函数做详细的注解,比如说:函数发回值、传参等等,具体是什么样子的,这个可以结合视频教程来看!没错那就是soap协议,这个协议大家可以不用去了解非常详细,比如常规说的方法:协议投+协议体,这个在做onvif开发的时候,是没有必要去了解的。
原创
发布博客 2024.08.12 ·
624 阅读 ·
24 点赞 ·
0 评论 ·
20 收藏

RTMP协议讲解

其中Message Body指的是每一个分割消息的负载部分,而每个被分割的数据块大小固定为128个字节,并且在首部加上Chunk Header就组成了一块完整的消息分块。它占用3个字节,它表示的是所在的流信息、消息长度和类型都是相同的。上面这个图是chunk basic header长度为3byte的情况,这种情况的chunk header的特点是,第一个字节的位置全部设置为1。它代表的是解析时候的实时时间戳,它最大的取值范围是0xffffff,当时间戳超过这个最大值的时候,所有字节位设置为1。
原创
发布博客 2024.08.12 ·
1048 阅读 ·
16 点赞 ·
0 评论 ·
9 收藏

H264记录和翻译

雷神h264源码参考实现学习。
原创
发布博客 2024.08.02 ·
1195 阅读 ·
24 点赞 ·
0 评论 ·
27 收藏

h264/h265编解码专题讲解

使用帧内预测的I帧可以进行独立编解码,不受其他帧的影响,I帧可以作为P帧和B帧的参考帧。而P帧和B帧采用帧间预测,具有很大的压缩比,能够很大提高压缩率。同时,P帧可以作为其后P帧的参考帧,或者作为其前后B帧的参考帧,所以P帧可能会造成误差的扩散,往往通过周期插入I帧来阻止误差积累。一般来说,对于像h264、h265编解码器,一般会采用块级编码,也就是预先将一幅图像切割为多个像素块,一次对块内的部分或者所有的像素进行预测和编码;‘是对同一帧数据使用帧内编码和帧间编码多个编码策略。
原创
发布博客 2024.07.26 ·
1219 阅读 ·
20 点赞 ·
0 评论 ·
9 收藏

通过JNI调用librkaiq库

由于rkaiq会依赖系统的libutils.so、libcutils.so库,查看/system/etc/public.libraries.txt和/vendor/etc/public.libraries.txt文件中列举的so库,根据链接器命名空间的限制规则APP进程默认只允许打开这些系统so库(通过java调用System.loadLibrary和native调用dlopen)。
原创
发布博客 2024.07.24 ·
346 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏

RkAiq(Rk Auto Image Quality)模块讲解

ISP30 包含了一系列的图像处理算法模块,主要包括:暗电流矫正、坏点矫正、3A、HDR、镜头阴影矫正、镜头畸变矫正、3DLUT、去噪(包括RAW域去噪,多帧降噪,颜色去噪等)、锐化等。ISP30包括硬件算法实现及软件逻辑控制部分,RkAiq即为软件逻辑控制部分的实现。RkAiq软件模块主要实现的功能为:从ISP驱动获取图像统计,结合IQ Tuning参数,使用一系列算法计算出新的ISP、Sensor等硬件参数,不断迭代该过程,最终达到最优的图像效果。
原创
发布博客 2024.07.24 ·
1985 阅读 ·
16 点赞 ·
0 评论 ·
22 收藏

一种Android系统双屏异显的两路音频实现方法

在 h a r d w a r e / l i b h a r d w a r e / 下 打 上 补 丁 D u a l _ a u d i o _ h a r d w a r e _式,这就是audio_hw_device、audio_stream_in及audio_stream_out等等存在的目的,这些。时,mHeadState的状态设置成BIT_HDMI_AUDIO;状态设置包括BIT_HDMI_AUDIO和BIT_USB_HEADSET_DGTL,目的是同时打开hdmi和speaker。
原创
发布博客 2024.07.20 ·
1176 阅读 ·
20 点赞 ·
0 评论 ·
11 收藏

RK3588 tinyalsa_hal添加一个自定义声卡输入和输出

输出流程图:在声卡列表snd_out_sound_cards里添加一个自己的声卡,比如添加一个dev_proc_info参考一下rk的speaker:将声卡添加到输出流中:根据上面的输出流程图,首先会调用adev_open_output_stream这个函数来打开要配置输出声卡,write配置为out_write最终是调用了start_output_stream函数在 read_out_sound_card函数里面获取声卡id添加到dev_out中。
原创
发布博客 2024.07.20 ·
886 阅读 ·
14 点赞 ·
0 评论 ·
9 收藏

RK3588 Android12 移植opencv库,并在camera hal通过opencv处理图像

找到对应的编译Android.mk并加上链接opencv库,这里在rk3588里面对应的camera hal编译文件是。移植完成后,我们需要把opencv应用到camera hal中进行图像处理。最后在对应图像帧处理的地方加入我们的方法就可以了。在官网下载opencv安卓版本。
原创
发布博客 2024.07.15 ·
530 阅读 ·
1 点赞 ·
3 评论 ·
4 收藏

RK3588 Android12 红外遥控预览镜头缩放(数码变焦)

原Rect的宽是 rect.width(),放大到最大时 zoomRect 的宽是 rect.width() / maxZoom,因为有左右两边,所以它们的差值需要除以2,然后划分成 MAX_ZOOM 份,需要再除以 MAX_ZOOM。再简单说明一下上面的代码,因为本身maxZoom的值并不会很大,如果直接使用 1~maxZoom 的 int 值去放大缩小,画面变化就很剧烈,所以设置了一个 MAX_ZOOM = 100 去把这个过程划分成了100份,这个值可以自己设定。初始化缩放宽度和高度的最小值。
原创
发布博客 2024.07.12 ·
730 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

AS编译系统应用

一、生成系统签名二、导入源码,用配置三、配置依赖jar包。
原创
发布博客 2024.07.05 ·
1060 阅读 ·
29 点赞 ·
0 评论 ·
16 收藏

rk3588 Android HDMI IN热插拔解决

1、公司在使用 别的厂商的板卡遇到一个问题,开机我们的app自启就会闪退,后来定位发现是camera 的open出错了,这个问题的出现是因为没有插HDMI IN输入的问题导致的,所以需要对HDMI IN的热插拔进行检测,后面我把这个问题也顺利解决了。下面是我的尝试和使用的解决办法。3、话不多说,我用的是读取系统文件实现的,但是这个方法,需要有status文件的系统读权限,可以修改设备下的/vendor/etc/init/hw/init.rk3588.rc文件修改的权限,这个问题交给自己或者厂家协商解决。
原创
发布博客 2024.07.05 ·
1062 阅读 ·
6 点赞 ·
0 评论 ·
8 收藏
加载更多