自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (21)
  • 收藏
  • 关注

转载 OpenMAX/IL: OMX IL 学习笔记【2】- 组件

OpenMAX的重点组成部分就是组件,OpenMAX通过将meida流过程中的各个模块抽象化为组件来进行耦合,在OpenMAX标准下,数据流通过组件来进行传递、处理、显示。在该篇文章里,不需要了解细致的组件内部实现机理,也不需要知道各种方法的代码实现形式(如遇少量代码形式的解析说明可暂时略过,只需要知道该段代码要完成的工作是什么即可),通过阅读该文章,需要知道的是组件是什么?它有什么用处?内部的主要组成结构是怎样的?更加细节性的介绍放到后面的文章里面介绍。OpenMAX IL spec手册下载:ht.

2021-06-16 16:48:27 40

转载 OpenMAX/IL: OMX IL 学习笔记【3】- 头文件、数据结构与接口

参考自:https://blog.csdn.net/blue_xx/article/details/467781331. OpenMAX IL 层头文件OpenMAX IL 层的接口定义是以若干个头文件的形式给出的,在头文件中定义了一些结构体和需要开发者实现的接口函数,包括:OMX_Types.h:OpenMax IL的数据类型定义OMX_Core.h:OpenMax IL核心的APIOMX_Component.h:OpenMax IL 组件相关的 APIOMX_Audio.h:音频相关的常量

2021-06-15 19:41:47 17

转载 OpenMAX/IL: OMX IL 学习笔记【1】- 结构框架

一、OpenMax简介OpenMAX(Open Media Acceleration的缩写,开放多媒体加速层)是一个多媒体应用程序的标准。由NVIDIA公司和Khronos™在2006年推出。它是无授权费的、跨平台的C语言程序接口序列,这些接口对音频、视频、静态图片的常用操作进行封装。它包括三层,自上而下分别是应用层(AL)、集成层(IL)和开发层(DL)。OpenMAX AL:Application Layer,应用和多媒体中间层的标准接口,使得应用在多媒体接口上具有了可移植性。OpenMAX

2021-06-15 16:19:27 29

转载 【linux】free命令中cached和buffers的区别

一、命令[root@localhost ~]# free -m total used free shared buffers cachedMem: 7869 7651 218 1 191 5081-/+ buffers/cache: 2378 5490 Swap: 478 139

2021-06-11 17:33:36 2

原创 修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析

一、网络摘文参考目录: https://zhuanlan.zhihu.com/p/835813651. 背景介绍及原因分析最近修复项目问题时,发现当系统时间往前修改后,会导致sem_timedwait函数一直阻塞。通过搜索发现int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);传入的第二个阻塞时间参数是绝对的时间戳,那么该函数是存在缺陷的。(1)sem_timedwait存在的缺陷的理由假设当前系统时间是1565

2021-05-31 18:43:45 30

