GNOME Bugzilla – Bug 682483
fakesink bad default properties
Last modified: 2012-08-22 15:18:51 UTC
while we try to find the huge load of our system we find out the biggest load was caused by fakesink. and the reason for this was the "silent" properties by default false. the reason is very tricky and hidden. we use java (gstreamer-java to control gstreamer pipelines). - silent false produce last_message events - which in turn for all buffers (video frames) add a reference to the pipeline - which cause 2 call. 1 g_object_add_toggle_ref and 1 g_object_remove_toggle_ref - which is cause a call to the proxy object ie. a 2 callback from C->java - which is on jna an attach and a detach from the calling thread and create 2 new Thread java object - which is cause that the gc called all these objects. and there are many! eg in case of 32 pipelines and 25 fps video: 32 x 2 x 25 = 1600 object creation and gc in every sec!!! of course we can simple set the properties to true, but imho it's real big waste of time and resource most of the case. imho all elements all properties should have to be the most "natural" default values (where natural means less resource hungry). so my suggestion to set the default to true. ps. anyway it takes many days to us to find the reason since it was very difficult to find out the real reason which we not even assume.
We can't change this in 0.10 because it would break ABI. In 0.11 this is set to TRUE by default.