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 |
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? 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 |
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 |
Free forum by Nabble | Edit this page |