gstreamer元件状态

摘要:
Gstreamer元素状态GST_STATE_NULL:默认状态。此状态将回收此组件占用的所有资源。其他更多的组件,如编解码器或过滤器,在这种状态下不需要做任何事情。如果您显式更改组件的状态,GStreamer可能会使其在内部经历一些中间状态。例如,如果将组件从NULL状态设置为PLAYING状态,GStreamer将使组件在内部经历READY和PAUSED状态。GStreamer将启动一个新线程来处理数据。GStreamer还可以使用GstBus在管道线程和应用程序之间即时交换信息。

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在管道线程和应用程序现成间交互信息。


免责声明:文章转载自《gstreamer元件状态》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇爬虫 -- JS调试UpdatePanel的几个属性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【GStreamer开发】GStreamer播放教程05——色彩平衡

目标 亮度,对比度,色度和饱和度都是常见的视频调节参数,也是GStreamer里面设置色彩平衡的参数。本教程将展示: 如何发现可用的色彩平衡通道 如何改变它们 介绍 《GStreamer基础教程05——集成GUI工具》里面已经解释了GObject接口:应用通过它们来获得特定功能,而不用去管具体的element的实现。 playbin2实现了色彩平衡的接...

kurento用gstreamer推流 RTP to RTMP

基于Gstreamer的rtp转rtmp代码 flv不支持 音频 48000. 支持44k。flv不支持音频opus格式。   1,用ffmpeg推流到rtp。 srs的示例flv文件: ffmpeg -re -stream_loop -1 -i ./doc/source.200kbps.768x320.flv -an -vcodec h264 -...

Windows上安装-kivy

原文:https://kivy.org/doc/stable/installation/installation-windows.html#install-win-dist 如果您使用Anaconda,则可以使用以下命令安装kivy: $ conda install kivy -c conda-forge 否则,请继续下面的步骤以在本机Python安装...

【Gstreamer开发】TI嵌入式处理器GStreamer pipeline

Example GStreamer Pipelines From Texas Instruments Embedded Processors Wiki Jump to: navigation, search Translate this page to Translate Example GStreamer Pipelines MAINTENANCE...

Python 开发安卓Android及IOS应用库Kivy安装尝试

Python 开发安卓Android及IOS应用库Kivy安装尝试: 先来看看这货可以用来制作什么应用: Create a package for Windows Create a package for Android Creating packages for OS X Create a package for IOS 逆天的节奏啊,虽然600+页...

fedora19安装后,需要安装的一些必备的软件包

安装rpmfusion源 Fedora 19的源:sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-19.noarch.rpm  http://download1.rpmfusion.org/nonfree/...