stream-device: Define Quality Indicator messages

These messages are used to transmit streaming quality indicators from
the streaming device to SPICE Server.

The message is a variable-length, zero-terminated string.

A new capability is introduced (STREAM_CAP_QUALITY_INDICATOR) for
SPICE server and streaming agent capabilities negotiation.

Signed-off-by: Kevin Pouget <kpouget@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
This commit is contained in:
Kevin Pouget 2019-08-22 15:17:50 +02:00 committed by Frediano Ziglio
parent 8ee9c7822c
commit 96d7dd9eef

View File

@ -92,9 +92,13 @@ typedef enum StreamMsgType {
STREAM_TYPE_CURSOR_MOVE,
/* the graphics device display information message (device address and display id) */
STREAM_TYPE_DEVICE_DISPLAY_INFO,
/* video encoding quality indicator message */
STREAM_TYPE_QUALITY_INDICATOR,
} StreamMsgType;
typedef enum StreamCapabilities {
/* handling of STREAM_TYPE_QUALITY_INDICATOR messages */
STREAM_CAP_QUALITY_INDICATOR,
STREAM_CAP_END // this must be the last
} StreamCapabilities;
@ -171,6 +175,23 @@ typedef struct StreamMsgDeviceDisplayInfo {
uint8_t device_address[0]; // a zero-terminated string
} StreamMsgDeviceDisplayInfo;
/* This message contains a quality indicator string, generated by the
* streaming agent. It is indended to be used by a module running of
* the server to ajust the streaming quality.
*
* The format of the string message is not specificied because
* module-specific.
*
* This message is sent by the guest to the host.
*
* States allowed: any
*
* Capability required: STREAM_CAP_QUALITY_INDICATOR
*/
typedef struct StreamMsgQualityIndicator {
uint8_t quality[0]; // a zero-terminated string
} StreamMsgQualityIndicator;
/* Tell to stop current stream and possibly start a new one.
* This message is sent by the host to the guest.
* Allows to communicate the codecs supported by the clients.