From 9054e4c8c4d0d1aa5d996458d2f142edac7833c8 Mon Sep 17 00:00:00 2001 From: Tomohito Esaki Date: Tue, 7 Jul 2015 19:06:05 +0900 Subject: [PATCH] screenshooter: correct output ordering of screencast recording when Y-flip is off 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 Reviewed-by: Giulio Camuffo --- src/screenshooter.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/screenshooter.c b/src/screenshooter.c index d54b47de..6e1af659 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++) {