Version 1 (modified by 4 years ago) (diff) | ,
---|
Picture Encodings Debugging
See encodings.
Initial Checks
The first thing to check is the codec availability and version.
On MS Windows, run the Encoding_Info.exe
utility, or the bug report tool.
On other platforms, run the xpra/codecs/loader.py
script, and for debugging video the xpra/codecs/video_helper.py
script. (both support a --verbose
option).
Encodings Actually Used
When selecting a non-video encoding explicitly, the encoding used for sending the pixels to the client will be the one which has been selected.
The only exception to this rule is when the number of pixels is so small that trying to compress them would be pointless, and they are then usually sent as plain rgb
.
With video encodings, things are more complicated: if there is a video region, the non-video areas will use other encodings. Even the video region (which may be the whole window) will get automatically refreshed with a lossless encoding when it stops refreshing rapidly enough to warrant the use of a video encoder.
Debug Encoding Used
To debug encoding selection:
- the actual encoding used is logged with
-d compress
in the form:make_data_packet: image=XShmImageWrapper(BGRX: 149, 2, 6, 13), damage data: (1, 149, 2, 6, 13, 'rgb24') compress: 0.9ms for 499x316 pixels using mmap with ratio 0.0% ( 615KB to 0KB), delta=-1, client_options={'rgb_format': 'BGRX'}
- the current encoding set is best seen with:
xpra info | grep encoding=
- to see statistics about which encodings are actually used:
xpra info | egrep "last_used|total_frames|total_pixels"
- video region detection can be seen with
xpra info | grep region
, and its debug logging can be enabled with-d regiondetect
Debug Video Encoder Selection
Xpra supports multiple video encoders and multiple CSC modules. The exact compression pipeline used will vary and it may get re-evaluated up to 1 time per second. Each encoder and CSC option will be scored, taking into account the speed and quality requirements as well as the current network and CPU / GPU conditions. To show the details of those calculations, use the "score" debug flag:
xpra start -d score
Debug Auto-Refresh
When screen updates are sent using a lossless encoding (usually for performance reasons), the system will keep track of those regions and send a lossless auto-refresh packet later. To debug the auto-refresh logic, use the "-d refresh" logging option.
A similar mechanism applies to video regions, which uses the "-d regionrefresh" flag.