More advanced buffering control in uridecodebin

Carlos Rafael Giani dv at pseudoterminal.org
Wed Aug 26 01:21:22 PDT 2015


I need some suggestions for more fine grained control over the buffering 
that uridecodebin uses.

I am now referring to the queue2 that is used when the source element 
has one simple sourcepad. (For example, rtpsrc produces sometimes-pads 
for audio, video separately, and uses multiqueues instead). Existing 
uridecodebin properties allow for setting size and duration limits, as 
well as the low/high buffer watermarks. However, it does not allow for 
reconfiguring these properties on the fly (setting them during playback 
will do nothing). Furthermore, it is not possible to access the current 
buffer fill level (= the current-size-bytes property of queue2).

However, I do want to be able to do that to allow for a more 
sophisticated buffer management. If for example playback has to pause 
frequently to fill the queue, then raising the limits would perhaps make 
sense. If on the other hand the buffering period is deemed too large, it 
can be reduced, until an optimum is reached.

Right now, I simply look for an element with a name that starts with 
"queue" inside uridecodebin. However, that is far from clear. Any 
suggestions on how this could be done better?

Plus, improved buffer controls would also be a suggestion for any future 
"uridecodebin2".


More information about the gstreamer-devel mailing list