[gst-devel] Streaming over network and seeking - what options do I have?

Bastian Hecht hechtb at googlemail.com
Tue May 26 14:57:23 CEST 2009


Hello,

I want to stream an audio file from a server to a client, there I want to
seek to change the track position and want to use scaletempo to change the
playback rate.
Both actions are realized via a seek event.

When I use filesrc everything works fine, using tcpserversrc or similar
things fail.

What I think I know:

- filesrc can random access all my audio data, so it can run in pullmode
- httpsrc, fdsrc, queue, ... run in pushmode as they cannot access all data
in advance

What I don't understand:

- What really is pullmode: The last sink wants data, so it pulls it from
it's predecessor, and that pulls it again from its predecessor and so on -
until the buffer from the sink is full enough?
- What really is pushmode: when a queue has enough data it pushes it forward
to the next linked element, that pushes it forward and so on. What happens
if the buffer of (say) alsasink is empty? Does the pipeline change to pause
mode?


What options do I have?

Writing a plugin that buffers data from a network stream and offer random
access mode? If the app seeks to data that has not arrived so far it sets
the pipe to pause mode?
Any other (simpler) workaround?

Thanks so much,

 Bastian Hecht
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090526/85b38b88/attachment.htm>


More information about the gstreamer-devel mailing list