原创 编译报错:<command-line>: error: expected identifier or ‘(‘ before numeric constant

今天在tina平台适配R528 D1方案时,tina_multimedia编译报以下很奇怪的报错,之前从来没有遇到过,特此记录一下。看到这个编译报错,完全没有有用信息,记不知道哪一行,也不知道出错原因。后来在网上查阅了资料,大部分的解释是:枚举冲突,枚举类型中的某个变量被重复定义了。 可是没有给出具体哪个枚举类型哪个变量,实在是不好找到问题点。排查步骤如下:第一,同样的代码R528 riscv方案是能够正常编译通过的,排除工具链的影响。第二,怀疑是否最近其他人提交的一些关于D1方案的代码,引入了冲

2021-03-27 12:58:02 95

转载 使用C语言查看一个文件夹中所有文件及目录

1.前言1.1声明文章中的文字可能存在语法错语以及标点错误,请谅解;如果在文章中发现代码错误或其它问题请告知,感谢!2.实现方法为了使用C语言实现查看一个文件夹中的文件数量功能,可以使用dirent库,该库文件包含的许多UNIX系统服务的函数原型,例如opendir函数、readdir函数,可以实现查看目录中文件数量等功能。2.1dirent中常用数据类型以及函数功能简介下面对dirent中常用的数据类型以及函数进行简单的解释:常用结构体:DIR结构体:struct __dirstrea

2021-02-05 14:20:36 243

原创 动态范围控制(DRC)简介

参考自:https://blog.csdn.net/cyz_2014/article/details/847185281、DRC功能介绍Dynamic Range Control(DRC)动态范围控制提供压缩和放大能力,可以使声音听起来更柔和或更大声,即一种信号幅度调节方式。DRC广泛应用于音频信号处理领域,例如助听器中最常见的宽动态范围压缩方法(Wide Dynamic Range Compression,WDRC)、音频信号处理中最常用的自动增益控制(Automatic Gain Control,

2021-01-19 10:28:40 1705 2

原创 GDB基本用法

参考自:https://www.cnblogs.com/euphie/p/9781482.html    http://blog.chinaunix.net/uid-30038461-id-5136170.html    https://blog.csdn.net/faxiang1230/article/details/108848470    https://www.cnblogs.com/arnoldlu/p/9633254.html1、GDB简介Linux 包含了一个叫 gdb 的 GNU

2021-01-08 19:50:13 265

原创 gstreamer-test

#include <gst/gst.h>#include <glib.h>#include <glib/gprintf.h>#include <glib-object.h>#include <gmodule.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include

2020-12-24 11:50:01 71

原创 repo使用指南

目录文章目录目录一. repo简介二. repo使用流程三. repo常用命令3.1 repo init3.2 repo sync3.3 repo start3.4 repo checkout3.5 repo branch3.6 repo diff3.7 repo stage3.8 repo prune3.9 repo abandon3.10 repo status3.11 repo forall3.12 repo remote3.13 repo push3.14 repo grep3.15 repo

2020-12-23 16:34:48 10

原创 Linux 命令xxd功能

参考自:《Linux 命令xxd输出十六进制》    《Python实现Linux命令xxd -i功能》Linux下的xxd命令,能将一个给定文件或标准输入转换为十六进制形式,也能将十六进制转换回二进制形式。一. Linux命令xxdUsage: xxd [options] [infile [outfile]] or xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]Options: -a

2020-10-30 18:26:38 336

原创 音频基础知识详解

参考自:https://www.jianshu.com/p/86e1b1017564    https://blog.csdn.net/qq_25333681/article/details/906829891、引言现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。目前我们在计算机上进行音频播放都需要依赖于音频文件。音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,人耳所能听到的声音,最低的频率是从20Hz起一直到最

2020-10-20 10:55:11 892

原创 mmap函数实现

1、认真分析mmap:是什么 为什么 怎么用:https://www.cnblogs.com/huxiao-tee/p/4660352.html2、Mmap系列一: Mmap的实现原理和应用(及与read/fread的比较):https://blog.csdn.net/don_chiang709/article/details/893322953、mmap 函数:原理与使用(含代码):https://www.jianshu.com/p/187eada7b9004、linux中mmap系统调用原理

2020-10-16 17:32:19 38

原创 编译报错: error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before *‘ token

今天在melis SDK中添加了VE驱动的适配层代码,在编译的过程中报以下错误:In file included from ./emodules/mod_cedar/toolkit/toolkit.h:29, from ./emodules/mod_cedar/drivers/drv_video/vdrv_common_cfg.h:23, from emodules/mod_cedar/drivers/drv_video/libcedar

2020-09-25 10:29:49 203

转载 RTThread IO设备和驱动学习

参考自:https://www.jianshu.com/p/d84fab908c571、IO设备模型框架一共分三层:设备管理层实现了对设备驱动程序的封装。应用程序通过 I/O 设备层提供的标准接口访问底层设备,设备驱动程序的升级、更替不会对上层应用产生影响。这种方式使得设备的硬件操作相关的代码能够独立于应用程序而存在,双方只需关注各自的功能实现,从而降低了代码的耦合性、复杂性,提高了系统的可靠性。设备驱动框架层对同类硬件设备驱动的抽象,将不同厂家的同类硬件设备驱动中相同的部分抽取出

