https://bugs.freedesktop.org/show_bug.cgi?id=103063

--- Comment #2 from Daniel Stone <[email protected]> ---
First, it would be interesting to validate how GStreamer is rendering the
buffer. It should be laid out, in order:
Y plane: offset == 0, stride == (width * 1), i.e. 1bpp, size == (stride *
height), i.e. full height
U plane: offset == size[Y], stride == (width/2 * 1), i.e. 1bpp but half width,
size == (stride * height/2), i.e. half height
V plane: offset == offset[U] + size[U], stride == (width/2 * 1), size ==
(stride * height/2), i.e. half width/height

If GStreamer is rendering correctly, this comes in to Weston at
libweston/gl-renderer.c's gl_renderer_attach_shm(). In the YUV420 case (aka
GStreamer's I420), this sets up the textures as described above. It then
uploads the content in gl_renderer_flush_damage(), where it uploads according
to the parameters set in attach_shm.

It looks from a quick inspection of the code that this is done correctly (i.e.
dividing by hsub/vsub to halve the dimensions of the U/V planes), but it would
be good to validate the parameters passed to glTex(Sub)Image2D() for the
upload, after validating GStreamer's buffer layout.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
wayland-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-bugs

Reply via email to