The screenshooter encoder wrote the output from either top-to-bottom or
bottom-to-top, depending on the Y-flip setting, but wcap-decode only
decodes from bottom-to-top. Make the encoder always output from
bottom-to-top, to match the decoder, and flip the input (source)
according to the Y-flip setting.

Signed-off-by: Tomohito Esaki <e...@igel.co.jp>
---
 src/screenshooter.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/screenshooter.c b/src/screenshooter.c
index b7b8dce..6dae12f 100644
--- a/src/screenshooter.c
+++ b/src/screenshooter.c
@@ -417,14 +417,14 @@ weston_recorder_frame_notify(struct wl_listener 
*listener, void *data)
                                compositor->read_format, recorder->rect,
                                r[i].x1, y_orig, width, height);
 
-               s = recorder->rect;
                p = outbuf;
                run = prev = 0; /* quiet gcc */
                for (j = 0; j < height; j++) {
                        if (do_yflip)
-                               y_orig = r[i].y2 - j - 1;
+                               s = recorder->rect + width * j;
                        else
-                               y_orig = r[i].y1 + j;
+                               s = recorder->rect + width * (height - j - 1);
+                       y_orig = r[i].y2 - j - 1;
                        d = recorder->frame + stride * y_orig + r[i].x1;
 
                        for (k = 0; k < width; k++) {
-- 
1.8.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to