mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2025-12-26 14:18:36 +00:00
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.
This commit is contained in:
parent
5ebeee5114
commit
7cdf8de00a
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit df6bc6269ebd3144663cbdb8457fbe71d9202b6a
|
||||
Subproject commit a04cc68ba16c5ad8cf1f35b61c1464ef96bdfb0c
|
||||
18
spice.proto
18
spice.proto
@ -890,6 +890,13 @@ channel DisplayChannel : BaseChannel {
|
||||
} data;
|
||||
} draw_composite;
|
||||
|
||||
message {
|
||||
uint32 stream_id;
|
||||
uint32 unique_id;
|
||||
uint32 max_window_size;
|
||||
uint32 timeout_ms;
|
||||
} stream_activate_report;
|
||||
|
||||
client:
|
||||
message {
|
||||
uint8 pixmap_cache_id;
|
||||
@ -897,6 +904,17 @@ channel DisplayChannel : BaseChannel {
|
||||
uint8 glz_dictionary_id;
|
||||
int32 glz_dictionary_window_size; // in pixels
|
||||
} init = 101;
|
||||
|
||||
message {
|
||||
uint32 stream_id;
|
||||
uint32 unique_id;
|
||||
uint32 start_frame_mm_time;
|
||||
uint32 end_frame_mm_time;
|
||||
uint32 num_frames;
|
||||
uint32 num_drops;
|
||||
int32 last_frame_delay;
|
||||
uint32 audio_delay;
|
||||
} stream_report;
|
||||
};
|
||||
|
||||
flags16 keyboard_modifier_flags {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user