摘要: 目的:修改AC3编码的描述子标准,根据客户需求提供欧标和美标选项进行设定。 ac3格式: ATSC标准:ac3的stream_type =0x81, descriptor_tag =none DVB标准: ac3的stream_type =0x06, descriptor_tag =0x6a eac3格式 ATSC标准:eac3的stream_type = 0x87, descripto... 阅读全文
posted @ 2020-03-23 16:53 standardzero 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 调用setsockopt接口设置缓冲区方法: int nRecvBuf=1024*1024;//设置为1M setsockopt(s32Sockfd,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int)); 调用ffmpeg接口设置接收缓冲区方法: AVDictionary *dic = NULL; av_dict_set(&... 阅读全文
posted @ 2020-03-23 16:52 standardzero 阅读(4228) 评论(0) 推荐(0) 编辑
摘要: 废话少说,直接贴上代码。 decode_yuv.c /* * ===================================================================================== * * Filename: decode_yuv.c * * Description: * * Version... 阅读全文
posted @ 2020-03-23 16:49 standardzero 阅读(2655) 评论(0) 推荐(0) 编辑
摘要: 首先需要确保FFMPEG是否已经安装libx264。 废话少说,直接贴上代码。 encode_yuv.c #include #include #include #include #include #include #include void usage(void) { printf("./encode_yuv input_file.yuv width hei... 阅读全文
posted @ 2020-03-23 16:47 standardzero 阅读(888) 评论(0) 推荐(0) 编辑
摘要: 1.将mp3文件转换为pcm文件2.贴上代码3.编译4.执行TOC 1.将mp3文件转换为pcm文件 ffmpeg -i test.mp3 -f s16le test.pcm 2.贴上代码 aac.c #include #include #include #include #include SwrContext *g_swr_ctx = NULL; static int... 阅读全文
posted @ 2020-03-23 16:45 standardzero 阅读(1298) 评论(0) 推荐(0) 编辑
摘要: 1.变量运算2.条件分支语句3.循环语句4.函数5.read 使用6.sort 使用7.grep 使用8.sed 使用9.awk 使用10.获取当前脚本所在的绝对路11. 批量替换文件里面的内容12. 如何判断一个变量是否被赋值TOC 1.变量运算 特殊变量 $0:当前脚本变量名字 $n:传入脚本或函数的第几个参数 $#:传输脚本或函数的参数个数 $*:传给脚本或函数的所有参数 $@... 阅读全文
posted @ 2020-03-23 16:30 standardzero 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 一般形式: printf("格式控制字符串",输出列表); 格式控制字符串形式: [标志][输出最小宽度][.精度][长度][类型] 特殊符号使用:* printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个*代替那个常量,然后在后面提供变量给*。 类型: d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前... 阅读全文
posted @ 2020-03-23 16:01 standardzero 阅读(1393) 评论(0) 推荐(0) 编辑
摘要: 1. API2. 源码3. 对system进行封装TOC 1. API #include int system(const char *command); 注: 这个函数的作用相当于,在shell下执行command命令 2. 源码 int system(const char * cmdstring) { pid_t pid; int status... 阅读全文
posted @ 2020-03-23 15:58 standardzero 阅读(206) 评论(0) 推荐(0) 编辑
摘要: TOC 程序异常退出大部分都是系统发出的信号导致的,程序收到某些信号退出时,会产生core文件,如段错误信号SIGSEGV;但是某些信号不会产生,core文件,程序收到此类信号默认退出,排查这类问题时,会抓不到方向。 因此有必要对这类信号,进行捕获并记录日志。linux有一套处理信号的API。 样例 #include #define ARRAY_SIZE(arr) (sizeof((... 阅读全文
posted @ 2020-03-23 15:57 standardzero 阅读(116) 评论(0) 推荐(0) 编辑
摘要: container_of(ptr, type, member):通过计算member的地址, 获取 ptr 所在的结构体type的首地址。 #define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) *__mptr = (ptr);\ (type *)((cha... 阅读全文
posted @ 2020-03-23 15:56 standardzero 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 1. 从linux内核源码拿到list.h 从linux内核拿到的源码需要添加相关的宏变量 直接可以使用的list.h #ifndef _LINUX_LIST_H #define _LINUX_LIST_H #include #include #include #include # define POISON_POINTER_DELTA 0 #define LIST_POIS... 阅读全文
posted @ 2020-03-23 15:54 standardzero 阅读(1213) 评论(0) 推荐(0) 编辑
摘要: 1.异步IO概念 在传统的 I/O 模型中,有一个使用惟一句柄标识的 I/O 通道。在 UNIX 中,这些句柄是文件描述符(这对等同于文件、管道、套接字等等)。在阻塞 I/O 中,我们发起了一次传输操作,当传输操作完成或发生错误时,系统调用就会返回。 在异步非阻塞 I/O 中,我们可以同时发起多个传输操作。这需要每个传输操作都有惟一的上下文,这样我们才能在它们完成时区分到底是哪个传输操作完成了... 阅读全文
posted @ 2020-03-23 15:51 standardzero 阅读(1341) 评论(0) 推荐(0) 编辑
摘要: net.h /* * ===================================================================================== * * Filename: net.h * * Description: * * Version: 1.0 * Created: 07... 阅读全文
posted @ 2020-03-23 15:47 standardzero 阅读(1919) 评论(0) 推荐(0) 编辑
摘要: 前言编写简单的自定义驱动创建相关目录和文件关联上一级目录的Kconfig和Makefile配置&编译TOC 前言 在了解了Kconfig和Makefile的相关原理后,是不是有种在源码上自定义驱动的冲动。 放心,接下来,我会满足你的小小欲望。 编写简单的自定义驱动 hello_dev.c #include #include #include #include #... 阅读全文
posted @ 2020-03-23 11:40 standardzero 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 前言语法Makefile 语法Kconfig 语法.configTOC 前言 要想了解内核的编译过程,分析这三个文件的作用是很有必要的。 三者的作用: 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。 Makefile:一个文本形式的文件,编译源文件的方法。 Kconfig:一个文本形式的文件,内核的配置菜单。 .config:编译内... 阅读全文
posted @ 2020-03-23 11:39 standardzero 阅读(1157) 评论(0) 推荐(0) 编辑
摘要: Makefile #**************************************************************** # * # Makefile for MB86M01/M02/M03 driver * ... 阅读全文
posted @ 2020-03-23 11:38 standardzero 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1. 根据硬件工程生成设备数文件 dts / { amba_pl: amba_pl { #address-cells = ; #size-cells = ; compatible = "simple-bus"; ranges ; axi_timer_0: timer@42800000 { ... 阅读全文
posted @ 2020-03-23 11:37 standardzero 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-23 11:35 standardzero 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 不是所有的驱动程序都必须有自己的工作队列。驱动程序可以使用内核提供的缺省工作队列。由于这个工作队列由很多驱动程序共享,任务可能会需要比较长一段时间才能开始执行。为了解决这一问题,工作函数中的延迟应该保持最小或者不要延时。 需要特别注意的是缺省队列对所有驱动程序来说都是可用的,但是只有经过GP许可的驱动程序可以用自定义的工作队列。 创建工作队列 每个工作队列有一个专门的线程,所有来自运行队... 阅读全文
posted @ 2020-03-23 11:31 standardzero 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1. 相关接口2. 代码样例3. 编译运行TOC 1. 相关接口 module_param(参数名,参数类型,参数读/写权限) module_param_array(数组名,数组类型,数组长,参数读/写权限) 说明: 参数和参数类型,需保持一致 参数类型有: byte、short、ushort、int、uint、long、ulong、charp(字符指针)、bool 或 invboo... 阅读全文
posted @ 2020-03-23 11:30 standardzero 阅读(375) 评论(0) 推荐(0) 编辑