[Spice-devel] GStreamer's zero-copy code is broken
Frediano Ziglio
fziglio at redhat.com
Fri Feb 24 13:38:32 UTC 2017
>
> The patch below breaks the zero-copy code in the GStreamer video
> encoder:
>
> commit c3d237075b994fe67edddd58f2b3164cb579e6f4
> Author: Frediano Ziglio <fziglio at redhat.com>
> Date: Mon Dec 12 17:22:50 2016 +0000
>
> gstreamer: Avoid memory copy if strides are different
>
> If bitmap stride and stream stride are different copy was used.
> Using GStreamer 1.0 you can avoid the copy setting correctly
> image offset and stride.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> Acked-by: Christophe Fergeau <cfergeau at redhat.com>
>
>
> The symptom is that each SpiceBitmap chunk gets incrementally shifted 8
> pixels to the right. See the attached screenshot. Interestingly the 8
> extra pixels don't seem to really be random but they don't seem to be
> identical either.
>
> Anyway, commenting out the gst_buffer_add_video_meta_full() line fixes
> it (in cases where there is no need for cropping) but of course is
> defeats the purpose of the patch.
>
> I did not see anything obviously wrong in the patch. The bug is
> unrelated to the codec: it happens with mjpeg, vp8 and h264. So to
> reproduce it simply make sure you're using GStreamer for video, grab
> big_buck_bunny_480p_h264.mov and play it with either mplayer or totem.
>
> Maybe it's a gstreamer bug? Here I'm using 1.10.2.
>
> --
> Francois Gouget <fgouget at codeweavers.com>
Manage to reproduce with my tests. just use the --split-lines options.
Seems I forgot why I added this option!
Frediano
More information about the Spice-devel
mailing list