[gst-devel] handling playlists (was: SMIL: how to read while being paused?)

Ákos Maróy darkeye at tyrell.hu
Thu Oct 6 04:27:45 CEST 2005


Andy Wingo wrote:
> Howdy,
> 
> On Thu, 2005-10-06 at 12:41 +0200, Ákos Maróy wrote:
> 
>>Andy Wingo wrote:
>>
>>>In GStreamer 0.9 the ability to pull or push on a pad is tied to the
>>>pad's activation state, not the state of the element. So for example if
>>>you are going to start pulling on a pad, you can call
>>>gst_pad_activate_pull (pad, TRUE) and if it returns success you can pull
>>>from it, in any state.
>>
>>oh, but I see that little evil "if" there :)
> 
> 
> It is true that fewer elements support pull-based operation in 0.9.

I see..

well, getting to be the most specific, currently I read a playlist from
a filesource. what might be needed is to read it through say an HTTP
(RTSP) source (I don't know if these are available already). so the
question is, if these support pull, and in the READY state.

currently I connected a filesource to a sink pad, and utilized a gst
bytestream object to read all the data from the filesource in go. (I
created a gst element called oneshotreader just to do this thing). I
wonder if such a functionality is still available (or if there is a
better way of doing things).


also, from a plugin graph (and connection) point of view, a playlist
element is quite interesting: it's not your regular 'some data flows
through me' kind of element. instead, it has a playlist at its sink,
which is read up all the way prior to doing anything else. then this is
basically discarded (it doesn't matter anymore, can be closed, etc.).
but, a range of new source objects (filesource, etc.) are created, with
different decoders / demuxers attached, and the outputs of these added
together at the end. these source can also be openned / closed during
play, as they become needed / if they are no longer needed.

so the setup looks something like this:


             +------- playlist element -----------------+
             |                                          |
filesource ---- oneshotreader                           |
             |                                          |
             |  filesource1 --- decoder ----\           |
             |                               \          |
             |  filesource2 --- decoder ------- adder ------ src pad
             |                               /          |
             |  filesource3 --- playlist ---/           |
             |                                          |
             +------------------------------------------+



>>the other issue was seek. can that happen while being paused?
> 
> 
> Certainly.

great news!


Akos




More information about the gstreamer-devel mailing list