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 <etom@igel.co.jp>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
dev
Tomohito Esaki 9 years ago committed by Bryce Harrington
parent a6714fa0fa
commit 9054e4c8c4
  1. 6
      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++) {

Loading…
Cancel
Save