From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=50072 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PsixZ-0006Oj-5v for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:42:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PsixX-00033R-13 for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:42:52 -0500 Received: from moutng.kundenserver.de ([212.227.17.10]:56778) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PsixW-00032V-Is for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:42:50 -0500 Message-ID: <4D66D0D5.6050405@mail.berlios.de> Date: Thu, 24 Feb 2011 22:42:45 +0100 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v3 00/16] vnc: adapative tight, zrle, zywrle, and bitmap module References: <1296806768-27787-1-git-send-email-corentincj@iksaif.net> <4D66C78F.6010101@mail.berlios.de> In-Reply-To: <4D66C78F.6010101@mail.berlios.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Corentin Chary Cc: Anthony Liguori , Alexander Graf , Qemu-development List , Corentin Chary , Andre Przywara Am 24.02.2011 22:03, schrieb Stefan Weil: > Am 04.02.2011 09:05, schrieb Corentin Chary: >> From: Corentin Chary >> >> Hi, >> >> Since v2: >> - Fixed some styles issues >> - Rebased to current master >> - Fixed a Makefile issue (using .c instead of .o) >> >> 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 (16): >> vnc: qemu can die if the client is disconnected while updating screen >> 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 | 256 ++++++++++++++++ >> 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 | 263 +++++++++++++++++ >> ui/vnc-enc-zrle.c | 366 +++++++++++++++++++++++ >> ui/vnc-enc-zrle.h | 40 +++ >> ui/vnc-enc-zywrle-template.c | 170 +++++++++++ >> ui/vnc-enc-zywrle.h | 659 ++++++++++++++++++++++++++++++++++++++++++ >> ui/vnc-jobs-async.c | 8 + >> ui/vnc-palette.c | 58 +++- >> ui/vnc-palette.h | 7 +- >> ui/vnc.c | 283 ++++++++++++++----- >> ui/vnc.h | 57 ++++- >> 18 files changed, 2786 insertions(+), 107 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 > > > Is there a special reason why you use __always_inline > instead of inline in bitops.h? > > This breaks compilation for mingw :-( > > mingw also fails at timersub() in vnc.c. > One more problem: ./bitops.h:192: warning: ‘old’ is used uninitialized in this function