2017-10-15 12:11:59 |
Dmitry Shachnev |
description |
[Impact]
XShmGetImage() crops the image to the absolute region (x,y)-(x+w,y+h). For example, given a window with geometry 640x480+200+300 and a 640x480 image:
XShmGetImage(display, window, image, 0, 0, AllPlanes);
returns only the upper-left 440x180 of the window image, clearing the rest of the image to empty.
Upstream fix:
https://cgit.freedesktop.org/xorg/xserver/commit/?id=885636b7d42b3c7b151fc386d358184db004ce45
[Test Case]
- Use xwininfo to get xid for CSD window, for example, nautilus
- Use following command to take screenshot:
gst-launch-1.0 ximagesrc xid=0x6600007 num-buffers=1 ! videoconvert ! pngenc ! filesink location=out.png
- out.png should include full window screenshot
- if screenshot looks good without patch, then repeat steps moving window to different place on screen, or try to maximize and/or try with different CSD window.
- actually it is not required to test with CSD windows, bug is reproducible also with SSD windows.
[Regression Potential]
I don't know...
[Other Info]
Upstream bug:
https://bugs.freedesktop.org/show_bug.cgi?id=101730
GNOME Flashback bug:
https://bugzilla.gnome.org/show_bug.cgi?id=788556 |
[Impact]
XShmGetImage() crops the image to the absolute region (x,y)-(x+w,y+h). For example, given a window with geometry 640x480+200+300 and a 640x480 image:
XShmGetImage(display, window, image, 0, 0, AllPlanes);
returns only the upper-left 440x180 of the window image, clearing the rest of the image to empty.
Upstream fix:
https://cgit.freedesktop.org/xorg/xserver/commit/?id=885636b7d42b3c7b151fc386d358184db004ce45
[Test Case]
- Use xwininfo to get xid for CSD window, for example, nautilus
- Use following command to take screenshot:
gst-launch-1.0 ximagesrc xid=0x6600007 num-buffers=1 ! videoconvert ! pngenc ! filesink location=out.png
- out.png should include full window screenshot
- if screenshot looks good without patch, then repeat steps moving window to different place on screen, or try to maximize and/or try with different CSD window.
- actually it is not required to test with CSD windows, bug is reproducible also with SSD windows.
[Regression Potential]
The fix only changes the implementation of XShmGetImage function, so the regression potential is limited to that function. Using gst-launch like in test case above or gnome-screenshot in GNOME Flashback session is a good way to test that there are no regressions.
[Other Info]
Upstream bug:
https://bugs.freedesktop.org/show_bug.cgi?id=101730
GNOME Flashback bug:
https://bugzilla.gnome.org/show_bug.cgi?id=788556 |
|