欢迎来到天天文库
浏览记录
ID:2001310
大小:500.50 KB
页数:77页
时间:2017-11-14
《gstreamer 插件开发指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GStreamer插件开发指南(0.10.9.1)I.介绍GStreamer是一个用来创建流媒体应用程序的非常强大和通用的框架。GStreamer框架的许多优点来源于它的模块性:GStreamer可以无缝地接纳新的插件模块。但是由于模块性和强大的功能通常以极高的复杂性为代价(例如CORBA),编写一个新的插件并不总是一件简单的事。本手册旨在帮助你了解GStreamer的框架0.10.9.1版)以便你能够开发新的插件来扩展当前的功能。本手册通过用C语言开发一个示例插件──一个音频过滤器──来定位大多数问题。然而,接下来的部分会通过编写其它
2、类型的插件引入另一些问题,在本手册的结尾介绍了一些GStreamer的Python绑定。目录1.前言1.1.GStreamer是什么?1.2.谁应该读该指南?1.3.预备知识1.4.该指南的结构2.基本知识2.1.元件(Elements)和插件(Plugins)2.2.衬垫(Pads)2.3.数据(Data),缓冲区(Buffers)和事件(Events)2.3.1.缓冲区分配2.4.MIME类型(Mimetypes)和属性2.4.1.基本类型Chapter1.前言1.1.GStreamer是什么?GStreamer是一个创建流媒体应用
3、程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意,同时也借鉴了DirectShow的设计思想。GStreamer的开发框架使它有可能被用来编写任何类型的流媒体应用程序。基于GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。在编写处理音频、视频或者两者皆有的应用程序时,GStreamer可以让你的工作变得简单。GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流。管道的设计对于一般应用的滤镜(filter)绰绰有余。这使得GStreamer成为一个优秀的框架,它
4、甚至可以用来设计出对延时有很高要求的高端音频应用程序。GStreamer最显著的用途是在构建一个播放器上。GStreamer已经支持很多格式的文件了,包括:MP3,Ogg/Vorbis,MPEG-1/2,AVI,Quicktime,mod等等。从这个角度看,GStreamer更象是一个播放器。但是它主要的优点确是在于:它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用GStreamer编写一个万能的可编辑音视频应用程序成为可能。GStreamer框架是基于插件的,有些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供
5、了其他的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer的管道能够被GUI编辑器编辑,能够以XML文件来保存。这样的设计使得管道程序库的消耗变得非常少。GStreamer核心库函数是一个处理插件、数据流和媒体操作的框架。GStreamer核心库还提供了一个API,这个API是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。1.2.谁应该读该指南?该指南叙述了如何为GStreamer编写新的模块。本指南针对以下几种人:·那些想给GStreamer增加新的数据处理方
6、法的人。例如,可能有人想创建一个新的可见的工具---数据类型转换器,或者新的编码器或者解码器。·那些想支持新的输入输出设备的人。例如:某人可能会想增加将数据输出到新的视频输出系统或从一个数码相机或耳机中读取数据的功能。·那些想通过任何方法扩展GStreamer的人。你必须事先了解插件系统是如何工作的,这样你才能知道插件系统对其它代码有什么限制。读完了该手册,你也许会因为插件可以做如此多的事而感到惊讶。如果你只是想使用GStreamer的已有功能,或者只想使用那些基于GStreamer程序,那么你可以不用再看下去了。如果你只关注与使用现有
7、的插件去便写新的程序──现在有许多这样的插件──你也许想看的是《GStreamer应用程序开发手册》如果你只是想获得那些基于GStreamer的程序的帮助,那么你应该查看那些程序的用户手册。1.3.预备知识该指南假定你已经稍微了解了GStreamer的基本工作原理。你也许希望首先阅读《GStreamer应用程序开发手册》,以便获得对GStreamer编程概念的了解。另外,不要忘了查看GStreamer网站上的已有文档。为了理解这份手册,你必须对C语言有一个基本的了解。因为GStreamer是基于GObject编程模型,所以本指南假定你也
8、已经对GObject编程有了一个基本的了解。你或许也想看一下EricHarlow's的《DevelopingLinuxApplicationswithGTK+andGDK》一书。1.4.该指南的结构为了帮助
此文档下载收益归作者所有