i have solved with the g_idle_add solution: basically i launch a thread that makes all the image process and then realizes the image to the drawing area. Now it should be a safe procedure. what about the gtk_widget_queue_draw method? is it a more correct way to do such things? and how should i get the lock over a thread? Thanks in advace -- M@ On Fri, Mar 20, 2009 at 4:06 PM, Paul Davis <paul@xxxxxxxxxxxxxxxxxxxxx> wrote: > > > On Thu, Mar 19, 2009 at 12:24 PM, Matteo Landi <matteo.landi@xxxxxxxx> > wrote: >> >> Hi all, >> i'm trying to develop a basic image processing that sources the >> frames from the webcam. >> Basically the gtk application is composed of three windows: >> 1 - drawing area displaying modified stream >> 2 - drawing area displaying the webcam stream (i used an xoverlay >> for the link between the gstreamer videosink and the drawing area) >> 3 - box containing settings for the webcam stream >> >> I have a gst object that everytime it has a new frame, launch a callback >> function. Inside this method i make the image process, and save the >> result inside a gdk_pixbuff. Once the process is terminated, inside the >> function, i call gdk_draw_pixbuf over the first drawing area. Is it >> correct to >> draw over drawing areas from gstreamer callbacks? > > no. you really can't call anything except g_idle_add() without taking the > gtk thread lock. if you take the lock, you can call gtk_widget_queue_draw() > and then the right things will happen. > > _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list