GNOME Bugzilla – Bug 704198
rtspconnection: Removes child sources and adds them again later
Last modified: 2013-07-15 08:19:32 UTC
gstrtspconnection currently removes write child sources if nothing is to write. Unfortunately child sources that were removed once can't be added again because they're marked as destroyed. Removing a child source removes the G_HOOK_FLAG_ACTIVE flag and when adding a child source again there's an assertion to check for this. This was added with commit ad6c16fdfccb6aff1732d2df1dcd43037cc4daa3 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Thu Jun 20 17:28:46 2013 +0200 rtsp: manage writer child source better Only add the write child source when we have something to write or else we will dispatch forever without doing anything.
commit c6f8220920ca9a4e0fd3f9f6b9af555dda7cec34 Author: Sebastian Dröge <slomo@circular-chaos.org> Date: Sun Jul 14 18:11:59 2013 +0200 rtspconnection: Create a new write GSource after removing it After removal, a GSource is destroyed and can never be attached again to a main context. We need to create a new one instead. https://bugzilla.gnome.org/show_bug.cgi?id=704198
That does not sound right? sources are not destroyed AFAIK. Maybe you are running into bug #701283 ?
(In reply to comment #2) > That does not sound right? sources are not destroyed AFAIK. Maybe you are > running into bug #701283 ? Ah no, they are destroyed indeed.. weird, how could this have worked then..
I guess for you either the socket's send buffer was large enough to never run in the delayed sending... or you always produced data fast enough to always have data in the loop of the GSource (unlikely ;) ).