diff options
Diffstat (limited to 'ui')
-rw-r--r-- | ui/spice-core.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ui/spice-core.c b/ui/spice-core.c index c3ac20ad43..49fdcdf7e1 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -470,6 +470,11 @@ static QemuOptsList qemu_spice_opts = { },{ .name = "streaming-video", .type = QEMU_OPT_STRING, +#ifdef SPICE_HAS_VIDEO_CODECS + },{ + .name = "video-codecs", + .type = QEMU_OPT_STRING, +#endif },{ .name = "agent-mouse", .type = QEMU_OPT_BOOL, @@ -507,6 +512,9 @@ static SpiceInfo *qmp_query_spice_real(Error **errp) unsigned int major; unsigned int minor; unsigned int micro; +#ifdef SPICE_HAS_VIDEO_CODECS + const char *video_codecs; +#endif info = g_malloc0(sizeof(*info)); @@ -543,6 +551,14 @@ static SpiceInfo *qmp_query_spice_real(Error **errp) info->tls_port = tls_port; } +#ifdef SPICE_HAS_VIDEO_CODECS + info->has_video_codecs = true; + video_codecs = spice_server_get_video_codecs(spice_server); + info->video_codecs = g_strdup(video_codecs); +#else + info->has_video_codecs = false; +#endif + info->mouse_mode = spice_server_is_server_mouse(spice_server) ? SPICE_QUERY_MOUSE_MODE_SERVER : SPICE_QUERY_MOUSE_MODE_CLIENT; @@ -800,6 +816,16 @@ static void qemu_spice_init(void) spice_server_set_streaming_video(spice_server, SPICE_STREAM_VIDEO_OFF); } +#ifdef SPICE_HAS_VIDEO_CODECS + str = qemu_opt_get(opts, "video-codecs"); + if (str) { + if (spice_server_set_video_codecs(spice_server, str)) { + error_report("Invalid SPICE video codecs"); + exit(1); + } + } +#endif + spice_server_set_agent_mouse (spice_server, qemu_opt_get_bool(opts, "agent-mouse", 1)); spice_server_set_playback_compression |