Hi People,
i'm trying to remove dinamically a audio input that is linked to a Adder element. Does someone know how to remove a source element and let the Adder continue mixing the other sources? I've googled a lot to find the answer but I only found references to removing a branch of a "Tee". I don't know how to adapt the steps used in the "Tee case" because the Adder element is the inverse of a Tee. Thanks in advance. Lucas Alberto, from Brazil. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Lucas,
First try the option sync=false for the alsasink at the end of the pipeline. If no success try to use the liveadder. I had the same problem and I solved it with the liveadder. You can not solve it with a "static" gst-launch command, you have to write a program yourself. The programs I made (source and linux executables) are attached as source for inspiration. The sender sends MP3 file to a RTP network stream. The receiver may receive multiple network streams (of multiple senders from different machines) and mixes these streams. If new streams arrive or old streams are removed, the corresponding mixer pads are created/removed dynamically. Be aware that liveadder seems to have a "big" memory leak, or my program is wrong (see bug report https://bugzilla.gnome.org/show_bug.cgi?id=647055) If you make better versions of them please let me know! E-J Op 8 apr 2011, om 05:06 heeft Lucas Alberto het volgende geschreven:
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel myRtpReceiver.c (11K) Download Attachment myRtpSender (16K) Download Attachment myRtpSender.c (5K) Download Attachment myRtpReceiver (22K) Download Attachment |
In reply to this post by Lucas Alberto
On Fri, 2011-04-08 at 00:06 -0300, Lucas Alberto wrote:
Hi Lucas, > I'm trying to remove dynamically a audio input that is linked to a > Adder element. Does someone know how to remove a source element and > let the Adder continue mixing the other sources? > > I've googled a lot to find the answer but I only found references to > removing a branch of a "Tee". I don't know how to adapt the steps used > in the "Tee case" because the Adder element is the inverse of a Tee. Have you tried just unlinking the input you don't need any longer and then releasing the now-unlinked adder pad using gst_element_release_request_pad() ? Cheers -Tim _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Lucas Alberto
Hi Tim,
Thanks for the answer. Now I can add new sources to a Adder element, it works just as simple as you wrote. But I got another problem when I tried to dinamically connect live sources (rtmpsrc) to a Liveadder element. It's dropping all the new source's buffers because they has late timestamps. Do you or another gstreamer master knows how to timestamp the input buffers to the running time? I can't pause the pipeline because the audio processing has to be gapless. Lucas Alberto > Message: 2 > Date: Fri, 08 Apr 2011 09:28:18 +0100 > From: Tim-Philipp M?ller <[hidden email]> > Subject: Re: How to remove a source of a Adder while playing? > To: [hidden email] > Message-ID: <1302251298.24722.2.camel@zingle> > Content-Type: text/plain; charset="UTF-8" > > On Fri, 2011-04-08 at 00:06 -0300, Lucas Alberto wrote: > > Hi Lucas, > >> I'm trying to remove dynamically a audio input that is linked to a >> Adder element. Does someone know how to remove a source element and >> let the Adder continue mixing the other sources? >> >> I've googled a lot to find the answer but I only found references to >> removing a branch of a "Tee". I don't know how to adapt the steps used >> in the "Tee case" because the Adder element is the inverse of a Tee. > > Have you tried just unlinking the input you don't need any longer and > then releasing the now-unlinked adder pad using > gst_element_release_request_pad() ? > > Cheers > -Tim > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Lucas Alberto
Hi E-J,
I tried the liveadder and now the action of removing a source is OK. Your code really helped me. But, as described in my previously message, now I have trouble when dynamically adding live sources to liveadder, it's dropping the buffers. Lucas > Message: 3 > Date: Fri, 8 Apr 2011 07:04:37 +0200 > From: E-J van der Linden <[hidden email]> > Subject: Re: How to remove a source of a Adder while playing? > To: Discussion of the development of and with GStreamer > <[hidden email]> > Message-ID: <[hidden email]> > Content-Type: text/plain; charset="us-ascii" > > Lucas, > > First try the option sync=false for the alsasink at the end of the pipeline. > > If no success try to use the liveadder. > > I had the same problem and I solved it with the liveadder. You can not solve it with a "static" gst-launch command, you have to write a program yourself. > The programs I made (source and linux executables) are attached as source for inspiration. > > The sender sends MP3 file to a RTP network stream. > The receiver may receive multiple network streams (of multiple senders from different machines) and mixes these streams. > If new streams arrive or old streams are removed, the corresponding mixer pads are created/removed dynamically. > > Be aware that liveadder seems to have a "big" memory leak, or my program is wrong (see bug report https://bugzilla.gnome.org/show_bug.cgi?id=647055) > If you make better versions of them please let me know! > > E-J > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Lucas Alberto
hi, lucasa,
I used adder in my application and i can remove source element dynamically by unlink and release-request-pad method. But, i can not add the removed element to adder again. Do you have any idea? Thanks a lot. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Lucas Alberto
hi all,
I'm facing the same problem: I wanna have a RUNNING pipeline with gstrtpbin and filesrc/wavparse dynamically added to an adder (going to an alsasink) adder: runs with "dynamically by unlink and release-request-pad method" BUT I'm getting some added delay to the pipeline every time I'm add and play the filesrc/wavparse AND the filesrc/wavparse is not mixed (added) to??? (just played after each other) liveadder: runs BUT "dropping all the new source's buffers because they has late timestamps" can anybody give me some help? cheers Thomas _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Lucas Alberto
Hi!
It add/remove inputs to/from adder while playing. I saw the solution here: http://stackoverflow.com/questions/3899666/adding-and-removing-audio-sources-to-from-gstreamer-pipeline-on-the-go
Lucas Alberto ------------------------------ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by toto-2
On 29.04.2011 09:05, toto wrote:
> hi, lucasa, > I used adder in my application and i can remove source element > dynamically by unlink and release-request-pad method. > But, i can not add the removed element to adder again. > Do you have any idea? > Thanks a lot. > > _______________________________________________ What is failing? Do you stop the element? Stefan _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Thomas Roos
Hello All,
I am facing a similar problem with live adder.It is 9/10 times drops the new source buffers. I am testing it with just two rtp sources. My sample pipeline is shown in attached diagram Does anyone know the solution to that? Thanks Tanmay Ambre |
Free forum by Nabble | Edit this page |