xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Changes between Version 1 and Version 2 of WindowRefresh


Ignore:
Timestamp:
01/15/13 14:06:31 (8 years ago)
Author:
Antoine Martin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WindowRefresh

    v1 v2  
    33The key feature of xpra is the forwarding of individual window contents to the client.
    44[[BR]]
    5 The speed at which the server compresses and sends screen updates to the client depends on a number of factors.
     5The speed at which the server compresses and sends screen updates to the client depends on a number of factors. There are only a few things the system can tune at runtime:
     6* the "batch delay": this is the time that the server will wait for screen updates to accumulate before grabbing the next frame
     7* the video quality (for the x264 video encoder only)
     8* the video speed (for the x264 video encoder only)
    69
     10== Code Pointers ==
     11Since this is an area that receives constant tuning and improvements, the most reliable source of current information is the code itself:
     12* [/browser/trunk/src/xpra/server_source.py server_source.py]: this class is instantiated for each client connection. In particular:
     13  * {{{GlobalPerformanceStatistics}}}: collects various statistics about this client's connection speed, the various work queues, etc. The {{{get_factors}}} method returns a guesstimate of how the batch delay should be adjusted for the given parameters ("target latency" and "pixel count")
     14  * {{{calculate_delay_thread}}} which runs at most 4 times a second to tune the batch delay, both the global default one ({{{default_batch_config}}} which is a {{{DamageBatchConfig}}}) and the one specific to each window (see below for details)
     15* [/browser/trunk/src/xpra/window_source.py window_source.py]: this class is instantiated for each window and for each client, it deals with sending the window's pixels to the client. In particular:
     16  * {{{DamageBatchConfig}}}: the structure which encapsulates all the configuration and historical values related to a batch delay.
     17  * {{{WindowPerformanceStatistics}}}: per-window statistics: performance of the encoding/decoding, amount of frames and pixels in flight, etc. Again, the {{{get_factors}}} method rreturns a guesstimate of how the batch delay should ne agjusted for the given parameters ("pixel_count" and current "batch delay")
     18
     19[[BR]]
     20
     21Note also that many of these classes have a {{{add_stats}}} method which is used by {{{xpra info}}} to provide detailed statistics from the command line and is a good first step for debugging.
     22
     23
     24== Background on damage request processing ==
     25
     26
     27
     28
     29