Bug 58824 - Replace Celt with Opus
Summary: Replace Celt with Opus
Status: RESOLVED FIXED
Alias: None
Product: Spice
Classification: Unclassified
Component: protocol (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Spice Bug List
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-28 11:54 UTC by Kerrick Staley
Modified: 2014-02-09 16:24 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Kerrick Staley 2012-12-28 11:54:46 UTC
Spice depends on Celt 0.5.1, which is very old (0.5.2 came out almost 5 years ago [1]). Opus [2] is an IETF-standardized codec that supersedes Celt. It's annoying for package maintainers to support Celt 0.5.1 alongside later versions of Celt and Opus, and this is helping to prevent Arch Linux from including Spice in its official repositories [3].

I'm guessing libopus doesn't support Celt 0.5.1's older bitstream format, so this fix isn't quite trivial: something will have to be done to address older clients interacting with newer servers and vice versa.

[1] http://www.celt-codec.org/news/
[2] http://opus-codec.org/
[3] https://bugs.archlinux.org/task/23453#comment98942
Comment 1 Christophe Fergeau 2012-12-28 20:50:58 UTC
Quick c&p of what I said on IRC about this bug.

12:54 < kerrick> What's the current version of the SPICE protocol? Are there
                 any version bumps in the pipeline?
12:54 < kerrick> I'm wondering how feasible
                 https://bugs.freedesktop.org/show_bug.cgi?id=58824 is
12:55 < kerrick> Because it may require a version bump of the SPICE protocol
                 (incompatible audio codec), and I don't know how stable SPICE
                 is
17:38 < teuf> kerrick: there has been a few threads about this already
17:38 < teuf> kerrick: should be doable without breaking compat
17:38 < teuf> kerrick: supported codecs are negotiated at connect time
17:41 < teuf> kerrick: I think the part of the thread starting at
http://lists.freedesktop.org/archives/spice-devel/2012-June/009578.html has
              interesting info
17:42 < teuf> http://lists.freedesktop.org/archives/spice-devel/2012-June/009645.html
Comment 2 Oe Ai 2013-01-01 14:48:33 UTC
well i've get celt 0.5.1 and compiled it - > spice didn;t get it
compiled 0.11 and 0.6.1 - nothing happened spice asks for 051CFLAGS - what are these CFLAGS? libdir? source libdir or /usr/inslude/celt?
since the package is obsolete as it said on the celt site - there i've tried to renew the opus-dev pkg - not working.
then i found the 0.7.1 package compiled for deb and no compile again
 but 1.3.0 quemu version depends on spice 0.12 - so maybe it will be useful atleast include celt051 src code into the spice compilation? but really if debian is using opus and not using celt at all - so why stopping on the old version? isn't it impossible to do resampling with new lib? - i don't believe it really.
and i think that you need to move forward and use pulseaudio3 directly, so while you work on it it becomes stable - it is more than @you_just_try it is a perspective.
Comment 3 Oe Ai 2013-01-01 15:12:13 UTC
oh and actually i've been trying to recompile it, because my existing qemu stopped sounding and i just read the error log - now i know exactly what the spice server 0.11 error means.
Comment 4 Oe Ai 2013-01-01 15:28:31 UTC
but for advanced users it would be better to have an option of using alsa or jack instead of pulse, so the the interface could be standartized and it is stable and flexible.
Comment 5 Oe Ai 2013-01-02 21:17:14 UTC
an yes the Jack server got the opus || celt implemented so you'll have the higher layer api to work with and maybe all yu need is just to redirect out\ins


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.