[Spice-devel] [RFC PATCH spice-server v3 00/20] Allows guests to send display data as video streams
Frediano Ziglio
fziglio at redhat.com
Wed Aug 23 09:14:18 UTC 2017
This patcheset add a device to allow guest machines with assigned
hardware devices to send encoded video and other informations that
will be handled as a normal display by Spice.
New GPU devices are capable to capture and encode video in an
efficient way. As the GPU in this case is assigned to the guest
and not the host is easier if the guest do the hard job.
This patchset add a new "com.redhat.stream.0" device visible to
the guests. This device will be used by the guest to send streaming
data. The host will forward the data to the client.
To do so a new StreamChannel class, implementing the protocol
DisplayChannel is implemented.
Changes since git publish v2:
- define PRIMARY_SURFACE_ID mnemonic to make code more readable;
- renamed ask_new_stream to request_new_stream;
- miscellaneous comment updates;
- use NUM_STREAMS instead of fixed 40 value;
- pass time to StreamChannel sending data;
- add finalize method to free memory;
- add support for cursor move.
Frediano Ziglio (20):
char-device: Allows to handle port events from any char device
stream-device: Add device to handle streaming
stream-device: Start parsing new protocol from guest
stream-channel: Write a really base channel to implement the streaming
stream-channel: Start implementing DisplayChannel properly
stream-device: Create channel for stream device
stream-channel: Implements initialization
stream-device: Handle streaming data from device to channel
stream-channel: Allows not fixed size
stream-channel: Allows to register callback to get new stream request
stream-channel: Support client connection/disconnection
stream-channel: Do not show an empty blank screen on start
char-device: Do not stop and clear interface on reset
stream-device: Start supporting resetting device when close/open on
guest
stream-device: Limit sending queue from guest to server
stream-channel: Activate streaming report from client
WIP cursor-channel: Allow to not handle a QXL device
WIP stream-device: handle cursor from device
WIP: Try to reduce delay
stream-device: Implement mouse movement
server/Makefile.am | 3 +
server/char-device.c | 25 ++-
server/char-device.h | 4 +
server/cursor-channel.c | 6 +-
server/reds.c | 8 +-
server/spicevmc.c | 10 +-
server/stream-channel.c | 570 ++++++++++++++++++++++++++++++++++++++++++++++++
server/stream-channel.h | 82 +++++++
server/stream-device.c | 515 +++++++++++++++++++++++++++++++++++++++++++
9 files changed, 1211 insertions(+), 12 deletions(-)
create mode 100644 server/stream-channel.c
create mode 100644 server/stream-channel.h
create mode 100644 server/stream-device.c
--
2.13.5
More information about the Spice-devel
mailing list