Commit Graph

49 Commits (53cc1fa18a3b96d2c31a145d971017564fca39bb)

Author SHA1 Message Date
Christian Beier 9d4cb568b7 Be a bit clearer with the cursorshape documentation for libvncclient. 9 years ago
Christian Beier 4665af4950 Properly document HandleCursorShape and GotCursorShapeProc. 9 years ago
Daniel Cohen Gindi 901eba9f46 Generally adjusting headers for compiling on windows without the mixing of Winsock 1 and 2. 11 years ago
Christian Beier 38c181a2d5 Fix ABI compatibility issue. 12 years ago
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>
12 years ago
Christian Beier 77286f0831 LibVNCClient: Remove all those WITH_CLIENT_TLS #ifdefs and move GnuTLS specific functionality into tls_gnutls.c. 13 years ago
Christian Beier 75bfb1f5d3 IPv6 support for LibVNCServer, part three: make reverse connections IPv6-capable.
Besided making libvncserver reverseVNC IPv6-aware, this introduces some changes
on the client side as well to make clients listen on IPv6 sockets, too. Like
the server side, this also uses a separate-socket approach.
13 years ago
Luca Stauble fe2e2e4b59 Add an optional parameter to specify the ip address for reverse connections
For security reasons, it can be important to limit which IP addresses a
LibVNCClient-based client should listen for reverse connections. This
commit adds that option.

To preserve binary backwards-compatibility, the field was added to the end
of the rfbclient struct, and the function ListenAtTcpPort retains its
signature (but calls the new ListenAtTcpPortAndAddress).

[jes: shortened the commit subject, added a longer explanation in the
commit body and adjusted style]

Signed-off-by: Luca Stauble <gnekoz@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
13 years ago
Christian Beier 66b0603b5a Small changes to LibNVCClient doxygen documentation. 13 years ago
Christian Beier abf6fad894 Merge branch 'master' of https://github.com/watkipet/libvncserver 13 years ago
Peter Watkins b551e05edb Added comments. 14 years ago
Johannes Schindelin 9d0b80059a Hopefully fix the crash when updating from 0.9.7 or earlier
For backwards-compatibility reasons, we can only add struct members to the
end. That way, existing callers still can use newer libraries, as the
structs are always allocated by the library (and therefore guaranteed to
have the correct size) and still rely on the same position of the parts
the callers know about.

Reported by Luca Falavigna.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Christian Beier 705a5d46e6 Add doxygen documentation support.
Adds automagically generating libvncserver/libvncclient API
    documentation using doxygen. This gives a nice overview on both APIs,
    include dependencies and function call/caller dependencies.

    TODO: Modify all the explaining comments in the .c files for use with
          doxygen as well.

    This patch only changes comments, no functional changes at all!

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier e5523350a8 libvnc[server|client]: implement xvp VNC extension.
This implements the xvp VNC extension, which is described in the
community version of the RFB protocol:
http://tigervnc.sourceforge.net/cgi-bin/rfbproto
It is also mentioned in the official RFB protocol.
15 years ago
Christian Beier 0797e42a4a IP QoS support in libvncclient.
This enables setting the DSCP/Traffic Class field of IP/IPv6 packets
sent by a client. For example starting a client with -qosdscp 184
marks all outgoing traffic for expedited forwarding.

Implementation for Win32 is still a TODO, though. See
http://betelco.blogspot.com/2009/03/dscp-marking-under-windows-at.html
for an overview of the Win32 QoS API mess...
15 years ago
Vic Lee 68e7696a27 libvncclient: add ipv6 support
[jes: pulled the "host" declarations into the conditionally compiled
blocks where that variable is used. Also fixed non-IPv6 connections.]

Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
Vic Lee a2ad61755f Add UltraVNC Repeater support in libvncclient
[jes: adjusted coding style, made sure port is initialized correctly]

Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
Vic Lee b019572e73 Add support for viewers to select security types on demand
Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
Christian Beier 49cdfb4c1f libvncclient: better return value for non-forking listen.
The return value now better reflects what has happened:
1 on success (incoming connection on listen socket, we
accepted it successfully), -1 on error, 0 on timeout.

