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>
This commit is contained in:
committed by
Bryce Harrington
parent
a6714fa0fa
commit
9054e4c8c4
+3
-3
@@ -417,14 +417,14 @@ weston_recorder_frame_notify(struct wl_listener *listener, void *data)
|
|||||||
compositor->read_format, recorder->rect,
|
compositor->read_format, recorder->rect,
|
||||||
r[i].x1, y_orig, width, height);
|
r[i].x1, y_orig, width, height);
|
||||||
|
|
||||||
s = recorder->rect;
|
|
||||||
p = outbuf;
|
p = outbuf;
|
||||||
run = prev = 0; /* quiet gcc */
|
run = prev = 0; /* quiet gcc */
|
||||||
for (j = 0; j < height; j++) {
|
for (j = 0; j < height; j++) {
|
||||||
if (do_yflip)
|
if (do_yflip)
|
||||||
y_orig = r[i].y2 - j - 1;
|
s = recorder->rect + width * j;
|
||||||
else
|
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;
|
d = recorder->frame + stride * y_orig + r[i].x1;
|
||||||
|
|
||||||
for (k = 0; k < width; k++) {
|
for (k = 0; k < width; k++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user