- 博客(174)
- 资源 (24)
- 收藏
- 关注
转载 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 1985 2
转载 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 3415 1
转载 【Linux】free命令中cached和buffers的区别
cached是cpu与内存间的,buffer是内存与磁盘间的,都是为了解决速度不对等的问题。
2021-06-11 17:33:36 1483
原创 C语言:修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析
修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析
2021-05-31 18:43:45 1912
原创 Tina编译报错:<command-line>: error: expected identifier or ‘(‘ before numeric constant
枚举冲突
2021-03-27 12:58:02 2221
转载 使用C语言查看一个文件夹中所有文件及目录
1.前言1.1声明文章中的文字可能存在语法错语以及标点错误,请谅解;如果在文章中发现代码错误或其它问题请告知,感谢!2.实现方法为了使用C语言实现查看一个文件夹中的文件数量功能,可以使用dirent库,该库文件包含的许多UNIX系统服务的函数原型,例如opendir函数、readdir函数,可以实现查看目录中文件数量等功能。2.1dirent中常用数据类型以及函数功能简介下面对dirent中常用的数据类型以及函数进行简单的解释:常用结构体:DIR结构体:struct __dirstrea
2021-02-05 14:20:36 4964
原创 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 558
原创 C语言: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 488
原创 Melis编译报错: error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before *‘ token
编译报错处理
2020-09-25 10:29:49 3444
转载 利用__attribute__((section()))构建初始化函数表与Linux内核init的实现
本文详细讲解了利用 __attribute__((section())) 构建初始化函数表,以及Linux内核各级初始化的原理。1. 问题导入传统的应用编写时,每添加一个模块,都需要在main中添加新模块的初始化。使用__attribute__((section()))构建初始化函数表后,由模块告知main:“我要初始化“,添加新模块再也不需要在main代码中显式调用模块初始化接口。以此实现main与模块之间的隔离,main不再关心有什么模块,模块的删减也不需要修改main。那么,如何实现这个
2020-08-11 16:49:34 2842
原创 Melis交叉编译的库在链接时提示:xxx uses VFP register arguments xxx does not
交叉编译报错
2020-07-22 20:20:48 10344 2
原创 Melis链接库报错:undefined reference to ‘_close‘, ‘_fstat‘, ‘_isatty‘, ‘_lseek‘, ‘_read‘等
编译报错处理
2020-07-21 17:51:39 1820
转载 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 1098
原创 Tina编译报错:/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 22957
转载 C语言:volatile关键字的作用
一、前言1、编译器优化介绍由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内...
2020-03-28 18:04:14 1334
转载 C语言:static关键字的作用
static用法:在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。1、定义全局静态变量在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。a. 在全局区分配内存。b. 如果没有初始化,其默认值为0。c. 该变量在本文件内从定义开始到文件结束可见。2、定义局部静态变量在局部变量前面加上关键字static,其特点如下...
2020-03-28 16:37:23 221
转载 【Linux】ln命令 - 创建和删除软、硬链接
Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
2020-03-28 16:12:02 4963
转载 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 3637
转载 Git学习:Git 撤销commit文件 和 回退push的文件
第一种情况 : 撤销commit文件我们先查看一下log日志:两种查看方法:git log 显示从近到远的日志记录,按向下键来查看更多,按 Q 键退出查看日志git log --pretty=oneline 简洁显示日志记录当然还有更多查看 log 的方法,就不展示了,自行百度吧.前五次提交是已经 push 到远程仓库的,第六次是 commit 的,然后我突然不想 commit ...
2020-02-25 16:45:22 6858 1
转载 C语言:inline,static inline
inline函数被调用时,需要出栈入栈。当函数频繁被调用时,则不断地有函数出栈入栈,会造成栈空间或栈内存的大量消耗。所以引入了inline。inline: 在函数声明或定义中函数返回类型前加上关键字inline,即可以把函数指定为内联函数。内联函数: 建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展)。也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省...
2020-02-19 11:59:44 11908
转载 C语言:命令行选项解析函数---getopt()和getopt_long()
上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的。于是乎百度了一番,原来是处理命令行选项参数的,的确,正规点的大型程序一般第一步就是处理命令行参数的,接着才是主干程序。在百度和 man 的帮助下,找到了具体使用方法和解释,二话不说赶紧学习一下,并总结出文档记录一下。平时在写程序时常常需要...
2019-12-19 16:20:51 982
转载 C语言:断言assert函数完全攻略
对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。 在 C 语言中,断言被定义为宏的形式(assert(expression)),而不是函数,其原型定义在 <assert.h> 文件中。其中,assert 将通过检查表达式 expression 的值来决定是否需要终止执行程序。也就是说,如果表达式 expression 的值为假(即...
2019-12-19 14:11:51 15643 6
转载 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 559
转载 C语言:堆和栈的区别是什么?
首先,讨论的堆和栈指的是内存中的“堆区”和“栈区”,OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下:1、栈区: 存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内...
2019-12-17 16:22:58 677
转载 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 234
原创 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 4060
转载 编译和链接的过程
参考:https://www.cnblogs.com/linhaostudy/p/8808967.html程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。对于上边用到的几个选项需要说明一下。使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out...
2019-12-16 16:56:17 421
G711_G721_G723.7z
2020-03-06
.vimrc配置文件
2019-12-17
视频编解码学习之三:变换,量化与熵编码 - Mr.Rico - 博客园.pdf
2019-09-03
视频编解码学习之一:理论基础 - Mr.Rico - 博客园.pdf
2019-09-03
ISO base media file format.pdf
2019-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人