现在的位置: 首页 > 综合 > 正文

Gstreamer初学笔记- 概念篇

2019年03月09日 ⁄ 综合 ⁄ 共 921字 ⁄ 字号 评论关闭

参考整理:http://blog.csdn.net/acs713/article/details/7675641?reload

http://blog.csdn.net/allen_young_yang/article/details/5787374

GStreamer定义了几类Element,

  • Source Element 数据源元件 只有输出端,它仅能用来产生供管道消费的数据,而不能对数据做任何处理。一个典型的数据源元件的例子是音频捕获单元,它负责从声卡读取原始的音频数据,然后作为数据源提供给其它模块使用。
  • Filter Element 过滤器元件 既有输入端又有输出端,它从输入端获得相应的数据,并在经过特殊处理之后传递给输出端。一个典型的过滤器元件的例子是音频编码单元,它首先从外界获得音频数据,然后根据特定的压缩算法对其进行编码,最后再将编码后的结果提供给其它模块使用。
  • Sink Element 接收器元件 只有输入端,它仅具有消费数据的能力,是整条媒体管道的终端。一个典型的接收器元件的例子是音频回放单元,它负责将接收到的数据写到声卡上,通常这也是音频处理过程中的最后一个环


Bus:

Bus负责PipeLine线程和宿主的程序之间的通信,每个PipeLine缺省创建一个Bus。宿主程序有两种方法是用Bus,第一种是使用 GLib/Gtk+ main loop及gst_bus_add_watch () or gst_bus_add_signal_watch ()事件回调函数机制。第二种是程序通过gst_bus_peek () /gst_bus_poll ()主动检查Bus中的消息.

Pads

 Element的input和output称为Pads 。 source pads是指Element的输出(output), sink pads指Element的输入(input)。用于元件(element)之间的连接和通信,元件(element)插座

BIN:用以将一组Element以链接组成一个逻辑单元,Element的容器,同时也是 Element的子类。

PipeLine是一种特定的Top-Level的BIN,PipeLine启动后,在单独的线程中运行,传递和处理数据。

GStreamer的PipeLine示例

抱歉!评论已关闭.