[Spice-devel] [PATCH] Add the ability to specify Spice video codecs.
Jeremy White
jwhite at codeweavers.com
Mon Jul 27 09:51:11 PDT 2015
This patch requires the patch series provided by Francois Gouget
which add gstreamer support to Spice.
Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
qemu-options.hx | 8 ++++++++
ui/spice-core.c | 17 +++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 77f5853..786f736 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -990,6 +990,7 @@ DEF("spice", HAS_ARG, QEMU_OPTION_spice,
" [,jpeg-wan-compression=[auto|never|always]]\n"
" [,zlib-glz-wan-compression=[auto|never|always]]\n"
" [,streaming-video=[off|all|filter]][,disable-copy-paste]\n"
+ " [,video-codecs=<encoder1>:<codec1>[;<encoder2>:<codec2>]]\n",
" [,disable-agent-file-xfer][,agent-mouse=[on|off]]\n"
" [,playback-compression=[on|off]][,seamless-migration=[on|off]]\n"
" enable spice\n"
@@ -1074,6 +1075,13 @@ Default is auto.
@item streaming-video=[off|all|filter]
Configure video stream detection. Default is filter.
+ at item video-codecs=encoder:codec[;encoder2:codec2]
+Configure what video codecs to use. It is a semi colon separated
+list of encoder/codec pairs to try, in preference order.
+An encoder tyep of 'spice' selects built in codecs. An encoder
+of 'gstreamer' indicates gstreamer. The codec is the type
+of encoder; e.g. mjpeg, vp8, etc. Default is spice:mjpeg.
+
@item agent-mouse=[on|off]
Enable/disable passing mouse events via vdagent. Default is on.
diff --git a/ui/spice-core.c b/ui/spice-core.c
index bf4fd07..89b6eed 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -485,6 +485,9 @@ static QemuOptsList qemu_spice_opts = {
.name = "streaming-video",
.type = QEMU_OPT_STRING,
},{
+ .name = "video-codecs",
+ .type = QEMU_OPT_STRING,
+ },{
.name = "agent-mouse",
.type = QEMU_OPT_BOOL,
},{
@@ -779,6 +782,20 @@ void qemu_spice_init(void)
spice_server_set_streaming_video(spice_server, SPICE_STREAM_VIDEO_OFF);
}
+ str = qemu_opt_get(opts, "video-codecs");
+ if (str) {
+#if SPICE_SERVER_VERSION >= 0x000c06
+ if (spice_server_set_video_codecs(spice_server, str)) {
+ error_report("Invalid video codecs.");
+ exit(1);
+ }
+#else
+ error_report("this qemu build does not support the "
+ "\"video-codecs\" option");
+ exit(1);
+#endif
+ }
+
spice_server_set_agent_mouse
(spice_server, qemu_opt_get_bool(opts, "agent-mouse", 1));
spice_server_set_playback_compression
--
2.1.4
More information about the Spice-devel
mailing list