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

Giulio Camuffo giuliocamuffo at gmail.com
Sun Oct 4 07:39:43 PDT 2015


2015-07-07 13:06 GMT+03:00 Tomohito Esaki <etom at igel.co.jp>:
> 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.

I tried removing the WESTON_CAP_CAPTURE_YFLIP cap in the gl-renderer
and manually flipping the image after the glReadPixels and indeed the
output of wcap-decode was inverted. This patch fixes the issue and
looks good to me.

Reviewed-by: Giulio Camuffo <giuliocamuffo at gmail.com>

>
> 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
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list