Doing measurements

Thursday, April 19, 2018

In order to be able to show measurements for the smart streaming discussion, I need to rebase my "experimental" recorder branches on the current master, if only to get changes like the device name change (it was changed to org.spice-space.stream.0.

Unfortunately, after that rebase, I lost the MJPEG fallback (apparently still not on master in the server). On Linux, I only get a single window. On macOS, I get a second window, but it remains black.

I left the terminal running a little too long while the SPICE client was spitting tons of error messages because it was unable to read the MJPEG frames. Apparently, I had left the settings to "use whatever memory there is" and I ended up with a terminal eating 7.9Gb of memory! The terminal becomes quite sluggish under these conditions.

For whatever reason, the VNC Screen Sharing with Crazypad is broken again. I checked that the problem is not client-side, I can still connect to f25-turbo. No time to address this today.

All the Jenkins projects turned red. Will also need to investigate that.

While attempting the rebase, I noticed that there is a build incompatibility between the 'make-it-quick' and 'build' makefiles because of the "namespace" changes (the build internal target was renamed to .build). So I temporarily restored the recorder branch to the old build makefile, while preserving the other changes.

Measurements

Finally managed to get the recorder graphs for all the components but the server back online. And it's practically all with the "standard" SPICE build system, not make-it-quick too. For some components, notably the streaming agent, it was practically a manual reconstruction from earlier branches.

Available tweaks on the encoder side include: profile, dwqp (quality parameter), rate control mode (set to VBR by default), average and max bitrate, gop_length (group of pictures, i.e. interval between full frames), and frame_rate. All parameters seem to respond quite well to manual adjustments.