Spice: support audio, images and stream compression

This extends the SPICE XML to allow variable compression settings for audio,
images and streaming:
    <graphics type='spice' port='5901' tlsPort='-1' autoport='yes'>
        <image compression='auto_glz'/>
        <jpeg compression='auto'/>
        <zlib compression='auto'/>
        <playback compression='on'/>
    </graphics>

All new elements are optional.
This commit is contained in:
Michal Privoznik
2011-04-14 10:44:20 +02:00
committed by Eric Blake
parent eed9d69e3c
commit abb1570eac
8 changed files with 291 additions and 24 deletions

View File

@@ -1663,7 +1663,25 @@ qemu-kvm -net nic,model=? /dev/null
&lt;graphics type='spice' port='-1' tlsPort='-1' autoport='yes'&gt;
&lt;channel name='main' mode='secure'/&gt;
&lt;channel name='record' mode='insecure'/&gt;
&lt;image compression='auto_glz'/&gt;
&lt;/graphics&gt;</pre>
<p>
Spice supports variable compression settings for audio,
images and streaming, <span class="since">since
0.9.1</span>. These settings are accessible via
the <code>compression</code> attribute in all following
elements: <code>image</code> to set image compression
(accepts <code>auto_glz</code>, <code>auto_lz</code>,
<code>quic</code>, <code>glz</code>, <code>lz</code>,
<code>off</code>), <code>jpeg</code> for JPEG
compression for images over wan
(accepts <code>auto</code>, <code>never</code>,
<code>always</code>), <code>zlib</code> for configuring
wan image compression (accepts <code>auto</code>,
<code>never</code>, <code>always</code>)
and <code>playback</code> for enabling audio stream
compression (accepts <code>on</code> or <code>off</code>).
</p>
</dd>
<dt><code>"rdp"</code></dt>
<dd>

View File

@@ -1260,29 +1260,81 @@
<text/>
</attribute>
</optional>
<zeroOrMore>
<element name="channel">
<attribute name="name">
<choice>
<value>main</value>
<value>display</value>
<value>inputs</value>
<value>cursor</value>
<value>playback</value>
<value>record</value>
<value>smartcard</value>
</choice>
</attribute>
<attribute name="mode">
<choice>
<value>any</value>
<value>secure</value>
<value>insecure</value>
</choice>
</attribute>
<empty/>
</element>
</zeroOrMore>
<interleave>
<zeroOrMore>
<element name="channel">
<attribute name="name">
<choice>
<value>main</value>
<value>display</value>
<value>inputs</value>
<value>cursor</value>
<value>playback</value>
<value>record</value>
<value>smartcard</value>
</choice>
</attribute>
<attribute name="mode">
<choice>
<value>any</value>
<value>secure</value>
<value>insecure</value>
</choice>
</attribute>
<empty/>
</element>
</zeroOrMore>
<optional>
<element name="image">
<attribute name="compression">
<choice>
<value>auto_glz</value>
<value>auto_lz</value>
<value>quic</value>
<value>glz</value>
<value>lz</value>
<value>off</value>
</choice>
</attribute>
<empty/>
</element>
</optional>
<optional>
<element name="jpeg">
<attribute name="compression">
<choice>
<value>auto</value>
<value>never</value>
<value>always</value>
</choice>
</attribute>
<empty/>
</element>
</optional>
<optional>
<element name="zlib">
<attribute name="compression">
<choice>
<value>auto</value>
<value>never</value>
<value>always</value>
</choice>
</attribute>
<empty/>
</element>
</optional>
<optional>
<element name="playback">
<attribute name="compression">
<choice>
<value>on</value>
<value>off</value>
</choice>
</attribute>
<empty/>
</element>
</optional>
</interleave>
</group>
<group>
<attribute name="type">