3 houxiaoni01

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 8w+

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

/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

C语言:volatile关键字的作用

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

2020-03-28 18:04:14

C语言:static关键字的作用

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

2020-03-28 16:37:23

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

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

2020-03-28 16:12:02

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

详解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

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

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

2020-03-09 17:41:47

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

网页大全

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

2020-03-04 14:36:23

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

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

2020-02-25 16:45:22

C语言:inline,static inline

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

2020-02-19 11:59:44

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

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

2019-12-19 16:20:51

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

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

2019-12-19 14:11:51

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

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

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

2019-12-17 16:22:58

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

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

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

编译和链接的过程

参考:https://www.cnblogs.com/linhaostudy/p/8808967.html程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。对于上边用到的几个选项需要说明一下。使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out...

2019-12-16 16:56:17

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。