are gstreamer elements thread safe?

Farkas Levente lfarkas at
Sun Jul 3 02:40:20 PDT 2011

while we use many elements, pipelines ans threads in our program we'd
like to know that gstreamer elements are thread safe by design? i mean
if we've a running pipeline and we set one element's properties from
another thread (not th pipeline and bus), then the elements behavior are
deterministic and proper? what happened if the property setting happened
during the element process in it's chain function? if it's use it's
properties in the chain and it's value different in the begining of the
chain as in the middle of the chain?
eg. set vorbisenc quality while it's encoding a frame?
because if the elements itself is not thread safe we can't do anything
from outside (ie. can't lock/unlock) other than pause and play the
stream again which is many case not possible.
and the same question arise when we develop our own element should we've
to care about the property settings and chain function thread safety?
while in 0.10 the caps renegotiation is not working how does it planed
in 0.11/1.0? since if we can set the caps during the play state the same
problem can happened all over the pipeline.
or is there any global locking mechanism for this?
thanks in advance.

  Levente                               "Si vis pacem para bellum!"

More information about the gstreamer-devel mailing list