User:Foggyhlw

The threads_init function initializes the the use of Python threading in the gobject module. This function is different than the gtk.gdk.threads_init function as that function also initializes the gdk threads.

Gtk is not thread safe, it is merely "thread aware" (and essentially "thread incapable" in Windows). Only one thread can access a Gtk object at any time.

In your main program, you first need to call gtk.gdk.threads_init before you call any other gtk functions. Then, in your thread, any time you want to access any gtk objects, you must first call gtk.gdk.threads_enter and then after you access them, call gtk.gdk.threads_leave.

When working with multiple streams in gstreamer, use the following rules of thumb: Always add a queue before any sink element when the pipeline contains multiple sinks Always add a queue before each input to a muxer (an element which combines several input streams into one output stream)