[gstreamer-core解析.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[gstreamer-core解析

介绍: 这片文档是基于gstreamer-0.10.35来讲的,详细介绍了gstreamer core里面提供的功能。如有问题请联系yxj_5421@163.com,转载请标明出处。 GStreamer概念 是一个用来创建流媒体应用程序的非常强大和通用的框架,框架是基于插件的, 这些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供了其他的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer的管道能够被GUI编辑器编辑, 能够以XML文件来保存。这样的设计使得管道程序库的消耗变得非常少。 Gstreamer core作用 GStreamer内核的本质是media-agnostic(不关心媒体类型),core/plugins是分离。我们了解的仅仅是字节和块,以及包含基本的元件,GStreamer内核的强大功能甚至能够实现底层系统工具,像cp,核心库函数是一个处理插件、数据流和媒体操作的框架。所有的媒体处理功能都是由插件从外部提供给内核的,并告诉内核如何去处理特定的媒体类型。GStreamer核心库还提供了一系列API, API是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。 元件和插件 在插件的开发中,一个元件就是继承于GstElement 的一个对象。元件在与其他元件连接时提供了如下一些功能:例如,一个源元件为一个流提供数据,一个滤镜元件对流中的 数据进行操作。没有了元件,GStreamer 只是一堆概念性的管道,没有任何东西可供连接。GStreamer已经自带了一大堆元件,但是我们仍然可以编写额外的元件。然而,仅仅写一个新的元件并不够,为了使GStreame r 能够使用它,你必须将元件封装到一个插件中。一个插件是一块可以加载的代码,通常被称为共享对象文件(shared object file)或动态链接库(dynamically linked library)。一个插件中可以包含一个或若干element。 Gstreamer core文件目录 Common 放一些共用的配置文件,主要是一些m4(备注1)类型的预处理文件 Docs 放置文本文件,供开发人员查看 Gst gstreamer核心文件(提供给lib里面元件class实现的函数和core提供给app的函数) Libs gstreamer提供不可被应用调用的元件,是某些元件的parent class,封装了上面gst的函数 M4 m4类型的预处理文件 Pkgconfig 放置编译时pkgconfig(备注2)需要用到的pc文件 Plugins gstreamer提供一些最基本的elements Po 放置一些po(备注3)类型的文本文件,gstreamer打印输出的多国语言 Scripts 安装卸载脚本 Tests 测试程序 Tools 一些工具 win32 Building GStreamer on Windows 备注: 1 、m4是一个适合各种文本处理应用的通用工具,和你熟知的C预处理器(cpp)并无不同,它常用于编译器前端,在很多地方超过cpp。读取输入文本,处理之(宏替换或扩展),输出生成的新文本。宏定义中可包含一集参数,并且可以指定实际参数被扩展的位置。 2、为什么需要pkgconfig,当你发布一个源码包时,你肯定在你的机器上编译通过,但是到别的用户机器上就未必编译通过,这是因为你源码包里面连接的库在不同的机器上安装的路径不同,你不可能发布一个源码包还带上连接库的路径要求,pkgconfig为解决以上问题提供了一个优美方案。从此,你再也不为此担忧了。Pkgconfig提供了下面几个功能: 检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。 获得编译预处理参数,如宏定义,头文件的位置。 获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。 自动加入所依赖的其它库的设置。 这一切都自动的,库文件安装在哪里都没关系!在使用前,我们说说pkgconfig的原理,pkgconfig并非精灵,可以凭空得到以上信息。事实上,为了让pkgconfig可以得到这些信息,要求库的提供者,提供一个.pc文件。一般放在/pkgconfig里,当然也可以放在其它任何地方,如像X11相关的pc文件是放在/usr/X11R6/lib/pkgconfig下的。为了让pkgconfig可以

文档评论(0)

xiaoyi2013 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档