[Spice-devel] [PATCH] make celt to be optional

Gerd Hoffmann kraxel at redhat.com
Fri Jun 15 02:17:34 PDT 2012


  Hi,

> From 44.1 you'd still need to externally resample to one of 8, 12, 16, 24,
> or 48k - but you can put any of those rates in, and take any of those out
> again without them needing to be the same.  So only endpoints actually
> needing an 'oddball' rate would need a resampler to get them, they wouldn't
> force the other end to also support and use that rate as well.

Ok, so we must resample 44.1 anyway before encoding.

>> Is that true for celt 0.5.1 too btw?
> 
> Unfortunately no.  For celt you compose your own 'mode' and that mode
> essentially defines the bitstream.  Different modes make different
> bitstreams so you need to decode with the same mode you encoded with.

Ok, so it's easiest to simply not touch celt.

So, how to go forward?  spice-server gets a 44.1 stream from qemu today.
 I think we should switch that to 48k.  Needs changes in the sound
interface and in qemu.  spice-server needs to be able to handle both old
(44.1) and new (48k) qemu.  spice-server also needs to be able to handle
clients with different capabilities (possibly even at the same time if
multiclient is enabled, not sure multiclient support covers the sound
channel though).

So we'll need resampling support for both 44.1 -> 48k and 48k -> 44.1.
In the end we'll have the following cases, at the server side:

  old qemu, no caps [-> 44.1 pcm]
  pass through pcm audio data as-is

  new qemu, no caps [-> 44.1 pcm]
  resample 48k -> 44.1

  old qemu, cap_celt
  encode 44.1 celt

  new qemu, cap_celt
  resample 48k -> 44.1, encode 44.1 celt

  old qemu, cap_opus
  resample 44.1 -> 48k, encode opus

  new qemu, cap_opus
  encode opus

We might want to add:

  new qemu, cap_pcm48k
  pass through pcm audio data as-is

Long-term (new spice-server, new qemu, clients supporting opus) we'll
operate at 48k on the whole chain without resampling needed in the
spice-server.

Client side is easy, we just decode stuff and pass it on to pulseaudio
to deal with it.

cheers,
  Gerd


More information about the Spice-devel mailing list