[Spice-devel] RFC on sound codec refactoring

Christophe Fergeau cfergeau at redhat.com
Mon Oct 7 15:00:53 CEST 2013


On Mon, Oct 07, 2013 at 07:08:40AM -0500, Jeremy White wrote:
> >>Instead of having to resample, can't we fix qemu (and spice headers) to use 48khz by default?
> >
> >Sure we can switch the default.  spice headers is enougth btw.  Just
> >update the frequency there.  And bumb the minor version so spice-server
> >can figure which frequency is used by qemu.
> >
> >You can still face the case that spice-server has to handle a old
> >(not-yet rebuilt against new spice-headers) qemu binary which operates
> >at 44.1 kHz.  So the 44.1 -> 48 resampling will be needed, even when is
> >used for a (hopefully short) transition period only.
> 
> This is where we last left off, last June.
> 
> My current question is:  can we modify qemu to support a dynamic rate change?
> In theory, it supports other devices that run at different frequencies,
> so it should be theoretically possible.

Depends what you call a 'dynamic rate change'. When using spice, at qemu
startup, this function:

static int line_out_init (HWVoiceOut *hw, struct audsettings *as)
{
    SpiceVoiceOut *out = container_of (hw, SpiceVoiceOut, hw);
    struct audsettings settings;

    settings.freq       = SPICE_INTERFACE_PLAYBACK_FREQ;
    settings.nchannels  = SPICE_INTERFACE_PLAYBACK_CHAN;
    settings.fmt        = AUD_FMT_S16;
    settings.endianness = AUDIO_HOST_ENDIANNESS;

    audio_pcm_init_info (&hw->info, &settings);
    hw->samples = LINE_OUT_SAMPLES;
    out->active = 0;

    out->sin.base.sif = &playback_sif.base;
    qemu_spice_add_interface (&out->sin.base);
    return 0;
}

is called. It's possible to replace the static
SPICE_INTERFACE_PLAYBACK_FREQ by a function returning 44100 or 48000
depending on whether Opus support is enabled or not. Once the audio device
is created, I'm not sure the playback frequency can easily be changed.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20131007/f9476335/attachment.pgp>


More information about the Spice-devel mailing list