zoukankan      html  css  js  c++  java
  • gstreamer元件状态

    gstreamer元件状态


    GST_STATE_NULL: 默认状态

    该状态将会回收所有被该元件占用的资源。


    GST_STATE_READY: 准备状态

    元件会得到所有所需的全局资源,这些全局资源将被通过该元件的数据流所使用。例如打开设备、分配缓存等。但在这种状态下,数据流

    仍未开始被处 理,所以数据流的位置信息应该自动置0。如果数据流先前被打开过,它应该被关闭,并且其位置信息、特性信息应该被重

    新置为初始状态。


    GST_STATE_PAUSED: 暂停状态

    在这种状态下,元件已经对流开始了处理,但此刻暂停了处理。因此该状态下元件可以修改流的位置信息,读取或者处理流数据,以及一

    旦状态变为 PLAYING,流可以重放数据流。这种情况下,时钟是禁止运行的。总之, PAUSED 状态除了不能运行时钟外,其它与 PLAYING

    状态一模一样。处于 PAUSED 状态的元件会很快变换到 PLAYING 状态。举例来说,视频或音频输出元件会等待数据的到来,并将它们压入

    队列。一旦状态改变,元件就会处理接收到的数据。同样,视频接收元件能够播放数据的第 一帧。(因为这并不会影响时钟)。自动加载器

    (Autopluggers)可以对已经加载进管道的插件进行这种状态转换。其它更多的像codecs或者 filters这种元件不需要在这个状态上做任

    何事情。


    GST_STATE_PLAYING: 运行状态

    PLAYING 状态除了当前运行时钟外,其它与 PAUSED 状态一模一样。你可以通过函数gst_element_set_state()来改变一个元件的状态。你

    如果显式地改变一个元件的状态,GStreamer可能会 使它在内部经过一些中间状态。例如你将一个元件从 NULL 状态设置为 PLAYING 状态

    ,GStreamer在其内部会使得元件经历过 READY 以及 PAUSED 状态。当处于GST_STATE_PLAYING 状态,管道会自动处理数据。它们不需要

    任何形式的迭代。 GStreamer 会开启一个新的线程来处理数据。GStreamer 同样可以使用 GstBus在管道线程和应用程序现成间交互信息。


    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    2016012061 小学四则运算练习软件项目报告
    阅读《构建之法》的几点思考
    软件工程之我见
    作业五
    结对作业
    第4.17章读书笔记
    week_2 四则运算
    第1.2.16章读书笔记
    我与软件工程
    团队项目Alpha冲刺阶段之学习总结
  • 原文地址:https://www.cnblogs.com/iplus/p/4467398.html
Copyright © 2011-2022 走看看