Hello Damien, first of all sorry about having caused some uneccessary work by not respecting the coding convetions, I think I got confused between varios projects.. Yes, you are right, Xlib calls are not threadsafe and thus have to be protected by XLockDisplay and XUnlockdisplay in a MT application. I did not notice that until about a week ago because all applications that I was looking at to get some XVideo knowledge are singlethreaded - and decent documentation about XVideo is very sparse... However I have located a possible issue: in case of using Xlib calls in an MT app, a XInitThreads() has to be executed before the first Xlib call, i.e. in this case before gtk_init(). In case the respective Xlib does not support MT XInitThreads return 0 and in this case I simply do an exit(1), however to be 100% correct this should just be used as an indication to directly fall back to gdk output - however I have no idea how likely that is and how to pass on this information to videooutput_ekiga... I have attached a patch containing the difference between the last patch I sent you (please check that you have been using xvideo3.patch, in case you are based on one of the earlier patch I can make you another diff). In this patch I tried to filter out the changes in the corresponding files due to the update of the original ekiga SVN. This patch fixes the following issues: - Xlib calls should be threadsafe now - fixed HAS_XV warning - fixed compiler warings - FS menu entry now depends on SDL, XV and XV fallback - 0x0 frame size fix if remote image was not available - solves issue of flickering PiP - PiP in window mode similar to PiP in encrusted mode - solves moving windows when going to FS and returning - additional XSync possibly against a third black XV window in the background Concerning the rework on GDK, please tell me if I can be of any help - in my opinion the following functions should be in videooutput_gdk.cpp instead of main.cpp (perhaps we can kick out all the ifdef HAS_SDL and leave only the if defined HAS_XV || defined HAS_SDL): void gm_main_window_update_video (GtkWidget *main_window,... gboolean gm_mw_init_fullscreen_video_window (gpointer data) gboolean gm_mw_poll_fullscreen_video_window (GtkWidget *main_window) gboolean gm_mw_destroy_fullscreen_video_window (gpointer data) In case with the reworked xv support you are still getting crashes I would like to have a look at a backtrace if possible... Thanks in advance, Matthias ___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
Attachment:
xvp3deltato27.patch.gz
Description: 2285838136-xvp3deltato27.patch.gz