I'm trying to slowly revive the java client (https://github.com/jksiezni/xpra-client).
I'm focusing on PNG encoding which seems to work fairly well.
However, I'm seeing RGB draw packets coming through even though PNG is the only encoding listed in the clients hello request. I can force it server side by setting the env variable XPRA_HARDCODED_ENCODING but is there anyway to do this from the client? I would have expected the server to strictly follow the encodings listed by the client?
I can also get some server side logging if needed.
Because of the PNG header, small regions end up being bigger when compressed with PNG than they would as rgb+lz4. The server always assumes that rgb encoding is always available. When it doesn't make sense to use png, it will automatically switch to rgb.
PNG is also a bad idea because it is a CPU pig, and nowhere near as efficient as WEBP or JPEG.
You should really consider using something better.
If you want to see what is being used and for what region, you can enable -d compress
on the server, or paint boxes on the client (#760).
Thanks, yes I guessed as much was just looking for a quick work around.
I'm chasing a lossless setup, so I guess I'll look into getting RGB and LZ4 working, thanks for the pointers.
I'm chasing a lossless setup
--quality=100
is all you need.
The server will choose between PNG, RGB and WEBP lossless as appropriate.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2238