[Spice-devel] celt 0.5.1 dependency of spice

Yaniv Kaul ykaul at redhat.com
Mon May 9 03:12:09 PDT 2011


On 09/05/2011 12:51, Alon Levy wrote:
> On Mon, May 09, 2011 at 11:22:03AM +0200, Christophe Fergeau wrote:
>> On Mon, May 09, 2011 at 12:14:52PM +0300, Alon Levy wrote:
>>> On Mon, May 09, 2011 at 11:04:47AM +0200, Christophe Fergeau wrote:
>>>> Hi,
>>>>
>>>> On Sun, May 08, 2011 at 03:38:17PM +0300, Alon Levy wrote:
>>>>> This problem has been raised multiple times on the list, you should read the
>>>>> archives. To recap: historically when spice had to choose a codec it chose the
>>>>> current celt then, 0.5.1. That celt is not compatible with newer celts. The
>>>>> decision was to wait for celt's on wire format to stabilize. This hasn't happened
>>>>> yet (perhaps it will happen soon). It is however possible to introduce support
>>>>> for multiple codecs and have the client and server negotiate. This will still not
>>>>> allow a celt 0.10.0 linked spice server to connect to celt 0.5.1 client, or vice
>>>>> versa.
>>>> Celt 0.11.1 release announcement says
>>>> "CELT 0.11.0 (originally not announced) and 0.11.1 has been released with a
>>>> focus on freezing the bit-stream and updating the API. The bit-stream is
>>>> now in "soft-freeze" state meaning there is an attempt to keep it fixed,
>>>> but some bugs may force changes" so if some codec negociation was
>>>> introduced, I'd target celt 0.11.1+ (explicitly noting that celt 0.11.1+
>>>> support may be broken at any time if celt bitstream format has to change
>>>> before it's officially frozen).
>>> If we add the negotiation logic we can later add a third celt version
>> Maintaince-wise, supporting celt 0.5.1 and celt "bitwise-stable" is already
>> 1 version too much, so it would be better to avoid having a 3rd one to
>> maintain ;)
> I'm just saying, by amount of effort:
>   some - client/server audio codec negotiation for playback and record channels
>    1. create some enum to track supported codecs
>    2. add required dispatching to correct callback struct for encoding/decoding
>   minor - adding a new codec (we will already have some enum)
>    1. update enum
>    2. add another implementation of codec dispatcher
>
> Maintainence wise:
>   add a print early on which codec we are using (in the server via monitor print,
>   in the client).
>
> So an acceptable plan may be:

0. Add 'no codec' as a supported codec - pass a (PCM?) stream directly 
from the server to client (not sure if it's a cross platform solution). 
Hopefully, this will allow to build without a codec at all. An exercise 
for the reader: at least gzip compress that stream.
Y.

>   1. add CELT 0.5.1 and CELT 0.11.1 as supported codecs
>   - time passes -
>   2. remove CLET 0.5.1 from the supported codecs (just by building spice server without it,
>   and the supported enum list will be updated when not linking with CELT 0.5.1).
>
>> Christophe
>
>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list