GNOME Bugzilla – Bug 584877
glimage sink will not allow you to switch xoverlays while the stream is playing.
Last modified: 2009-08-10 23:22:26 UTC
After starting a video pipeline with glimagesink as the video sink I set the xoverlay when I get the prepare-xwindow-id to my current window and everything works fine. But then I want to transfer the video to a new window. When I call set gst_x_overlay_set_window_id() again with the new window handle the video stops playing on the old window but never shows up on the new window. This works on xvimagesink, ximagesink and directdrawsink. I have tried this on both Windows and Linux (Ubuntu 9.04).
commit 6ffa0569a42095fb78300f9f3afed122c37e7775 Author: Julien Isorce <julien.isorce@gmail.com> Date: Sat Jun 6 14:34:57 2009 +0200 can switch xoverlays while playing Fixes bug #584877 Before this commit calling "gst_x_overlay_set_xwindow_id" more than one time, had no effect. It mainly affects the glimagesink implementation. But on win32 (and CE), some stuff has to be done to release the old parent. And add a switchxoverlay example where the user can click on left/right part of the main window to switch the xoverlay.
Well, not sure it's really fixed. The switchxoverlay example doesn't work here: - if I click in the left area video is shown there - if I click in the right area no video is show at all
On linux, I have the same behaviour, except the "at all", I mean the video is drawn outside the main window (and without any border) Works fine on win32. Maybe something is wrong in the switchxoverlay example. I'll try make an other one example with 2 distinct windows. (instead of one splited in 2 areas).
Ok on X11 too now: commit 349d38484d661d7e704c3a0f0c65e2d209756952 Author: Julien Isorce <julien.isorce@gmail.com> Date: Sun Jun 7 20:19:03 2009 +0200 fix window position when using xoverlay x, y are the coordinates of the position inside the new parent window. Fixes #584877