[Ekiga-devel-list] XV Patch

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,

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

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]