[Spice-devel] [spice-common opus support 2/5 (take 2)] Add support for the Opus codec.

Jeremy White jwhite at codeweavers.com
Tue Nov 5 09:31:11 PST 2013


>> #if HAVE_CELT051 if (c && c->mode ==
>> SPICE_AUDIO_DATA_MODE_CELT_0_5_1) +    { +        /* The output
>> buffer size in celt determines the compression, +            and
>> so is essentially mandatory to use a certain value (47) */ +
>> if (*out_size > SND_CODEC_CELT_COMPRESSED_FRAME_BYTES) +
>> *out_size = SND_CODEC_CELT_COMPRESSED_FRAME_BYTES;
> 
> I would have put this in the previous series I think. Shouldn't it
> be made unconditionnally?

I agree that it seems logically connected to the previous series, but
the code as written previously would never trigger that logic.  I
generally hesitate to add code that will never fire in a patch, hence
my decision to put it here.


>> /* Spice uses a very fixed protocol when transmitting CELT
>> audio; audio must be transmitted in frames of 256, and we must
>> compress data down to a fairly specific size (47, computation
>> below). @@ -33,14 +37,19 @@ #define SND_CODEC_CELT_FRAME_SIZE
>> 256 #define SND_CODEC_CELT_BIT_RATE         (64 * 1024) #define
>> SND_CODEC_CELT_PLAYBACK_FREQ    44100 -#define
>> SND_CODEC_CELT_PLAYBACK_CHAN    2 #define
>> SND_CODEC_CELT_COMPRESSED_FRAME_BYTES (SND_CODEC_CELT_FRAME_SIZE
>> * SND_CODEC_CELT_BIT_RATE / \ SND_CODEC_CELT_PLAYBACK_FREQ / 8)
>> 
>> +#define SND_CODEC_OPUS_FRAME_SIZE       480 +#define
>> SND_CODEC_OPUS_PLAYBACK_FREQ    48000 +#define
>> SND_CODEC_OPUS_PLAYBACK_CHAN    2
> 
> Why add this and rename  SND_CODEC_CELT_PLAYBACK_CHAN to something
> generic at the same time?

Good point; I should remove the use of SND_CODEC_OPUS_PLAYBACK_CHAN.

[Define if we have celt051 codec]))
>> 
>> +PKG_CHECK_MODULES([OPUS], [opus >= 0.9.14], have_opus=yes,
>> have_opus=no)
> 
> I'd require 1.0.0

Debian wheezy only has 0.9.14, and 0.9.14 is ABI compatible with 1.0.0.

> 
>> + +AM_CONDITIONAL([HAVE_OPUS], [test "x$have_opus" = "xyes"]) +if
>> test "x$have_opus" = "xyes" ; then +  AC_DEFINE([HAVE_OPUS], [1],
>> [Define if we have OPUS]) +  SPICE_REQUIRES+=" opus >= 0.9.14" +
>> opus_version=`pkg-config --modversion opus`
> 
> This is not used, is it?

The AC_DEFINE is used, but the SPICE_REQUIRES and opus_version are not.

I was imprecise in my use of SPICE_REQUIRES in this patch series; I
should fix that.

Presuming you accept my responses, I'll spin up a take 3 on the first
three, adding back the configure check / SPICE_REQUIRES to the top
level.  I'll wait for more feedback on the rest of the Opus patches
before respinning those.

Cheers,

Jeremy


More information about the Spice-devel mailing list