Streaming over network and seeking - what options do I have?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Streaming over network and seeking - what options do I have?

Bastian Hecht
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


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, &
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel