GNOME Bugzilla – Bug 312439
XVideo output doesn't work on remote displays (probably requires XShm)
Last modified: 2006-03-10 16:42:48 UTC
Distribution/Version: Gentoo Base System version 1.4.16 run gstreamer-config on a remote display, choose "Xwindows (X11/XShm/Xv)" as video output and click test button. MPlayer for example works with XV on a remote display.
Can you tell me what happens ? :)) I can't replicate.. If i try to use XVideo remotly on my ibook mplayer or gstreamer just hangs :( But maybe it's a macosx problem.. and i don't have two desktop to test right now! I've looked at the sources and xvimagesink should already work w/o xshm. If it segfaults -> can you please attach here a backtrace? http://live.gnome.org/GettingTraces Can you also attach the output of: $ GST_DEBUG=xvimagesink:5 gst-launch-0.8 videotestsrc ! video/x-raw-yuv,framerate=1.0,width=256,height=256 ! xvimagesink thanks!
Seems to work for me: sceptic [tim] - ~ ---> ssh -X tim@foobar Password: Linux foobar 2.6.12-1-686 #1 Tue Sep 27 12:52:50 JST 2005 i686 GNU/Linux Last login: Fri Oct 7 16:32:48 2005 from sceptic tim@foobar:~$ echo $DISPLAY localhost:10.0 tim@foobar:~$ gst-launch-0.8 videotestsrc ! xvimagesink RUNNING pipeline ... (displays perfectly fine test picture) X connection to localhost:10.0 broken (explicit kill or server shutdown). tim@foobar:~$ Last message comes from ALT-F4'ing the window. This is with GStreamer core + plugins 0.8.10 (debian sid packages) Totem-gstreamer works fine as well. Cheers -Tim
I tried this and got weird results. From my box to one machine it segfaults. To another it gives an X error. From my laptop it gives an X error to both other machines. From Thomas' laptop it works to one machine but not to another. The X error is about Shm. So, dunno. Adding Julien to the CC since he is our videosink hero :)
I suspect that this is actually about ssh versions, but I could be completely off base. I remember something about ssh's tunneling reporting that it supports XShm (because the server it's forwarding for does) when it actually doesn't, and causing crashes in our x[v]imagesink which wasn't expecting it to be lying.
From a bit of researching, it appears that MPlayer has some hacky logic that turns off XShm support if the display number in the name is >= 10, which turns it off when ssh is used because ssh -X sets DISPLAY='localhost:10' (or higher)
Turns out this was just a bug in the way we were testing that XShm calls succeed. Fixed in CVS: * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls): Fix up the XShm call testing so that we catch errors, and don't cause new ones by attempting to detach from a segment we failed to attach to. Fixes #312439.