[PATCH] screenshooter: correct output ordering of screencast recording when Y-flip is off

Tomohito Esaki etom at igel.co.jp
Tue Jul 7 03:06:05 PDT 2015


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 <etom at 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



More information about the wayland-devel mailing list