summaryrefslogtreecommitdiff
path: root/libpurple/mediamanager.c
diff options
context:
space:
mode:
authorJakub Adam <jakub.adam@ktknet.cz>2016-04-27 09:19:58 +0200
committerJakub Adam <jakub.adam@ktknet.cz>2016-04-27 09:19:58 +0200
commit72827da924fd5b532bed6f2be05d9a997c140aa3 (patch)
treea720664b5bc9e83ad6da120c5f43b83c7af49739 /libpurple/mediamanager.c
parentc3729ca7c7d4566711c79c2f8f8c1f01a1aea927 (diff)
downloadpidgin-72827da924fd5b532bed6f2be05d9a997c140aa3.tar.gz
media: don't keep last sample reference on sinks
Holding a reference to a GstBuffer somewhere in a pipeline for possibly indefinite period may cause trouble when the buffer has been allocated by a 3rd party library or when it points directly into memory region of a hardware device. A specific example is V4L2 source element, which won't allow webcam image resolution be reconfigured unless all previously allocated buffers have been freed. Backport of Pidgin 3 commit 13807c514810.
Diffstat (limited to 'libpurple/mediamanager.c')
-rw-r--r--libpurple/mediamanager.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
index 0013f31916..a5702b5d2e 100644
--- a/libpurple/mediamanager.c
+++ b/libpurple/mediamanager.c
@@ -1171,7 +1171,10 @@ purple_media_manager_get_element(PurpleMediaManager *manager,
* giving a not-linked error upon destruction
*/
fakesink = gst_element_factory_make("fakesink", NULL);
- g_object_set(fakesink, "sync", FALSE, NULL);
+ g_object_set(fakesink,
+ "sync", FALSE,
+ "enable-last-sample", FALSE,
+ NULL);
gst_bin_add(GST_BIN(bin), fakesink);
gst_element_link(tee, fakesink);