can I add a new input pad to a running audiomixer?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

can I add a new input pad to a running audiomixer?

Andres Gonzalez
Hi,

I have an audiomixer working where I am mixing several audio feeds that are originating from decklink SDI interfaces (non-GStreamer implementation for the SDI interfaces). Each of the input pads to the audiomixer has an appsrc preceding it. All of these inputs to the mixer are configured before the mixer starts running. I now want to add dynamic inputs to this mixer, that is, add a new mixer input/pad while the mixer is running.

Question: How does creating a new input pad effect a running mixer?  Is this even possible or am I opening up a can of worms by even thinking of doing so?

Thanks,
-Andres  
Reply | Threaded
Open this post in threaded view
|

Re: can I add a new input pad to a running audiomixer?

Sebastian Dröge-3
On Wed, 2017-08-09 at 18:45 -0700, Andres Gonzalez wrote:

> Hi,
>
> I have an audiomixer working where I am mixing several audio feeds that are
> originating from decklink SDI interfaces (non-GStreamer implementation for
> the SDI interfaces). Each of the input pads to the audiomixer has an appsrc
> preceding it. All of these inputs to the mixer are configured before the
> mixer starts running. I now want to add dynamic inputs to this mixer, that
> is, add a new mixer input/pad while the mixer is running.
>
> Question: How does creating a new input pad effect a running mixer?  Is this
> even possible or am I opening up a can of worms by even thinking of doing
> so?
It's possible and it affects the audiomixer only as much as every other
existing pad does. You only have to be careful when all previous pads
were non-live and the new one is live, or the other way around. That
might not work as expected. Or if pads are live and the latency is
changing now. In those cases some additional things will have to be
done.

--
Sebastian Dröge, Centricular Ltd · https://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: can I add a new input pad to a running audiomixer?

Andres Gonzalez
Thank you for your response  Sebastian.

I worked around this so as to not need to add the pad to a  running audiomixer. For the sake of future viewers of this post, this is what I did to support adding/removing dynamic inputs to a running audiomixer  pipeline.

When the audiomixer is created, I allocate an extra input pad specifically for dynamic inputs and set its volume to 0.0 and muted. In my case, this audiomixer also has some other default inputs configured for live decklink SDI audio. But the audiomixer ends up being created with an extra input pad that is initially muted.  When I want a "new input" to the audiomixer, I unmute that  previously allocated pad, set its desired volume, and start feeding it audio data. When I want to "remove" that audiomixer input, I mute its pad and stop feeding it with data.  All of the input pads have an appsrc before them, so as far as the audiomixer is concerned, all input pads are configured as live.  This way I can feed the audiomixer with a combination of live and non-live data sources because the audiomixer is essentially a separate pipeline from all of its inputs. This design allows me to mix audio from decklink SDI live feeds and MP3 files without having to deal with the live/non-live issues in the audiomixer.

-Andres