Under Linux.
The system needs to be initialized by calling XInitThreads before opeing any window (see XineCanvas.callXInitThreads() )
This is needed because xine uses the XLockDisplay and XUnlockDisplay X primitives. These are uneffective if XInitThreads hasn't been called.
Unfortunately, Java doesn't initialize the X threading system. In so doing, XLockDisplay and XUnlockDisplay do nothing.
Proposed solution:
Use the XINE_VISUAL_TYPE_X11_2 rendering system wich allows to override the default locking primitives (XLockDisplay and XUnlockDisplay). They should be replaced with calls to AWT_Lock and AWT_Unlock.
Beware that "the display will not actually be unlocked until XUnlockDisplay() has been called the same number of times as XLockDisplay()." (see http://tronche.com/gui/x/xlib/display/XLockDisplay.html\)