Also change the select calls to not check _all_ possible
file descriptors.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
Johannes Schindelin f49a292783 Merge branch 'VeNCrypt' 16 years ago
Vic Lee 29990f0090 Add MSLogon security type
Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
Christian Beier 0a4f1bada4 libvncclient: add a non-forking listen function.
Forking the whole process from deep within a library call does
not really work at all with apps that use multiple threads, i.e. every
reasonably modern GUI app. So, provide a non-forking listen function so
that the caller can decide if to fork, start a thread, etc.

This implementation adds a timeout parameter to be able to call the
listen function multiple times so that it's possible to do sth. else
in between, e.g. abort listening.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
Alexander Dorokhine 62ae6bb7be libvncclient: Add FinishedFrameBufferUpdate callback
When working on a program which searches the display for some image, one
does not want to search again without getting an FB update.  Add a
callback to make this possible.
16 years ago
Vic Lee 95ae56c831 Add VeNCrypt support in libvncclient
Signed-off-by: Vic Lee <llyzs@163.com>
16 years ago
Vic Lee 58a8df6ff2 Add anonymous TLS support in libvncclient
Signed-off-by: Vic Lee <llyzs@163.com>
16 years ago
llyzs 2cd48332e0 Export the functions SupportsClient2Server and SupportsServer2Client
These are useful functions for VNC clients, so let's export them for
everybody to use.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
Ben Klopfenstein d7c0b34b62 libvncclient: Unix sockets support by Ben Klopfenstein
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
dscho 8641c8e7bf Fix compilation in the absence of libjpeg
The JPEG library is not necessarily installed everywhere, and sometimes
it is outright undesirable to compile with JPEG support, e.g. when the
server is not very fast.  So fix the compilation for that case.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho 26b291bf25 rfbclient.h: use 'extern "C"' to make it convenient to include from C++ 18 years ago
dscho 14b290384a LibVNCClient: some users do not want to get whole-screen updates; introduce client->updateRect for that 18 years ago
runge 1f8da9bde3 libvncclient: add GotCursorShape() and GotCopyRect(); x11vnc dep on libvncclient 18 years ago
dscho 6cfd9afee9 make cut text handling using a hook 19 years ago
steven_carr ccdbe8f325 The great UltraVNC Compatibility Commit 19 years ago
steven_carr 5865f0c4b7 Client side support for PalmVNC/UltraVNC 'Server Side Scaling' 19 years ago
steven_carr afa9fae024 Ultra Encoding added. Tested against UltraVNC V1.01 19 years ago
dscho 7602f0e750 libvncclient: support changing of framebuffer size; make SDLvncviewer use it 19 years ago
dscho 1602b345f3 add KeyboardLedState extension 19 years ago
dscho 61204490ce plug memory leaks 19 years ago
runge 8eb18f6cd8 fix deadlock from rfbReleaseExtensionIterator(), fix no libz/libjpeg builds, disable tightvnc-filetransfer if no libpthread, add --without-pthread option, rm // comments, set NAME_MAX if not defined, x11vnc: throttle load if fb update requests not taking place. 20 years ago
dscho 194a76df11 add an extension mechanism for LibVNCClient, modify the client data handling
so that more than one data structure can be attached, and add an example
to speak the client part of the back channel.
20 years ago
dscho 669b4c8685 make zlib and tight handling thread safe (static -> rfbClient) 20 years ago
dscho b583cf5347 move read buffer to rfbClient structure (thread safety); make rfbClientLog
overrideable
21 years ago
dscho a6d341c01e more comments; support playing vncrec'orded files 21 years ago
dscho 2b8c2a5c3a add client_examples/, add SDLvncviewer, libvncclient API changes, suppress automake CFLAGS nagging 21 years ago
dscho ae5142bdbd add rfbclient.h to distribution; avoid C++ style comments 22 years ago
dscho eeb2061dfb API change: Bool, KeySym, Pixel get prefix "rfb"; constants in rfbconfig.h get prefix "LIBVNCSERVER_" 22 years ago
dscho 964aa1628f further valgrinding showed leaked mallocs 22 years ago
dscho 13b358fed1 fixed maxRectsPerUpdate with Tight encoding bug; some autoconfing; stderr should not be used in a library (use rfbLog instead) 22 years ago
dscho 0fc57f2054 first alpha version of libvncclient 22 years ago