Screen tearing with xvimagesink

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Screen tearing with xvimagesink

Matt Hurne
Our application is using GStreamer for video playback.  We are using a
playbin2 with an xvimagesink, and are using its support for
gstxoverlay to have it draw the video on a particular window.  This
has been mostly successful, with one problem: from time to time, we
see some screen tearing.  We do not see the tearing constantly, and we
do not always see it at the same point in a given video.  We have
tested playback with at least a dozen different videos, and tearing
has randomly occurred regardless of the video being played.  We are
running our application on a system with an NVIDIA GPU, and have the
latest stable proprietary driver installed (version 280.13).   We have
ensured that the "Sync to VBlank" option in the "X Server XVideo
Settings" section of the nvidia-settings GUI is enabled.  We have also
disabled Xorg's Composite extension.  We are not using a desktop
environment that requires compositing; in fact, we aren't using a
desktop environment at all.  Instead, we have X launch our application
directly via our xinitrc.

What might be causing this problem?  If you would like any additional
information about the environment, I will be glad to provide it.

Thanks,
Matt Hurne
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Screen tearing with xvimagesink

Stefan Sauer
On 09/30/2011 02:47 PM, Matt Hurne wrote:

> Our application is using GStreamer for video playback.  We are using a
> playbin2 with an xvimagesink, and are using its support for
> gstxoverlay to have it draw the video on a particular window.  This
> has been mostly successful, with one problem: from time to time, we
> see some screen tearing.  We do not see the tearing constantly, and we
> do not always see it at the same point in a given video.  We have
> tested playback with at least a dozen different videos, and tearing
> has randomly occurred regardless of the video being played.  We are
> running our application on a system with an NVIDIA GPU, and have the
> latest stable proprietary driver installed (version 280.13).   We have
> ensured that the "Sync to VBlank" option in the "X Server XVideo
> Settings" section of the nvidia-settings GUI is enabled.  We have also
> disabled Xorg's Composite extension.  We are not using a desktop
> environment that requires compositing; in fact, we aren't using a
> desktop environment at all.  Instead, we have X launch our application
> directly via our xinitrc.
Please file a bug as an enhancement request against gst-plugins-base
(xvimagesink). We should probably check for
XV_SYNC_TO_VBLANK atom and offer a boolean property to enable it if
possible.

Stefan


> What might be causing this problem?  If you would like any additional
> information about the environment, I will be glad to provide it.
>
> Thanks,
> Matt Hurne
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Screen tearing with xvimagesink

Matt Hurne
On Tue, Oct 4, 2011 at 5:48 PM, Stefan Sauer <[hidden email]> wrote:

> On 09/30/2011 02:47 PM, Matt Hurne wrote:
>> Our application is using GStreamer for video playback.  We are using a
>> playbin2 with an xvimagesink, and are using its support for
>> gstxoverlay to have it draw the video on a particular window.  This
>> has been mostly successful, with one problem: from time to time, we
>> see some screen tearing.  We do not see the tearing constantly, and we
>> do not always see it at the same point in a given video.  We have
>> tested playback with at least a dozen different videos, and tearing
>> has randomly occurred regardless of the video being played.  We are
>> running our application on a system with an NVIDIA GPU, and have the
>> latest stable proprietary driver installed (version 280.13).   We have
>> ensured that the "Sync to VBlank" option in the "X Server XVideo
>> Settings" section of the nvidia-settings GUI is enabled.  We have also
>> disabled Xorg's Composite extension.  We are not using a desktop
>> environment that requires compositing; in fact, we aren't using a
>> desktop environment at all.  Instead, we have X launch our application
>> directly via our xinitrc.
>
>
> Please file a bug as an enhancement request against gst-plugins-base
> (xvimagesink). We should probably check for
> XV_SYNC_TO_VBLANK atom and offer a boolean property to enable it if
> possible.


Thanks for your reply, Stefan.  It turns out that the xvimagesink is
*not* showing tearing after all.  We had a bug that was preventing us
from cleaning up each xvimagesink properly.  On our hardware, there
are 32 XVideo ports available on the adaptor.  Eventually all of the
ports ended up being grabbed since the xvimagesinks weren't getting
cleaned up.  When no XVideo ports were available the autovideosink
started giving us ximagesinks instead, and that's where we were seeing
the tearing.  We have fixed the bug and the problem is resolved!
Thanks again for your reply.

Matt
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel