gstreamer框架下的基本概念
1. Element(元件)
简单的理解, Element(元件)就是构成播放器(或其他应用)各个功能模块的基本单元。
通常来说,有下面几类 Element。
- 源:文件源,网络源,硬件设备,等等;
- 媒体格式分析元件:常见的如demuer, muxer, 元数据分析器等等;
- 编/解码元件;
- 效果处理元件:颜色空间转换,输出尺寸处理,音频通道处理,等等;
- 终端:音频终端,视频终端,文件终端,网络终端,等等;
2.Pad(焊盘)
废话一句,有同学把Pad翻译为衬垫,本人认为用焊盘更形象。
Pad是Element(元件)输入输出端(就像芯片的引脚),负责两个元件之间的握手和数据传输。
从数据流向上,Pad分为两种类型:
- source pad(源焊盘):数据提供者通过源焊盘向数据接收者传送数据;
- sink pad(接收焊盘):反之。
从使用方式上,Pad分为三种类型:
- always pad:创建元件时,同时出现的焊盘。这种焊盘主要用于传送固定数据格式。
- sometimes pad:当特定数据源流过时,元件根据数据流格式,自动产生的焊盘。常见于demuxer的source pad。
- on-request pad:当特定数据源需要流过时,根据数据流格式,主动申请产生的焊盘。常见于demuxer的sink pad。