2020-09-01 18:55:33 650

原创 melis cedar模块的链接脚本

/* * ===================================================================================== * * Filename: linker.lds * * Description: linker script file, This file describes the memory layout (memory * blocks) as virtual me

2020-08-31 16:28:57 59

转载 利用__attribute__((section()))构建初始化函数表与Linux内核init的实现

本文详细讲解了利用 __attribute__((section())) 构建初始化函数表,以及Linux内核各级初始化的原理。1. 问题导入传统的应用编写时,每添加一个模块,都需要在main中添加新模块的初始化。使用__attribute__((section()))构建初始化函数表后,由模块告知main:“我要初始化“,添加新模块再也不需要在main代码中显式调用模块初始化接口。以此实现main与模块之间的隔离,main不再关心有什么模块,模块的删减也不需要修改main。那么,如何实现这个

2020-08-11 16:49:34 225

原创 linux交叉编译的库在链接时提示:xxx uses VFP register arguments xxx does not

参考自:https://blog.csdn.net/jimaofu0494/article/details/102496715    https://blog.csdn.net/gujintong1110/article/details/23038217很多时候我们要处理的数据,不仅仅是整数和字符串,还有浮点数即小数。在多媒体数据处理方面表现的更多。是不是所有的CPU都支持,浮点运算呢?答案:不是。今天我在链接一个音频库时,就发现了以下问题:1、问题描述在库文件链接阶段报以下错误:2、原因该

2020-07-22 20:20:48 2307 1

原创 melis链接库报错:undefined reference to ‘_close‘, ‘_fstat‘, ‘_isatty‘, ‘_lseek‘, ‘_read‘等

在melis sdk中链接库时,有时会报以下错误:此时是由于,在库文件的函数里调用了一些系统函数,但是这些系统函数无法找到对应的C库所致,例如 printf()、assert()、open()、close()、read()、write() 等。将这些函数修改为所用C库中对应的函数即可。...

2020-07-21 17:51:39 177

转载 Gstreamer学习笔记(8):Gobject类对象

文章目录1、Gobject类定义2、向Gobject系统注册类3、类的构造函数4、父子类的继承关系5、类的析构函数6、类的其他设置1、Gobject类定义Gstreamer框架是基于插件的,同时插件是可以动态的注册、创建,gstreamer基于Gobject开发,下面来了解一下gstreamer是如何通过Gobject完成自定义类的注册。在每个类的c文件中,都会有以下这样的一个宏定义:/* class initialization */#define DEBUG_INIT \ GST_DEB

2020-07-03 18:54:47 190

原创 /usr/bin/ld: skipping incompatible解决方案

今天在做项目的时候,用make命令后出现了/usr/bin/ld: skipping incompatible…问题。分析:编译器给出的错误信息已经很清楚了:兼容性问题,即产生了不兼容性且找不到libgstaudio-1.0.so共享库,可是libgstaudio-1.0.so在指定的路径下明明是存在的呢。错误原因排查:经过排查发现,我链接的共享库是在arm环境下编译产生的,而主程序却是在...

2020-04-16 13:42:25 2464

转载 C语言:volatile关键字的作用

一、前言1、编译器优化介绍由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内...

2020-03-28 18:04:14 146

转载 C语言:static关键字的作用

static用法:在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。1、定义全局静态变量在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。a. 在全局区分配内存。b. 如果没有初始化,其默认值为0。c. 该变量在本文件内从定义开始到文件结束可见。2、定义局部静态变量在局部变量前面加上关键字static,其特点如下...

2020-03-28 16:37:23 101

转载 Linux命令(一): ln - 创建和删除软、硬链接

Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。语法: ln [参数][源文件或目录][目标文件或目录]其中参数的格式为其中参数的...

2020-03-28 16:12:02 587

转载 Git学习(四):git clean的用法

