mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-30 09:46:50 +00:00
display: add update_compression() method
Acked-by: Pavel Grunt <pgrunt@redhat.com>
This commit is contained in:
parent
47b023866f
commit
4980850dd2
@ -1875,3 +1875,20 @@ exit:
|
||||
red_put_surface_cmd(surface);
|
||||
free(surface);
|
||||
}
|
||||
|
||||
void display_channel_update_compression(DisplayChannel *display, DisplayChannelClient *dcc)
|
||||
{
|
||||
if (dcc->jpeg_state == SPICE_WAN_COMPRESSION_AUTO) {
|
||||
display->enable_jpeg = dcc->common.is_low_bandwidth;
|
||||
} else {
|
||||
display->enable_jpeg = (dcc->jpeg_state == SPICE_WAN_COMPRESSION_ALWAYS);
|
||||
}
|
||||
|
||||
if (dcc->zlib_glz_state == SPICE_WAN_COMPRESSION_AUTO) {
|
||||
display->enable_zlib_glz_wrap = dcc->common.is_low_bandwidth;
|
||||
} else {
|
||||
display->enable_zlib_glz_wrap = (dcc->zlib_glz_state == SPICE_WAN_COMPRESSION_ALWAYS);
|
||||
}
|
||||
spice_info("jpeg %s", display->enable_jpeg ? "enabled" : "disabled");
|
||||
spice_info("zlib-over-glz %s", display->enable_zlib_glz_wrap ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
@ -304,6 +304,8 @@ void display_channel_process_surface_cmd (DisplayCha
|
||||
RedSurfaceCmd *surface,
|
||||
uint32_t group_id,
|
||||
int loadvm);
|
||||
void display_channel_update_compression (DisplayChannel *display,
|
||||
DisplayChannelClient *dcc);
|
||||
|
||||
static inline int validate_surface(DisplayChannel *display, uint32_t surface_id)
|
||||
{
|
||||
|
||||
@ -954,34 +954,21 @@ static void handle_new_display_channel(RedWorker *worker, RedClient *client, Red
|
||||
uint32_t *common_caps, int num_common_caps,
|
||||
uint32_t *caps, int num_caps)
|
||||
{
|
||||
DisplayChannel *display_channel;
|
||||
DisplayChannel *display;
|
||||
DisplayChannelClient *dcc;
|
||||
|
||||
spice_return_if_fail(worker->display_channel);
|
||||
|
||||
display_channel = worker->display_channel;
|
||||
display = worker->display_channel;
|
||||
spice_info("add display channel client");
|
||||
dcc = dcc_new(display_channel, client, stream, migrate,
|
||||
dcc = dcc_new(display, client, stream, migrate,
|
||||
common_caps, num_common_caps, caps, num_caps,
|
||||
worker->image_compression, worker->jpeg_state, worker->zlib_glz_state);
|
||||
if (!dcc) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (dcc->jpeg_state == SPICE_WAN_COMPRESSION_AUTO) {
|
||||
display_channel->enable_jpeg = dcc->common.is_low_bandwidth;
|
||||
} else {
|
||||
display_channel->enable_jpeg = (dcc->jpeg_state == SPICE_WAN_COMPRESSION_ALWAYS);
|
||||
}
|
||||
|
||||
if (dcc->zlib_glz_state == SPICE_WAN_COMPRESSION_AUTO) {
|
||||
display_channel->enable_zlib_glz_wrap = dcc->common.is_low_bandwidth;
|
||||
} else {
|
||||
display_channel->enable_zlib_glz_wrap = (dcc->zlib_glz_state ==
|
||||
SPICE_WAN_COMPRESSION_ALWAYS);
|
||||
}
|
||||
spice_info("jpeg %s", display_channel->enable_jpeg ? "enabled" : "disabled");
|
||||
spice_info("zlib-over-glz %s", display_channel->enable_zlib_glz_wrap ? "enabled" : "disabled");
|
||||
display_channel_update_compression(display, dcc);
|
||||
|
||||
guest_set_client_capabilities(worker);
|
||||
dcc_start(dcc);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user