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