From 296c7f3284efe655d95a8ae045a5dc1a20d6fff0 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Tue, 20 Jan 2015 11:33:17 +0100 Subject: [PATCH] libxl: Spice streaming video setting support for upstream qemu Usage: spice_streaming_video=[filter|all|off] Specifies what streaming video setting is to be used by spice (if given), otherwise the qemu default will be used. Signed-off-by: Fabio Fantoni Acked-by: Wei Liu --- docs/man/xl.cfg.pod.5 | 5 +++++ tools/libxl/libxl.h | 11 +++++++++++ tools/libxl/libxl_dm.c | 4 ++++ tools/libxl/libxl_types.idl | 1 + tools/libxl/xl_cmdimpl.c | 2 ++ 5 files changed, 23 insertions(+) diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 index 0c2cbac..408653f 100644 --- a/docs/man/xl.cfg.pod.5 +++ b/docs/man/xl.cfg.pod.5 @@ -1433,6 +1433,11 @@ Specifies what image compression is to be used by spice (if given), otherwise the qemu default will be used. Please see documentations of your current qemu version for details. +=item B + +Specifies what streaming video setting is to be used by spice (if given), +otherwise the qemu default will be used. + =back =head3 Miscellaneous Emulated Hardware diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index b8e0b67..c219f59 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -539,6 +539,17 @@ typedef struct libxl__ctx libxl_ctx; #define LIBXL_HAVE_SPICE_IMAGECOMPRESSION 1 /* + * LIBXL_HAVE_SPICE_STREAMINGVIDEO + * + * If defined, then the libxl_spice_info structure will contain a string type + * field: streaming_video. This value defines what Spice streaming video setting + * is used. + * + * If this is not defined, the Spice streaming video setting support is ignored. + */ +#define LIBXL_HAVE_SPICE_STREAMINGVIDEO 1 + +/* * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1 * * If this is defined, libxl_domain_create_restore()'s API has changed to diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index 40c8649..d8d6f0c 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -402,6 +402,10 @@ static char *dm_spice_options(libxl__gc *gc, opt = libxl__sprintf(gc, "%s,image-compression=%s", opt, spice->image_compression); + if (spice->streaming_video) + opt = libxl__sprintf(gc, "%s,streaming-video=%s", opt, + spice->streaming_video); + return opt; } diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 052ded9..02be466 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -242,6 +242,7 @@ libxl_spice_info = Struct("spice_info", [ ("clipboard_sharing", libxl_defbool), ("usbredirection", integer), ("image_compression", string), + ("streaming_video", string), ]) libxl_sdl_info = Struct("sdl_info", [ diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 00aa69d..b7eac29 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1950,6 +1950,8 @@ skip_vfb: b_info->u.hvm.spice.usbredirection = l; xlu_cfg_replace_string (config, "spice_image_compression", &b_info->u.hvm.spice.image_compression, 0); + xlu_cfg_replace_string (config, "spice_streaming_video", + &b_info->u.hvm.spice.streaming_video, 0); xlu_cfg_get_defbool(config, "nographic", &b_info->u.hvm.nographic, 0); xlu_cfg_get_defbool(config, "gfx_passthru", &b_info->u.hvm.gfx_passthru, 0); -- 1.9.2