Gstreamer-element-queuequeue2multiqueue
什么精神成语
queue/queue2/multiqueue
queue:
queue只有⼀个src pad和⼀个sink pad,会在src pad上创建⼀个线程,减少src和sink的关联。queue有三个限制参数buffers、bytes、time(单位纳秒ns)。有最⼤阀值和最⼩阀值供6个参数。最⼤默认值:200 buffers、10MB、one cond,最⼩默认值都是0.
当三个限制参数某⼀个达到最⼤值的时候,会阻塞上游的链路传输(可以通过设置属性 property 来处理阻塞情况,分为上游丢弃或下游丢弃或不丢弃阻塞)。 signal会被发送,当数据达到最⾼阀值的时候, signal 会被发送,当数据达到最低阀值的时候。
遵守用英语怎么说property可以获取当前buffers的个数。notify::current-level-buffers signal 可以监听buffers的变动。bytes和time也有类似的属性和信号。
queue2:
和queue的区别如下:
1. 默认值不同:最⼤值:100 buffers, 2MB, two conds,最⼩值默认都是0.
2. 增加了temp-template属性⽐如:/tmp/gstreamer-XXXXXX,设置此属性后,数据会被保存到⽂件中,具体⽂件名可以通过属性
temp-location获取。
3. ⼀些属性发⽣了变化,⽐如:只有 信号,增加循环buf,增加GST_MESSAGE_BUFFERING消息等
multiqueue:
和queue的区别如下:
1. src pad和sink pad由1个变成了多个。When requesting a given sinkpad with , the associated srcpad for that stream will
be created. 如果stream超过⼀个,对应的queue也会增长,保证不会饿死。
2. 当src pad没有下游连接的时候,sink pad的内容也会发给src pad。sink pad和src pad总是成对出现,创建sink pad的时候回同步
创建src pad。当src pad和下游处于unlink的时候,buffers和envet由sink pad发送给src pad的时候必须按照先后顺序发送。针对这样情况有⼀个属性“sync-by-running-time”,当此属性设置为true时,⾮link的stream也会参考link的stream的runing time来同步。
3. 默认值不同:最⼤值:5 buffers, 10MB, two cond ,最⼩值默认都是0.
4. The signal is emitted when all of the queues are empty. The signal is emitted when one of the queues is filled.
5. 当有多个src pad的时候,对应多个线程,类似于多个queue,其中等也有多份,只不过都相同⽽已。
queue:内存单队列
Object Hierarchy
╰──
╰──
╰──
╰── GstQueue
Properties
Read当前队列中buffers⼤⼩
Read当前队列中bytes⼤⼩
Read当前队列中包含数据time⼤⼩,单位ns
Read / Write是否⽀持eos events处理。
Read / Write queue满时的处理策略。阻塞,扔新数据,扔旧数据
Read / Write queue中允许的最⼤buffers
Read / Write queue中允许的最⼤bytes
Read / Write queue中允许的最⼤time,单位ns
Read / Write queue中允许发送的最⼩buffers
Read / Write queue中允许发送的最⼩bytes
Read / Write queue中允许发送的最⼩time
Read / Write是否⽀持发送信号,默认为FALSE
Signals
void queue满时发送的信号,silent必须为TRUE(下同)
连续函数的定义void queue由空闲变为有数据时发送的信号。
void当queue阻塞且由满变为有空闲的时候发送。或pushing满⾜的时候也发送。void queue三个限制条件都低于给定值时发送的信号
Types and Values
struct Opaque structure.透明结构体,⽆需了解
enum GST_QUEUE_NO_LEAK阻塞
GST_QUEUE_LEAK_UPSTREAM丢新数据GST_QUEUE_LEAK_DOWNSTREAM丢旧数据
Description
Data is queued until one of the limits specified by the , and/or properties has been reached. Any attempt to push more buffers into the queue will block the pushing thread until more space becomes available.
The queue will create a new thread on the source pad to decouple the processing on sink and source pad.
You can query how many buffers are queued by reading the property. You can track changes by connecting to the notify::current-level-buffers signal (which like all signals will be emitted from the streaming thread). The same applies to the and properties.
The default queue size limits are 200 buffers, 10MB of data, or one cond worth of data, whichever is reached first.
As said earlier, the queue blocks by default when one of the specified maximums (bytes, time, buffers) has been reached. You can t the property to specify that instead of blocking it should leak (drop) new or old buffers.
美美力诚
The signal is emitted when the queue has less data than the specified minimum thresholds require (by default: when the queue is empty). The signal is emitted when the queue is filled up. Both signals are emitted from the context of the streaming thread.
Synopsis
Element Information
plugin
author Erik Walthinn <i.edu>
class Generic
Element Pads
name sink
direction sink
prence always
details ANY
name src
direction source
prence always
details ANY
queue2:⽂件单队列
Object Hierarchy
╰──
╰──
╰──
╰── GstQueue2
Properties
Read参考queue
Read参考queue
Read参考queue
Read / Write废弃,Deprecated: u high-watermark instead
Read / Write废弃,Deprecated: u low-watermark instead
Read / Write参考queue
Read / Write参考queue
Read / Write参考queue
Read / Write循环buf的最⼤个数,为0不⽤循环buf
*Read⽂件名,系统根据⽣成
Read / Write使⽤完成后,清除临时⽂件
*Read / Write设置⽣成⽂件模板,类似:/tmp/gstreamer-XXXXXX
Read / Write是否发送 GST_MESSAGE_BUFFERING消息。
运动会开幕式作文Read / Write Estimate the bitrate of the stream to calculate time level.
Read The average input data rate.
用计算机Read / Write U a bitrate from upstream tags to estimate buffer duration if not provided.
Read / Write触发GST_MESSAGE_BUFFERING消息的上限[0~1],默认0.99
Read / Write触发GST_MESSAGE_BUFFERING消息的下限[0~1],默认0.01 Signals
void参考queue
Types and Values
struct Opaque 2 structure.透明结构体,⽆需了解
Description
Data is queued until one of the limits specified by the , and/or properties has been reached. Any attempt to push more buffers into the queue will block the pushing thread until more space becomes available.
The queue will create a new thread on the source pad to decouple the processing on sink and source pad.
You can query how many buffers are queued by reading the property.
The default queue size limits are 100 buffers, 2MB of data, or two conds worth of data, whichever is reached first.
If you t temp-template to a value such as /tmp/gstreamer-XXXXXX, the element will allocate a random free filename and buffer data in the file. By using this, it will buffer the entire stream data on the file independently of the queue size limits, they will only be ud for buffering statistics.
The temp-location property will be ud to notify the application of the allocated filename.
Synopsis
Element Information
plugin
author Erik Walthinn <i.edu>, Wim Taymans <wim.>丧葬费领取流程
class Generic
Element Pads
name sink
direction sink
prence always
details ANY
name src
direction source
prence always
details ANY
multiqueue:内存多队列
Object Hierarchy
╰──
╰──
╰──
╰── GstMultiQueue
Properties
Read / Write暂时未实现
Read / Write暂时未实现
关于友情的诗
Read / Write暂时未实现
Read / Write类似,取值范围[0,100],queue2此值以放弃
Read / Write类似,取值范围[0,100],queue2此值以放弃
Read / Write参考queue
Read / Write参考queue
Read / Write参考queue
Read / Write设置为true时,⾮link的stream也会参考link的stream的runing time来同步
Read / Write参考queue2
Read / Write Extra buffering in time for unlinked streams (if 'sync-by-running-time').Default value: 250000000
Read / Write Adjust time limits bad on input interleave.是否使⽤interleave.multiqueue: New property which allows the size of the queues to be optimized bad on the input streams interleave.
This should only be ud with input streams which are properly timestamped. It will be ud in the future decodebin3 element.
Read / Write参考queue2 Read / Write参考queue2
Read / Write Minimum extra buffering for deinterleaving (size of the queues) when u-interleave=true.
Signals
void参考queue,任意⼀个满都触发
void参考queue,所有都不⾜才触发
Types and Values
struct Opaque structure.透明结构体,⽆需了解