summaryrefslogtreecommitdiffstats
path: root/ui/spice-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/spice-core.c')
-rw-r--r--ui/spice-core.c26
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