querying playbin2 queue2 buffer stats

Dave Milici davemilici at sbcglobal.net
Tue Oct 1 12:10:37 PDT 2013


OK, I can iterate through all the pipeline bin elements on video-changed and audio-changed callbacks, including queue2 object.

This media player already has a buffer message handler, so I'm wondering why the queue2 object is not accessible in that handler. Wouldn't that be the object which is posting GST_MESSAGE_BUFFER messages?

I'm trying to find a way to query and cap current-level-bytes since we have a really tight memory environment. 



________________________________
 From: Dave Milici <davemilici at sbcglobal.net>
To: chaitanya v l <superchaits at gmail.com>; Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org> 
Sent: Monday, September 30, 2013 7:36 PM
Subject: Re: querying playbin2 queue2 buffer stats
 


In an example playbin2 case, I see how calling gst_bin_iterate_elements() and gst_bin_iterate_recurse() on the playbin2 will iterate through the list of connected audio and video elements, including queue elements for each stream, and multiqueue element.

However if I port the same iteration code into the media player we are working with, I only see printouts for 'playsink0' and 'streamsynchronizer0' elements.


One difference between the actual media player and test example, is that the example waits until the player changes past the READY state.


________________________________
 From: chaitanya v l <superchaits at gmail.com>
To: Dave Milici <davemilici at sbcglobal.net>; Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org> 
Sent: Monday, September 30, 2013 1:20 AM
Subject: Re: querying playbin2 queue2 buffer stats
 

On Mon, Sep 30, 2013 at 12:50 AM, Dave Milici <davemilici at sbcglobal.net> wrote:
> Hi--
>
> We have a media player using gstreamer's playbin2 pipeline for playing
> videos from YouTube sites and it's not immediately obvious how to query the
> queue2 object's current buffering stats.
>
> Adding a playbin2 callback for deep-notify changes on
> 'current-level-buffers' or 'current-level-bytes' does not get called. Since
> the media player is using playbin2's download option, adding the callback
> for 'temp-location' actually gets called for querying the download temp file
> path, but querying the buffer properties on the same callback object returns
> 0.
>
> If we enable GST_DEBUG=queue2:4 for console output, we can see current
> buffering stats with bytes changing up and down
 frequently throughout the
> playback session. We'd like to be able to tap that same info
> programatically, but the above attempts suggest we're not looking at the
> right playbin2 object.
>
> Is there code snippet which shows how to enumerate all the queue objects
> constructed in a playbin2 pipeline and query their buffer stats?
>
> --Dave Milici
>

Have you tried iterating through the elements in the bin using
gst_bin_iterate_* functions?
Have you tried registering for message::buffering +
gst_message_parse_buffering to get buffering statistics of your
pipeline ?


regards,
Chaitanya



_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20131001/1ed17277/attachment-0001.html>


More information about the gstreamer-devel mailing list