"hot-linking" audioecho into pipeline results in silence for a period

Charlie FG subs at carrotsrc.org
Thu Jan 8 15:37:04 PST 2015


Good day/night one and all!

Have just subscribed to the mailing list. I am thoroughly enjoying my
foray into gstreamer, it's a very nice framework. However, still getting
to grips with it.

I am currently having a little issue and hoping someone has some
pointers. The direction I've gone, I've had to venture into the realm of
dynamically altering pipelines. So far, I have implemented pipeline
classes for "hot-linking" arbitrary elements on a pipeline that is in a
PLAYING state. I used the 'changing pipelines dynamically' tutorial as a
reference, so blocking and unblocking probes on pads. The difference in
this is I am _not_ sending an EOS since I have a 'queue' setup just
before the 'alsasink', giving it an amount of flexibility in the latency
to (in theory) seamlessly add the elements. In practise, it _does_ work
if I just hot-link 'audioconvert' elements between the decoder and
queue.

Here's the issue -

I place 'audioecho' element (already linked between two 'audioconvert'
elements) into the pipeline but 3500 milliseconds after it has switched
to PLAYING ... It does work but with a major drawback - there is silence
for ~3500ms (once the 'queue' has expended it's buffers). If I change
the time of the hot-linking event to, say, 12000ms it will be silent for
~12000ms; once it has seemingly caught up, it will play from the point
the 'audioecho' was linked in, with the echo active.

I have spent a fair number of hours searching the 'net, reading manuals
and looking through logs (including the daunting 50MiB/s setting-5 debug
logs! haha). I haven't seen much of a hint about what's going on, but I
probably don't know what to look for. It just seems the whole stream
starts again from the beginning but doesn't output anything until it has
caught up with a clock somewhere. Am I doing something wrong or am I
simply doing something that won't work but am inexperienced and can't
see why?

Thank you for any help,
Charlie FG

Reference of pipeline before and after hot-linking:

-> filesrc | flacparse | flacdec | queue | alsasink <)))

-> fs | fp | fd | audioconvert | audioecho | audioconvert | q | as <)))


More information about the gstreamer-devel mailing list