GStreamer学习笔记(一)

什么是GStreamer?

G S t r e a m e r 框架 = 多媒体应用 A P I + 插件架构 + 管道架构 + 媒体类型处理机制 + 同步机制 + 250 多个插件 / 1000 多种元素 + 一套工具 GStreamer框架=多媒体应用API+插件架构+管道架构+媒体类型处理机制+同步机制+250多个插件/1000多种元素+一套工具 GStreamer框架=多媒体应用API+插件架构+管道架构+媒体类型处理机制+同步机制+250多个插件/1000多种元素+一套工具

信息由 s o u r c e source source(发送端/生产者)传递到 s i n k sink sink(接收端/消费者),组件是一系列中间元素,执行各类任务,所有内部连接的元素的集合称为“管道”。

函数与知识点

  1. gst_init() 初始化元素。例如:gst_init(&argc, &argv);
  2. gst_parse_launch 功能:将管道的文本表示转化为真实管道。说明:gst-launch-1.0完全基于此函数实现。
  3. playbin 说明:特殊元素,同时作为发送端和接收端,是一个完整的管道。并不允许类似手工管道的控制粒度,但是允许定制化以满足广泛的应用。
  4. state 每一个GStreamer element有一个关联的state,简单理解为播放/停止按钮。PLAYING状态对应播放。
  5. gst_element_set_state() 设置elementstate
  6. gst_element_get_bus(),返回elementbus,只有GstPipeline给应用程序提供总线。
  7. gst_bus_timed_pop_filtered(GstBus *bus, GstClockTime timeout, GstMessageType types) 功能:等待指定的超时时长timeout,根据GstMessageType过滤信息,匹配types则通过,否则不通过。说明:如果timeoutGST_CLOCK_TIME_NONE,直到匹配信息通过bus前,函数封锁;如果timeout0,函数表现和gst_bus_pop_filtered一致。

Cleanup

  1. gst_message_unref() 释放gst_bus_timed_pop_filtered的返回消息。
  2. gst_object_unref() 释放gst_element_get_busbus的引用

你可能感兴趣的:(GStreamer学习笔记,学习,笔记,linux)