bd023f95 | 07-Jul-2010 |
Corentin Chary <corentincj@iksaif.net> |
vnc: threaded VNC server
Implement a threaded VNC server using the producer-consumer model. The main thread will push encoding jobs (a list a rectangles to update) in a queue, and the VNC worker thr
vnc: threaded VNC server
Implement a threaded VNC server using the producer-consumer model. The main thread will push encoding jobs (a list a rectangles to update) in a queue, and the VNC worker thread will consume that queue and send framebuffer updates to the output buffer.
The threaded VNC server can be enabled with ./configure --enable-vnc-thread.
If you don't want it, just use ./configure --disable-vnc-thread and a syncrhonous queue of job will be used (which as exactly the same behavior as the old queue). If you disable the VNC thread, all thread related code will not be built and there will be no overhead.
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
5136a052 | 07-Jul-2010 |
Corentin Chary <corentincj@iksaif.net> |
vnc: tight: stop using qdict for palette stuff
Profiling with callgrind seems to show that a lot of time is spent in the palette code (mostly due to memory allocation and qdict to int conversion).
vnc: tight: stop using qdict for palette stuff
Profiling with callgrind seems to show that a lot of time is spent in the palette code (mostly due to memory allocation and qdict to int conversion).
This patch adds a VncPalette implementation. The palette is stored in a hash table, like qdict, but which does way less memory allocations, and doesn't suffer from the QObject overhead.
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
3941bf6f | 07-Jul-2010 |
Corentin Chary <corentincj@iksaif.net> |
vnc: tight: specific zlib level and filters for each compression level
Disable png filters for lower compression levels. This should lower the CPU consumption and reduce encoding time.
This isn't i
vnc: tight: specific zlib level and filters for each compression level
Disable png filters for lower compression levels. This should lower the CPU consumption and reduce encoding time.
This isn't in tight_conf because: * tight_conf structure must not change, because it's shared with other tight implementations (libvncserver, etc..). * it'd exceed the 80 col limit. * PNG_ macros are only defined if CONFIG_VNC_PNG is defined
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
efe556ad | 07-Jul-2010 |
Corentin Chary <corentincj@iksaif.net> |
vnc: tight add PNG encoding
Introduce a new encoding: VNC_ENCODING_TIGHT_PNG [1] (-269) with a new tight filter VNC_TIGHT_PNG (0x0A). When the client tells it supports the Tight PNG encoding, the se
vnc: tight add PNG encoding
Introduce a new encoding: VNC_ENCODING_TIGHT_PNG [1] (-269) with a new tight filter VNC_TIGHT_PNG (0x0A). When the client tells it supports the Tight PNG encoding, the server will use tight, but will always send encoding pixels using PNG instead of zlib. If the client also told it support JPEG, then the server can send JPEG, because PNG will only be used in the cases zlib was used in normal tight.
This encoding was introduced to speed up HTML5 based VNC clients like noVNC [2], but can also be used on devices like iPhone where PNG can be rendered in hardware.
[1] http://wiki.qemu.org/VNC_Tight_PNG [2] http://github.com/kanaka/noVNC/
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
5d8efe39 | 07-Jul-2010 |
Corentin Chary <corentincj@iksaif.net> |
vnc: tight: don't forget do at the last color
While using indexed colors, the last color was never added to the palette. Triggered with ubuntu livecd.
Signed-off-by: Corentin Chary <corentincj@iksa
vnc: tight: don't forget do at the last color
While using indexed colors, the last color was never added to the palette. Triggered with ubuntu livecd.
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|