diff libpurple/mediamanager.c @ 31105:0485aed45f5b

This patch fixes #12758. If the user starts two parallel video calls, then ends one of them some time later, the user can still see and hear the participant from the non-ended call, but the other participant no longer receives the user's video or audio. The problem lies in purple_media_backend_fs2_dispose(), which calls gst_element_set_state() in such a way that the media sources stop sending data. Additional reference information is mentioned on #12758, comment 6 (http://developer.pidgin.im/ticket/12758#comment:6). committer: John Bailey <rekkanoryo@rekkanoryo.org>
author jakub.adam@ktknet.cz
date Sat, 08 Jan 2011 02:13:40 +0000
parents 4ce69a55f2c6
children 66fe4bda9a85 55e30c0eca22
line wrap: on
line diff
--- a/libpurple/mediamanager.c	Fri Jan 07 11:42:13 2011 +0000
+++ b/libpurple/mediamanager.c	Sat Jan 08 02:13:40 2011 +0000
@@ -400,6 +400,8 @@
 	GstIteratorResult result;
 
 	gst_element_release_request_pad(GST_ELEMENT_PARENT(pad), pad);
+	gst_pad_set_blocked(pad, FALSE);
+
 	iter = gst_element_iterate_src_pads(parent);
 
 	result = gst_iterator_next(iter, (gpointer)&remaining_pad);