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