summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2013-02-18 14:26:25 -0500
committerYonit Halperin <yhalperi@redhat.com>2013-04-22 11:34:20 -0400
commit7cdf8de00a573b6bdb4ec4582c87aa79b25796d3 (patch)
tree3e700c52e6e58403312f76b7bab3c6400d5c4304 /common
parent5ebeee51146f9441474377e77bbc15ec69530d54 (diff)
add stream report messages
If the server & client support SPICE_DISPLAY_CAP_STREAM_REPORT, the server first sends SPICE_MSG_DISPLAY_STREAM_ACTIVATE_REPORT. Then, the client periodically sends SPICE_MSGC_DISPLAY_STREAM_REPORT messages that supply the server details about the current quality of the video streaming on the client side. The server analyses the report and adjust the stream parameters accordingly.
Diffstat (limited to 'common')
-rw-r--r--common/client_marshallers.h1
-rw-r--r--common/messages.h18
2 files changed, 19 insertions, 0 deletions
diff --git a/common/client_marshallers.h b/common/client_marshallers.h
index 9a2385d..85051a0 100644
--- a/common/client_marshallers.h
+++ b/common/client_marshallers.h
@@ -44,6 +44,7 @@ typedef struct {
void (*msgc_main_agent_token)(SpiceMarshaller *m, SpiceMsgcMainAgentTokens *msg);
void (*msgc_main_migrate_dst_do_seamless)(SpiceMarshaller *m, SpiceMsgcMainMigrateDstDoSeamless *msg);
void (*msgc_display_init)(SpiceMarshaller *m, SpiceMsgcDisplayInit *msg);
+ void (*msgc_display_stream_report)(SpiceMarshaller *m, SpiceMsgcDisplayStreamReport *msg);
void (*msgc_inputs_key_down)(SpiceMarshaller *m, SpiceMsgcKeyDown *msg);
void (*msgc_inputs_key_up)(SpiceMarshaller *m, SpiceMsgcKeyUp *msg);
void (*msgc_inputs_key_modifiers)(SpiceMarshaller *m, SpiceMsgcKeyModifiers *msg);
diff --git a/common/messages.h b/common/messages.h
index b145cfc..1d30b87 100644
--- a/common/messages.h
+++ b/common/messages.h
@@ -357,6 +357,24 @@ typedef struct SpiceMsgDisplayStreamDestroy {
uint32_t id;
} SpiceMsgDisplayStreamDestroy;
+typedef struct SpiceMsgDisplayStreamActivateReport {
+ uint32_t stream_id;
+ uint32_t unique_id;
+ uint32_t max_window_size;
+ uint32_t timeout_ms;
+} SpiceMsgDisplayStreamActivateReport;
+
+typedef struct SpiceMsgcDisplayStreamReport {
+ uint32_t stream_id;
+ uint32_t unique_id;
+ uint32_t start_frame_mm_time;
+ uint32_t end_frame_mm_time;
+ uint32_t num_frames;
+ uint32_t num_drops;
+ int32_t last_frame_delay;
+ uint32_t audio_delay;
+} SpiceMsgcDisplayStreamReport;
+
typedef struct SpiceMsgCursorInit {
SpicePoint16 position;
uint16_t trail_length;