git clean 命令用来从你的工作目录中删除所有没有tracked过的文件。git clean 经常和 git reset --hard 一起结合使用。记住reset只影响被track过的文件,所以需要clean来删除没有track过的文件。结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态。用法:git clean -n是一次clean的演习, 告...

2020-03-28 15:46:14 234

转载 详解shell中source、sh、bash、./执行脚本的区别

1、source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"注:该命令通常用命令“.”来替代。如:source .bash_profile. .bash_profile两者等效。source(或点) 命令通常用于重新执行刚修改的初始化文档。source命令 (从 C Shell 而来)...

2020-03-28 15:35:40 1014 2

原创 音视频基础

1、音视频基础1.1 视频帧率:每秒显示的图片数量 30,60f/s分辨率:图像包含的像素量 width*height片源:1080P&30f/s,时长1h;容量=//每张图片大小1920*1080*1.5* //1h 图片数(1*60*60*30) // 换算单位/1024/1024 G = 320361 G= 312T...

2020-03-28 14:29:36 10

原创 WAV系列之二:ADPCM编解码原理及代码实现

1、PCMPCM (Pulse Code Modulation),脉冲编码调制。PCM是把声音从模拟信号转化为数字信号的技术,把一个时间连续取值连续的模拟信号变换成时间离散取值离散的数字信号,模拟信号转化为数字信号需要三个步骤:采样、量化、编码。1.1、采样采样用一个固定的频率对模拟信号进行提取样值。常用采样率为8KHz,16kHz,22.05kHz,32kHz,44.1kHz,48kH...

2020-03-09 17:41:47 2510

原创 WAV系列之一:G711编解码原理及代码实现

参考自:https://blog.csdn.net/u012323667/article/details/79214336    https://blog.csdn.net/szfhy/article/details/52448906G711也称为PCM(脉冲编码调制),是国际电信联盟制定出来的一套语音压缩标准,主要用于电话。G711编码的声音清晰度好,语音自然度高,但压缩效率低,数据量大常在...

2020-03-06 19:10:31 1120

原创 网页大全

http://www.verysource.com/ 各种源码大全

2020-03-04 14:36:23 65

转载 Git学习(三):Git 撤销commit文件 和 回退push的文件

第一种情况 : 撤销commit文件我们先查看一下log日志:两种查看方法:git log 显示从近到远的日志记录,按向下键来查看更多,按 Q 键退出查看日志git log --pretty=oneline 简洁显示日志记录当然还有更多查看 log 的方法,就不展示了,自行百度吧.前五次提交是已经 push 到远程仓库的,第六次是 commit 的,然后我突然不想 commit ...

2020-02-25 16:45:22 758

转载 C语言:inline,static inline

inline函数被调用时,需要出栈入栈。当函数频繁被调用时,则不断地有函数出栈入栈,会造成栈空间或栈内存的大量消耗。所以引入了inline。inline: 在函数声明或定义中函数返回类型前加上关键字inline,即可以把函数指定为内联函数。内联函数: 建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展)。也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省...

2020-02-19 11:59:44 484

转载 C语言:命令行选项解析函数---getopt()和getopt_long()

上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的。于是乎百度了一番,原来是处理命令行选项参数的,的确,正规点的大型程序一般第一步就是处理命令行参数的,接着才是主干程序。在百度和 man 的帮助下,找到了具体使用方法和解释,二话不说赶紧学习一下,并总结出文档记录一下。平时在写程序时常常需要...

2019-12-19 16:20:51 225

转载 C语言:断言assert函数完全攻略

对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。 在 C 语言中,断言被定义为宏的形式(assert(expression)),而不是函数,其原型定义在 <assert.h> 文件中。其中,assert 将通过检查表达式 expression 的值来决定是否需要终止执行程序。也就是说,如果表达式 expression 的值为假(即...

2019-12-19 14:11:51 265

转载 C语言:二级指针(指向指针的指针)详解

摘自:《C语言入门》 http://c.biancheng.net/c/指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的...

2019-12-17 16:35:15 119

转载 C语言:堆和栈的区别是什么?

首先,讨论的堆和栈指的是内存中的“堆区”和“栈区”,OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下:1、栈区: 存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内...

2019-12-17 16:22:58 77

转载 vim字符串替换

vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。替换:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行开始...

2019-12-17 16:17:14 34

原创 vim+ctags+cscope+Taglist+NERDTree打造成SourceInsight

参考:Vim神器 | vim+ctags+cscope+Taglist+Nerdtree打造成sourceinsight   vim+ctags+cscope+taglist+nerdtree   将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)文章目录0. 环境描述1. 安装...

