]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: probe for -vnc audiodev property
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 23 Feb 2021 16:16:28 +0000 (16:16 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 9 Mar 2021 22:58:33 +0000 (22:58 +0000)
The -audiodev arg is a new way to configure audio devices in QEMU to
replace the QEMU_AUDIO_DRV env variable. This arg is not visible in
the "query-command-line-options" output since it is entirely QAPI
driven, not QemuOpts. It also isn't in "query-qmp-schema" though
since there's no QMP command that uses the Audiodev type yet.

So probe for the existance of this feature by looking for the
-vnc "audiodev" property. This won't let us determine which
precise audio backends QEMU has been built with, but for now
that's no worse than with env variables today.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
18 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml

index f9e716cf31e7bd6554b70f0bf6d09dcb37879718..790375ac38fde42bc3146688e2573ac9a9ac552a 100644 (file)
@@ -621,6 +621,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
 
               /* 395 */
               "vnc-power-control",
+              "audiodev",
     );
 
 
@@ -3304,6 +3305,7 @@ static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = {
     { "fsdev", "fmode", QEMU_CAPS_FSDEV_CREATEMODE }, /* Could have also checked fsdev->dmode */
     { "vnc", "display", QEMU_CAPS_VNC_OPTS },
     { "vnc", "power-control", QEMU_CAPS_VNC_POWER_CONTROL },
+    { "vnc", "audiodev", QEMU_CAPS_AUDIODEV },
 };
 
 static int
index 340df4f9fcc378b311f28c7ac33d100912da3297..ee321df66c958da68cb6d0f348e5186ffe7ec9f8 100644 (file)
@@ -601,6 +601,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 395 */
     QEMU_CAPS_VNC_POWER_CONTROL, /* -vnc power-control option */
+    QEMU_CAPS_AUDIODEV, /* -audiodev instead of QEMU_AUDIO_DRV */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 56922178ff2471abe78aaae485b19356154bbe77..b53584cfb85a6288a1976d29ddb4755990b59920 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
index 080e3364d98111b90412e4dbdfc6a6dfbb74631f..83f914cabe3d2da31aa0d103c147f66a88ca187c 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900242</microcodeVersion>
index 2dfdc6f2baf6a335d9380ffd18bf106a625091a0..363c4372c1218c3ac5b0182b557ae6e6222d9e26 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100242</microcodeVersion>
index ce6336d4837f63bc732d131babbdd040bdc8d824..4443974912bc3e597803393cb4c4d719b060c47b 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 7031031716426a0e79d95462981ab74966aee0be..9a2b1f2061a07224f2a7cfc73ab91f5dcd53d381 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700241</microcodeVersion>
index 4f690108e0b0aec9bf593b2ab909053903ef7df6..ab12f7e72c058916ca2be30f35c7a8eb945b1093 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>
index 6fb46102e791a15de06fddf835dc066e30ba49bc..a5e0853a4228715d85ed8a4a19ebb4b8314c875e 100644 (file)
   <flag name='vhost-user-blk'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index 8fd9afdf156cab384e562ed1da991edff65c8ad4..7c84402f631aa1d9dff436d3b8dfc082f1ac5e37 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index 66b62ff387c7eae2dc094b788b0c6af110af20ed..35ed8312c111c510fb72d9a8d1e678b7eae6e6ad 100644 (file)
   <flag name='ncr53c90'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index d1096c3cb7769449ca5b7d808948810336943c9d..dd91777c9b8c928506282cbfa52a2bb94ef0fc76 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 44cd217efb141659b70dc172633c3f7c65e1a2c8..2247606310c00c9e2145638b665ecf577bae7b07 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
index 8fad1270158d2fb8c707c580f677fe0565800090..419d05380ceadce5d967923ead4c5937c98f21f4 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
index c939ed2db703ad192c99ab4484d0345e624ce928..8a6ea5450b97885b3f763494df75473db357db6e 100644 (file)
   <flag name='vhost-user-blk'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index 4c91abc6f1f2f90db52a3c18cc947a1197236871..2fd360f690f06e6050cff97cd523aee6bafdb2cb 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100243</microcodeVersion>
index 853f73fa5373759da74d5454850d4ea10941a0c5..17cec44cd8bbb11ffd6b670878a8d6eac345422c 100644 (file)
   <flag name='cpu-max'/>
   <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
   <flag name='vnc-opts'/>
+  <flag name='audiodev'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
index 67c737129c5ae76d7658e79b55920444855d117d..6d546268e4780bc3e4b71bb7006408c348ccfc8b 100644 (file)
   <flag name='vnc-opts'/>
   <flag name='migration-param.block-bitmap-mapping'/>
   <flag name='vnc-power-control'/>
+  <flag name='audiodev'/>
   <version>5002050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>