change "location" of filesrc element without breaking tcpserversink connection

Stirling Westrup swestrup at
Thu Jul 25 08:55:49 PDT 2013

On Thu, Jul 25, 2013 at 6:44 AM, Serhiy Stetskovych <patriotyk at>wrote:

> Hello, I have a problem with changing media file in filesrc. After
> finishing playing one file I get event and in this point I need change
> media file to another but without breaking clients connected to
> tcpserversink. I can change file only after setting STATE_NULL, and  then
> setting back to STATE_PLAYING. But this breaks all my connections.
> Actually I use multifdsink with writing to sockets, but in explanation
> above I wrote about tcpserversink because It is easier to explain, but I
> think it doesnt matter.
> <>
You have two options. First, you can change the media file in filesrc when
you are in STATE_READY rather than STATE_NULL. You only really need to go
into STATE_NULL when you are about to dismantle your pipeline (ie for
program cleanup).

If for some reason you have to put filesrc in a state that causes your sink
to perform an action you don't like, you can LOCK the state of the sink so
it ignores requests to change state. This is done with one of the
gst_element_... function calls.

Stirling Westrup
Programmer, Entrepreneur.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list