Screen tearing with xvimagesink

Matt Hurne matt at thehurnes.com
Wed Oct 5 06:24:30 PDT 2011


On Tue, Oct 4, 2011 at 5:48 PM, Stefan Sauer <ensonic at hora-obscura.de> 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


More information about the gstreamer-devel mailing list