XOverlay lost after setting playbin state to Null

Ralph ralph.gucwa at racelogic.co.uk
Fri Dec 23 01:17:17 PST 2011


Ralph wrote
> 
> 
> dhoyt wrote
>> 
>> Sounds like an issue either with the direct 3d driver for your card or
>> your application. How are you doing "full screen"? I don't recommend
>> using a direct x style full screen -- instead create a normal window that
>> fills the screen and use xoverlay to place the video in the appropriate
>> window. My app takes over every monitor attached to a system -- so that's
>> typically 2, 3, or 4 at a time w/ 4-5 videos running on each screen and
>> never had a problem. It's likely your app that's the issue. I can't rule
>> out a bug, but I can point to very similar scenarios where it's known to
>> be working...so it's more unlikely it's on the d3dvideosink end. However,
>> since it's working with other video sinks, it's definitely suspect. But,
>> directdrawsink uses an older technology and direct show, if my memory
>> serves me right, will fall back to direct draw if necessary.
>> 
> 
> I'm doing it as you say - I create a borderless window and make it full
> screen.  I've just discovered that if I display the window in Normal state
> and resize it to fill the entire screen, then there is no problem.  It is
> setting the window state to FullScreen that causes problems.  Fortunately
> there is a workaround, but it is interesting why FullScreen state has any
> influence on displaying video, xoverlay gets the same handle to the same
> window.
> 

I wrote it too fast.  I don't know how I did it, but d3dvideosink doesn't
work for Normal state windows stretched to cover the entire screen.  Maybe I
used dshowvideosink by mistake?  The behavior is very interesting:

My screen resolution is 1920x1200, I create a WPF Window and associate it
with the video sink using XOverlay:
        Gst.Interfaces.XOverlayAdapter overlayAdapter = new
Gst.Interfaces.XOverlayAdapter(videoSink.Handle);
        overlayAdapter.XwindowId = (ulong)window.Handle;
- When I display the window in FullScreen state, no video is displayed.  We
already know that.
- When I display the window in Normal state, but stretch it to cover the
entire screen, no video is displayed either.
- When I display the window in Normal state and change its height to 1148 or
less, the video is displayed correctly
Increasing window height to anything more than (screenHeight - 52) prevents
the video from being displayed.  The limitation applies to height only,
there are no problems using any width.


--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/XOverlay-lost-after-setting-playbin-state-to-NULL-or-READY-tp4115442p4227917.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list