- 博客(48)
- 资源 (9)
- 收藏
- 关注
原创 valgrind-内存泄漏定位工具
valgirnd 是一套开放源代码的动态调试工具集合。能够检测内存管理错误,线程BUG等。valgirnd是由内核以及基于内核的其他调试工具组成。内核类似于一个框架,它模拟了一个cpu的环境,并提供服务给其他工具使用。而其他工具则类似于插件,利用内核提供的服务完成各种特定的内存调试任务。1、memcheck:这是valgrind应用最广泛的工具,一个重量级的内存检车器,能够发现开发中绝大多数内存错误使用的情况。比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。
2024-06-06 14:44:01
705
1
原创 视频播放音画同步处理
考虑人对声音的敏感度比较高,频繁调节音频会带来较差的体验,并且音频播放时钟为线性增长,一般的做法都是以时钟作为参考时钟,将视频同步到音频上。2.音频数据输出是线性的持续不断的,但是视频输出不是线性的,视频渲染可能快,可能慢,从而导致音视频显示帧率上出现偏差。参考时钟一般选择以下两种。但是实际情况下,如果用上面这种方式的话,慢慢的就会出现音视频不同步的情况,可能是视频播放快了,可能音频播放快了。录制的时候:选择一个参考时钟,要求参考时钟上的时间是线性递增的,编码时依据参考时钟上的每个音视频数据块打上时间戳。
2023-10-21 14:47:01
595
原创 二维码解码器-Quirc使用教程
库文件总共6个文件,非常的小,编译之后的静态库只有25kb。官方代码是依赖libjpg库和linpng库进行解码转换成灰度后再进行二维码检测的。本次仅仅传入灰度图片进行解码,将不依赖jpeg和png进行二维码检测功能。是一款专用于识别二维码(不能识别一维码)的开源软件。它比zbar轻量一些,跟zbar一样能扫描码流和静态图片识别条形码,
2023-09-15 17:46:32
1172
原创 图像处理简介
通过公式可以相互转换。从内存分布图可以看出,相邻的四个Y共用相邻的两个UV,比如坐标(0,0),与坐标(0,1),坐标(0,2),坐标(0,3)其中的像素点为Y0U0V0,Y1U0V0,Y2U0V0,Y2U0V0,可以看出他们UV分量是同一个值。像素的色彩由三原色的强度表示,例如一个红色像素是由强度为0的绿色,强度为0的蓝色和强度最大的红色组成。前面连续黑帧率的时候,较低码率为200Kbps,后面实际的信息量的内容,以较高的码率2.4Mbps呈现,这样可以有效的优化带宽,并能够较好的呈现有价值的信息。
2023-09-02 11:12:44
1287
原创 libjpeg库使用
成功生成Makefile,继续执行make,make install,将在当前目录生成ouput文件夹。里面包含了库文件和头文件。
2023-08-26 14:24:59
839
原创 SPI FLASH Fatfs文件系统移植
FATFS是面向小型嵌入式系统的FAT文件系统。他由C语言编写并且独立与底层I/O介质。支持的内核有:8051,PLC,ARV,ARM等。FATFS支持FAT12,FAT16,FAT32等文件系统格式。
2023-06-13 16:09:18
1225
原创 ONVIF协议了解
Onvif,即Open Network Video Interface Forum ,可以译为开放型网络视频接口论坛,是安迅士、博世、索尼在2008年共同成立的一个国际性、开发型网络视频产品标准网络接口的开发论坛,后来由于这个技术开发论坛共同制定的开发型行业标准,就用该论坛的大写字母命名,即ONVIF 网络视频标准规范,习惯简称为:ONVIF协议。
2023-05-22 11:13:25
9885
原创 强制edge浏览器背景为黑色
Microsoft Edge虽然有一个深色模式,但是这个神色模式仅把外框变成了黑色,百度页面等底色还是白色(如下图所示),如果想要整个网络页面变为黑色可以进行以下操作。2.找到下面的Auto Dark Mode for Web Contents 这项功能,将选项中的Default 改为 Enabled。Microsoft Edge浏览器网页改为纯黑色(真正实现深色夜间模式)1.输入edge://flags/#enable-force-dark。
2022-11-19 09:29:15
1997
3
原创 ubuntu nfs服务器端搭建
启动NFS:/etc/init.d/nfs-kernel-server restart。nfs 的启动和停止是通过/etc/init.d 目录中的脚本文件nfs实现。启动ipcbind: /etc/init.d/rpcbind restart。ubuntu21.04以后,配置文件路径在。查看支持的nfs版本。
2022-07-25 09:40:35
543
原创 安装带参数的ko
在加载驱动的模块的时候通过 module_param()接收外部参数;module_param()为一个宏,表示向当前模块传递参数该宏定义在<linux/moduleparam.h>使用说明: 原型: moudle_param(name,type,perm); 功能:定制模块参数,用于在加载模块时给相关变量传递参数 参数说明: name:将要传递参数的变量名称; type:传递参数的数据类型 perm:传递参数的访问权限 其中type可以使用以下任意一种类型:
2022-05-19 09:00:09
754
原创 shell脚本判断文件存在
#!/bin/shif[-x path];then#path存在else#不存在fi一般的普通文件判断条件是-f,但是对于设备节点等特殊文件就不行了。必须使用与文件类型或者设备类型相对应的判断条件才行。-b file = True if the file exists and is block special file.块设备文件存在-c file = True if the file exists and is character special file.字符设备文件存在
2022-05-18 09:35:36
2304
原创 linux 消息队列API
一. 什么是linux的消息队列:消息队列是提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立的接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道> 的同步和阻塞的问题。但是消息队列和命名管道一样,每个数据块都有一个最大长度的限制。LInux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二.LInux中使用消息队列linux提供一系列消息队列的函数接口来让我们方便地使用它来实现进程间的通信
2022-04-28 09:22:44
3053
原创 Linux 有名管道通信
有名管道的使用流程:创建有名管道(mkfio)---->打开有名管道的句柄(open)---->读写有名管道(write/read) ----> 关闭有名管道(close)—>>卸载有名管道(unlink)创建一个管道mkfifo("/tmp/test.264", 0777);打开写管道int fd = open("tmp/test.264",O_WRONLY);这里需要注意:在写管道open的时候会一直阻塞到读端打开。写入数据到管道re
2022-04-21 14:56:18
424
原创 网络编程基础之---struct sockaddr_in, struct sockaddr, struct in_addr
结构体struct sockaddr_instruct sockaddrstruct in_addr这三个结构体在网络编程中经常忘记各自的成员,需要临时查阅。struct sockaddr{ /***** 地址族 AF_xxx *****/ unsigned short sa_family; /***** 14字节的协议地址 *****/ char sa_data[14];};以上是通用的socket地址,具体到internet socket 用下面的结构体,二者可以进行类型
2022-04-16 11:09:52
3320
原创 嵌入式ttf字体裁减说明
裁剪工具包括三个软件FontCreator:用于添加字符到字库中Fontmin-v0.2.0:用于查看用到的字符集中在字库中缺少的单个字符。FontSubsetPack/FontSubsetGUI.exe:用于裁剪只包含所需字符集的字库。下面以一个实际的例子说明:比如我所需要建立一个字符集的文本包含以下字符:Mon 월요일 Понедельник Lunes 星期一 Pazartesi Poniedziałek Pondělí将创建一个文档----string.txt.将文本复制到
2022-04-12 14:39:34
5345
1
原创 RTP打包发送H264之封包详解
RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式H264码流结构单个NAL包单元12个字节的RTP头后面就是音视频数据,比较简单。一个封装单个NAL单元包到RTP的NAL单元流的RTP序号必须符合NAL单元的解码顺序。对于NALU的长度小于MTU大小的包,一般采用单一NAL单元模式。对于一个原始的H.264 NALU单元常由[start code][NALU Head][NALU payload]三部分组成,其中start code用于表.
2022-04-12 10:07:14
751
转载 RTP(载荷H264码流)基础知识
一. H264介绍h264是一种视频压缩标准,经过压缩的帧分为:I,P,B帧:I帧:关键帧,采用帧内压缩技术,自身可以通过视频解压算法解压成一张单独的完整图片P帧:向前参考帧,在压缩时,只参考前面已经处理的帧(只需要参考前面的I帧或P帧),采用帧音压缩技术。B帧:双向参考帧,在压缩时,他既参考前面的帧,又参考他后面的帧(需要同时参考前面和后面的I帧或P帧),采用帧间压缩技术。除了I/P/B帧外,还有图像序列GOP两个I帧之间是个图像序列,在一个图像序列中只有一个I帧,如图:
2022-04-12 09:11:26
4753
原创 Linux下 GPIO控制编程
linux对gpio口操作,一般都是通过设备节点进行读写。读写基本操作流程如下:导出gpio口 。节点:export设置gpio输入输出方向。节点:direction读写gpio的数值。节点:value,另外使能内部上拉通过。节点:pull_enable代码如下:#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <fcntl.h>#include <
2022-04-11 15:16:26
2279
原创 PCM 16BIT幅度调节
由于芯片硬件AO的音量控制封装,无法灵活调节音量,故添加软件调节音量。调节建议:在调节音量之前将AO设备音量设置为较大,然后再使用软件调节pcm输出。代码:#include <stdbool.h>#include <sys/types.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#define P
2022-03-31 19:52:10
1245
原创 第六篇:通过ftp升级程序
tftp网络烧录image¶使用tftp网络烧录image的前提是板子带有uboot程序,如果没有请参考isptool烧录的方法烧录uboot,然后再按如下方法使用tftp烧录。打开tftp工具指向image path:SDK\project\image\output\images\,并选择正确的网卡板子连接网络,并确保板子跟PC处于同一个网段(PC需要关闭防火墙)板子开机,长按回车,进入uboot终端首次烧录需要设置IP地址已复制#setenv gatewayip 192.168.1.1#
2022-03-24 16:39:19
857
原创 第五篇:开启网络功能
第一部分:在编译ssd212 demo,并且烧录后,会发现ssd212的网卡不存在。使用指令:ifconfig -a发现有一张网卡eth0,使用以下指令开启网卡ifconfig eth0 up通过udhcpc 获取IPudhcpc -i etho -s /etc/init.d/udhcpc.script例如打印日志:/ # udhcpc -i eth0 -s /etc/init.d/udhcpc.scriptudhcpc (v1.20.2) startedSetting IP a
2022-03-22 09:00:53
2141
安凯3760/1D 模拟可视门铃对讲+TUYA+LVGL+LCD800X1280 SDK
2022-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人