xpra icon
Bug tracker and wiki

Opened 7 years ago

Last modified 5 years ago

#410 closed enhancement

better sub-window encoding: detect regions and use sub video encoder — at Version 1

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: critical Milestone: 0.13
Component: core Version:
Keywords: Cc:

Description (last modified by Antoine Martin)

If you have a large window but only a fraction of that window changes we waste a lot resources.
We currently create a video encoder for the whole window and waste a fair bit of time capturing, csc-ing, encoding, (sending), decoding and displaying regions of the screen that have not changed at all (and we know they haven't)

We have the "small region" code, which deals with small-ish regions by sending them using another encoding (usually rgb or png/jpeg) but it has its limits: it does not use a video encoder and is limited in size.

We should keep track of the damage areas in more detail, including their location and size (easy). Then we can detect regions of the screen that update often (easy-ish) and create a sub video encoder just for those (harder).
This could even work when the region is moving, as long as its size stays the same.
This is negated somewhat by the fact that when we send the whole window (because of other updates), it will include this region - unless we purposedly blank it out before compression and ask the client to re-assemble the two before displaying the result (hard).

An even better solution to this would be #509 or #510, as this would give us the video area precisely everytime, even before it gets converted to RGB pixels.

Change History (3)

comment:1 Changed 6 years ago by Antoine Martin

Description: modified (diff)
Status: newassigned

Changed 6 years ago by Antoine Martin

allows clients to process video sub-regions

Changed 6 years ago by Antoine Martin

server side patch: detect and use video sub-regions

Note: See TracTickets for help on using tickets.