Hi, I rebased the series against current master, it contains:
- Adaptive Tight Encoding: send lossy or lossless updates depending on the update frequency of the screen region. If a lossy update is forced, then it will be refreshed with a lossless update as soon as the update frequency goes back to 0. - ZRLE/ZYWRLE Encodings: ZYWRLE use less bandwidth than tight, but the result is also probably more lossy. I wanted to make ZRLE/ZYWRLE adaptive, but this is not possible because most of the vnc clients can't switch between ZRLE and ZYWRLE. But a possible solution is to use another encoding for lossless updates, like zlib or tight. - Bitmap module: create bitmap.h and bitops.h, and remove duplicate code from vnc.c It was my last series from GSoC 2010 context, if necessary I can send different series for adaptive vnc, zrle and bitmap stuff. Thanks, Corentin Chary (15): vnc: don't set the quality if lossy encoding are disabled vnc: add a way to get the update frequency for a given region vnc: refresh lossy rect after a given timeout vnc: tight: use the update frequency to choose between lossy and lossless vnc: palette: use a pool to reduce memory allocations vnc: palette: add palette_init calls vnc: palette: and fill and color calls. vnc: Add ZRLE and ZYWRLE encodings. vnc: fix uint8_t comparisons with negative values vnc: fix lossy rect refreshing bitmap: add a generic bitmap and bitops library vnc: use the new generic bitmap functions vnc: don't try to send bigger updates that client height vnc: tight: tweak adaptive tight settings vnc: add a non-adaptive option Makefile.objs | 2 + bitmap.c | 255 ++++++++++++++++ bitmap.h | 222 ++++++++++++++ bitops.c | 142 +++++++++ bitops.h | 272 ++++++++++++++++++ osdep.h | 4 + qemu-options.hx | 9 + ui/vnc-enc-tight.c | 75 ++++- ui/vnc-enc-zrle-template.c | 275 ++++++++++++++++++ ui/vnc-enc-zrle.c | 390 +++++++++++++++++++++++++ ui/vnc-enc-zrle.h | 40 +++ ui/vnc-enc-zywrle-template.c | 170 +++++++++++ ui/vnc-enc-zywrle.h | 652 ++++++++++++++++++++++++++++++++++++++++++ ui/vnc-jobs-async.c | 4 + ui/vnc-palette.c | 59 +++-- ui/vnc-palette.h | 7 +- ui/vnc.c | 283 ++++++++++++++----- ui/vnc.h | 57 ++++- 18 files changed, 2810 insertions(+), 108 deletions(-) create mode 100644 bitmap.c create mode 100644 bitmap.h create mode 100644 bitops.c create mode 100644 bitops.h create mode 100644 ui/vnc-enc-zrle-template.c create mode 100644 ui/vnc-enc-zrle.c create mode 100644 ui/vnc-enc-zrle.h create mode 100644 ui/vnc-enc-zywrle-template.c create mode 100644 ui/vnc-enc-zywrle.h -- 1.7.3.2