Looking for TestBot help
Francois Gouget
fgouget at free.fr
Mon Dec 21 10:40:22 CST 2020
On Mon, 21 Dec 2020, Zhiyi Zhang wrote:
[...]
> > * Write or find a Windows tool to automatically take a screenshot every
> > few seconds and deduplicate identical screenshots. The requirements
> > are:
> I can help out with this one. I had been debugging some screenshot problems on
> Wine and already have a few code snippets to do screenshots and save them.
That's great.
> For this tool, I'm thinking doing it generally the following way:
> 1. Capture the whole virtual screen and save it in a png in memory.
> 2. Compare the png in 1, if it's not equal to the previous screenshot,
> save it to disk in a folder.
Yes, that sounds good.
[...]
> I wonder if it would be better if we do video capture instead? If we
> don't plan on keeping the video forever, I think a 2 mins video
> shouldn't be too large. A few megabytes I think, depending on the
> video format.
Video would obviously be nice but the VMs typically don't have access to
a graphics card to offload the video compression. So I worry that the
CPU usage would be too high and/or interfere with the tests. Also
compression would have to happen in real time because we don't want the
VM to be stuck compressing the video for 5 minutes after the test is
done.
That pretty much means MJPEG [1] but then you either get large files or
bad quality. Maybe it could work if we put a frontend detecting
duplicate frames but then I don't know how we could preserve the frame
interval in the MJPEG file [2].
Disk usage could also be an issue though a video encoder should allow us
to solve that by lowering the bitrate, assuming we can still get a
reasonable quality. Bandwidth usage may be more of an issue, both in
terms of billing, and in terms of transfer time (from the VM hosts to
the offsite TestBot server).
But maybe I'm overestimating the challenges of video encoding.
Currently my plan would be to do tests and then set the screenshot
interval between 1 and 10 seconds based on the results.
[1] Some internet forums suggest huffyuv or lagarith but neither
provides interframe compression which I think would be very
beneficial in our case (even if it's very basic like doing a simple
diff). The other issue as soon as one strays away from the
'mainstream encoders' is browser support.
[2] It seems like variable rate 'mjpeg' should be possible with a
'modern container' like mkv and mp4 (the latter being probably more
compatible with browsers).
--
Francois Gouget <fgouget at free.fr> http://fgouget.free.fr/
Any sufficiently advanced bug is indistinguishable from a feature.
-- from some indian guy
More information about the wine-devel
mailing list