2019-12-17 15:51:47 482

原创 Git学习(二):git-rev-parse命令初识

git rev-parse --git-dir //显示版本库.git命令所在的位置执行命令 git rev-parse --git-dirgit rev-parse --show-toplevel //显示工作区根目录执行命令 git rev-parse --show-toplevelgit rev-parse --show-prefix //显示相...

2019-12-16 19:11:00 546

GStreamer应用程序开发手册.pdf

GStreamer应用程序开发手册.pdf

2020-12-24

AVS资料汇总.7z

AVS资料汇总.7z

2020-12-24

GStreamer+插件开发指南.pdf

GStreamer+插件开发指南.pdf

2020-12-24

GStreamer讲解.pptx

GStreamer讲解

2020-12-24

视频编解码学习之一:理论基础 - Mr.Rico - 博客园.pdf

①为什么要进行视频压缩? ②为什么可以压缩? ③数据压缩分类 ④编解码器 ⑤压缩系统的组成 ⑥编解码器实现 等等

2019-09-03

新一代视频压缩编码标准-H.264_AVC(第二版).pdf

新一代视频压缩编码标准-H.264_AVC(第二版).pdf

2020-12-24

H.264码流结构解析.pdf

H.264码流结构解析.pdf

2020-12-24

avs+资料汇总.7z

avs+资料汇总.7z

2020-12-24

mpeg中英文资料汇总.7z

mpeg中英文资料汇总.7z

2020-12-24

H.264官方中文版.pdf

H.264官方中文版.pdf

2020-12-24

新一代视频压缩编码标准H.264.pdf

新一代视频压缩编码标准H.264.pdf

2020-12-24

MP4格式解析.doc

MP4格式解析.doc

2020-12-24

gstreamer-test

gstreamer-test

2020-12-24

视频编解码学习之三:变换,量化与熵编码 - Mr.Rico - 博客园.pdf

介绍了变换编码、变换类型、KL变换、离散傅立叶变换、离散余弦变换、快速DCT变换、H.264的4x4整数变换等知识

2019-09-03

mp4文件格式详解.7z

mp4文件格式详解,介绍了各个box的含义,以及如何解析出所需要的媒体信息

2019-07-24

视频编解码学习之二:编解码框架 - Mr.Rico - 博客园.pdf

介绍了码流结构、帧类型、条带、宏块、预测编码、运动估计、变化编码、量化等知识

2019-09-03

视频编解码学习之四:视频处理及编码标准 - Mr.Rico - 博客园.pdf

介绍了视频处理、预处理、去隔行的方法、MPEG去隔行处理、空间缩放、超分辨率等知识

2019-09-03

ISO base media file format.pdf

Information technology — Coding of audio-visual objects — Part 12: ISO base media file format

2019-07-24

G711_G721_G723.7z

在电话技术中,有两个主要的算法标准,分别定义在 mu-law 算法(美国使用)和 a-law 算法(欧洲及世界其他国家使用)中。两者都是基于对数关系的,但对于计算机的处理来说,后者更为简单。

2020-03-06

.vimrc配置文件

介绍Vim配置文件.vimrc,配置Vim显示行号、支持utf8中文不乱码、突出显示Vim当前行,设置高亮显示括号匹配和tab缩进,解决Vim粘贴时多出缩进和空格问题。

2019-12-17

视频编解码学习之五:差错控制及传输 - Mr.Rico - 博客园.pdf

介绍了差错控制目的、差错控制技术、纠错、重传、前向纠错码等知识

2019-09-03

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除