转载]Linux Gstreamer and GST-OMX插件
来源:互联网 发布:nvsip相似软件 编辑:程序博客网 时间:2024/04/28 13:15
原文地址:Linux Gstreamer and GST-OMX插件 作者:wuqiseu
1. Gstreamer基本介绍
Gstreamer是linux上的多媒体框架。如下所示:
从上面这个图中可以看到,底层是以plugin插件形式存在包括codec标准,parser,audio, protocol等,
也包括用户自己开发的plugin和第三方开发的plugin。
core framework提供了plugin之间的交互机制和管理,通过将一些plugin连接起来形成一个系统,并且对上
提供访问的接口。APP是构建在framework上的。
通过这个框架,底层开发者可以专注于开发plugin,APP开发者通过调用这个plugin来组成完成某种功能的
APP,plugin之间的通信都是由gstreamer framework提供的。
目前已经有一些成熟的plugin已经开发,并且作为library提供给了用户:
gst-plugins-base: an essential exemplary set of elements
gst-plugins-good: a set of good-quality plug-ins under LGPL
gst-plugins-ugly: a set of good-quality plug-ins that might pose distribution problems
gst-plugins-bad: a set of plug-ins that need more quality
plugin中的element实际上就是实现该element支持的API,供上层来调用.
Gstreamer中的几个术语:
Elements: plugin的实例,在一个APP中可能需要创建多个elements并且把这些elements连接在一起形成系统
elements可以分为:
source element: 没有输入,只有输出pad,用来产生数据。
sink element: 只有输入pad,没有输出pad,是数据的目的地。如disk,soundcard
filter element: 包含输入pad和输出pad,接收输入的数据并且产生输出数据
输入输出Pad的数目可以是N个(N >= 1)
queue element: 是一个特殊的element,作为thread的边界存在。Gstreamer是可以
支持多线程的,线程的边界通过queue来隔开。
element state:
element有4个状态:
Pads:element的输入输出端口。elements之间就是通过Pad来进行连接的。数据通过Pads在elements之间
进行传递。
Gstreamer是linux上的多媒体框架。如下所示:
plugin中的element实际上就是实现该element支持的API,供上层来调用.
Gstreamer中的几个术语:
Pads:element的输入输出端口。elements之间就是通过Pad来进行连接的。数据通过Pads在elements之间