You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libtdevnc/libvncclient
David Verbeiren d891478ec9 LibVNCClient: Add H.264 encoding for framebuffer updates
This patch implements support in LibVNCClient for framebuffer updates
encoded as H.264 frames. Hardware accelerated decoding is performed
using VA API.

This is experimental support to let the community explore the possibilities
offered by the potential bandwidth and latency reductions that H.264 encoding
allows. This may be particularly useful for use cases such as online gaming,
hosted desktops, hosted set top boxes...

This patch only provides the client side support and is meant to be used
with corresponding server-side support, as provided by an upcoming patch for
qemu ui/vnc module (to view the display of a virtual machine executing under
QEMU).

With this H.264-based encoding, if multiple framebuffer update messages
are generated for a single server framebuffer modification, the H.264
frame data is sent only with the first update message. Subsequent update
framebuffer messages will contain only the coordinates and size of the
additional updated regions.

Instructions/Requirements:
* The patch should be applied on top of the previous patch I submitted with
minor enhancements to the gtkvncviewer application:
http://sourceforge.net/mailarchive/message.php?msg_id=30323804
* Currently only works with libva 1.0: use branch "v1.0-branch" for libva and
intel-driver. Those can be built as follows:
   cd libva
   git checkout v1.0-branch
   ./autogen.sh
   make
   sudo make install
   cd ..
   git clone git://anongit.freedesktop.org/vaapi/intel-driver
   cd intel-driver
   git checkout v1.0-branch
   ./autogen.sh
   make
   sudo make install

Signed-off-by: David Verbeiren <david.verbeiren@intel.com>
13 years ago
..
Makefile.am LibVNCClient: Add H.264 encoding for framebuffer updates 13 years ago
corre.c API change: Bool, KeySym, Pixel get prefix "rfb"; constants in rfbconfig.h get prefix "LIBVNCSERVER_" 23 years ago
cursor.c libvncclient: add GotCursorShape() and GotCopyRect(); x11vnc dep on libvncclient 19 years ago
h264.c LibVNCClient: Add H.264 encoding for framebuffer updates 13 years ago
hextile.c signed vs unsigned warnings eliminated (gcc 4.0.1) 20 years ago
listen.c IPv6 support for LibVNCServer, part four: add copyright notices to files with non-trivial changes. 14 years ago
rfbproto.c LibVNCClient: Add H.264 encoding for framebuffer updates 13 years ago
rre.c API change: Bool, KeySym, Pixel get prefix "rfb"; constants in rfbconfig.h get prefix "LIBVNCSERVER_" 23 years ago
sockets.c Tune the definitions needed when building with -ansi. 14 years ago
tight.c signed vs unsigned warnings eliminated (gcc 4.0.1) 20 years ago
tls.h Add anonymous TLS support in libvncclient 16 years ago
tls_gnutls.c LibVNCClient: Remove all those WITH_CLIENT_TLS #ifdefs and move GnuTLS specific functionality into tls_gnutls.c. 14 years ago
tls_none.c LibVNCClient: Fix build with no SSL/TLS library available. 14 years ago
tls_openssl.c Fix in milliseconds to struct timeval conversion 14 years ago
ultra.c Fix regression in Ultra encoding introduced by commit fe1ca16e9b. 15 years ago
vncviewer.c LibVNCClient: Add H.264 encoding for framebuffer updates 13 years ago
zlib.c signed vs unsigned warnings eliminated (gcc 4.0.1) 20 years ago
zrle.c Fix (most) MinGW32 compiler warnings. 15 years ago