From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=55987 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PsiLF-0004MS-I6 for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:03:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PsiLE-0002Zj-6B for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:03:17 -0500 Received: from moutng.kundenserver.de ([212.227.17.8]:53574) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PsiLD-0002Zf-MC for qemu-devel@nongnu.org; Thu, 24 Feb 2011 16:03:16 -0500 Message-ID: <4D66C78F.6010101@mail.berlios.de> Date: Thu, 24 Feb 2011 22:03:11 +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> In-Reply-To: <1296806768-27787-1-git-send-email-corentincj@iksaif.net> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit 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 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.