Bug 12853 - mumble: broken output and input sound when using system CELT 0.11
Summary: mumble: broken output and input sound when using system CELT 0.11
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 4
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: has_procedure MGA4-64-OK MGA4-32-OK a...
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2014-02-22 23:19 CET by Eric Petit
Modified: 2015-03-08 21:48 CET (History)
7 users (show)

See Also:
Source RPM: mumble-1.2.3-14.1.mga4
CVE:
Status comment:


Attachments
spec file with workarround to build mumble client (16.06 KB, text/x-rpm-spec)
2014-03-16 00:56 CET, Eric Petit
Details

Description Eric Petit 2014-02-22 23:19:23 CET
Hi
before upgrade mageia 3 to 4 i used mumble without any problem, since upgrade, mumble have input and output sound completely noisy/broken, like we spoke under the water, i find nothing to solve that, but, if i use the source of mumble, mumble-1.2.5, compile it by first using qt4 dependencies, and : "qmake main.pro CONFIG+=no-server CONFIG+=no-opus CONFIG+=optimize CONFIG+=no-oss CONFIG+=no-overlay  CONFIG+=no-alsa  CONFIG+=no-dbus CONFIG+=no-ice CONFIG+=no-embed-qt-translations CONFIG+=no-embed-tango-icons" option, make is okay and release/mumble work perfectly, so, i beleve there is something wrong between mageia 4 and mumble 1.2.3.


Reproducible: 

Steps to Reproduce:
Comment 1 Guillaume 2014-03-13 20:19:51 CET
The problem we have is that there's currently nobody to maintain Mumble, the problem is going to persists until somebody wants to package it. It also appears that Mumble is a software which is very difficult to maintain.

CC: (none) => guillaume.ber17

Comment 2 Eric Petit 2014-03-14 21:22:12 CET
If i modify the spec file and provide the tar.gz source code from official mumble website, is it enough?
Comment 3 Guillaume 2014-03-14 22:41:48 CET
(In reply to Eric Petit from comment #2)
> If i modify the spec file and provide the tar.gz source code from official
> mumble website, is it enough?

Please contact dev-team using Mailling Lists or on IRC, channel #mageia-dev, they may help you. I contacted somebody who already tries to work on compiling this package.
It's more complicated to do it for repos than for your porsonnal setup.

Stay connected !

Hardware: x86_64 => All
Source RPM: (none) => mumble

Comment 4 Manuel Hiebel 2014-03-15 21:51:10 CET
You can provide you spec Eric.

Component: New RPM package request => RPM Packages

Comment 5 Eric Petit 2014-03-15 23:40:22 CET
haha, i just got the spec file from the SRPM, i understand now, how this one is hard, plenty of patch, but also, the spec file build all, the client, the plugging and the murmur server.
My actual job is only the basic compilation of the client, 90 % of case of use of mumble, server is certainly more hard.
if this will make that more easy, can we simply do an spec file for the client/plugging and an spec file for the server part, like that we can follow upgrade of mumble client.
The only problem will be to compile twice time the same source code, yes.
For the client part, with the last version of mumble, 1.2.5, the patch seems unless since i had compile it without that patch?
i could modify the spec file, but it will took really more time i had planed and i have at this moment.
Comment 6 Eric Petit 2014-03-16 00:56:56 CET
Created attachment 5058 [details]
spec file with workarround to build mumble client

This is not an clean solution, just an workaround to build client, the server compilation is pretty broken.
Comment 7 Eric Petit 2014-03-16 01:20:10 CET
omg, sorry by advance, seem the problem is not mumble, but as "usual" celt problem, if i run mumble from the release directory where i had compile it and work good, i have : 
[eric@localhost release]$ ./mumble
G15LCDEngineUnix: Unable to connect to G15Daemon.
CELT bitstream 8000000b from /home/eric/Downloads/mumble/mumble-1.2.5/release/libcelt0.so.0.7.0
CELT bitstream 80000010 from /home/eric/Downloads/mumble/mumble-1.2.5/release/libcelt0.so.0.11.0
Locale is "fr_FR" (System: "fr_FR")
Database SQLite: "3.8.0.2" 
Overlay: Listening on "/home/eric/.MumbleOverlayPipe" 
GlobalShortcutX: Unable to open any keyboard input devices under /dev/input, falling back to XInput
GlobalShortcutX: Using XI2 2.0
AudioInput: 40000 bits/s, 48000 hz, 480 sample
PulseAudio: Starting output: alsa_output.pci-0000_00_14.2.analog-stereo
PulseAudio: Starting input alsa_input.pci-0000_00_14.2.analog-stereo
PulseAudio: Starting echo: alsa_output.pci-0000_00_14.2.analog-stereo.monitor
AudioOutput: Initialized 2 channel 44100 hz mixer
AudioInput: Initialized mixer for 1 channel 44100 hz mic and 0 channel 48000 hz echo
AudioInput: Initialized mixer for 1 channel 44100 hz mic and 1 channel 44100 hz echo
warning: The VAD has been replaced by a hack pending a complete rewrite
AudioInput: ECHO CANCELLER ACTIVE
OpenSSL Support: 1 (OpenSSL 1.0.1e 11 Feb 2013)
LogDocument::loadResource  2 "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ8vDJ6nmxwaR7LhdTqhtVJ26u5DYDk0OrnoJYndSFEliZ4GGSpvg" 
LogDocument::loadResource  2 "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQP20_kr-Oadb_bTm9Wb9dKQ3xhJ-d40O5qE9SjuDX6p0S66wcWMg" 
PulseAudio: Forcibly disconnected from PulseAudio

but if i install the fresh compiled RPM it ask mi to install the lib64celt 070 rpm and i have : 
 mumble
CELT bitstream 80000010 from libcelt0.so.2.0.0
Locale is "fr_FR" (System: "fr_FR")
TextToSpeech: Compiled without support for speech-dispatcher
Database SQLite: "3.8.0.2" 
Overlay: Listening on "/home/eric/.MumbleOverlayPipe" 
GlobalShortcutX: Unable to open any keyboard input devices under /dev/input, falling back to XInput
GlobalShortcutX: Using XI2 2.0
AudioInput: 40000 bits/s, 48000 hz, 480 sample
PulseAudio: Starting input alsa_input.pci-0000_00_14.2.analog-stereo
PulseAudio: Starting echo: alsa_output.pci-0000_00_14.2.analog-stereo.monitor
PulseAudio: Starting output: alsa_output.pci-0000_00_14.2.analog-stereo
AudioInput: Initialized mixer for 1 channel 44100 hz mic and 0 channel 48000 hz echo
AudioOutput: Initialized 2 channel 44100 hz mixer
AudioInput: Initialized mixer for 1 channel 44100 hz mic and 1 channel 44100 hz echo
warning: The VAD has been replaced by a hack pending a complete rewrite
AudioInput: ECHO CANCELLER ACTIVE

mumble don't want to use the celt0.7 it use the 0.2 version.
this is the badboy!
Comment 8 Samuel Verschelde 2015-02-22 22:47:37 CET
I've got the same issue connecting to mumble servers, this makes the user experience seriously broken. Mumble 1.2.8 is better because it uses opus but when connecting to a server that only supports celt the issue remains.

CC: (none) => stormi
Assignee: bugsquad => geiger.david68210

Comment 9 Samuel Verschelde 2015-02-22 23:29:08 CET
This bug report, although not directly related, gives some insight about celt issues regarding mumble. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675971
Comment 10 Samuel Verschelde 2015-02-22 23:45:14 CET
Adding colin in CC because comments in the spec file suggests he knows about this celt071 (celt 0.7) vs celt2 (which is actually 0.11).

From what I understand of the problem after having tried to make it work a whole evening:

* mumble loads the celt libs it finds
* it tries to infer the codec version, and from that it decides that the available CELT versions for use are 0.0.0 (!!!) and 2.0.0
* version should be actually seen as 0.7.0 and 0.11.0
* this renders CELT codecs totally unusable from mumble, either as input or output codec

Here is output from console on mga4 :
[samuel@localhost Jeux]$ mumble 
G15LCDEngineUnix: Unable to connect to G15Daemon. 
CELT bitstream 8000000b from libcelt071.so.0.0.0 
CELT bitstream 80000010 from libcelt0.so.2.0.0

Output on another distribution (calculate linux?)
$ mumble 
CELT bitstream 8000000b from /usr/lib64/mumble/libcelt0.so.0.7.0
CELT bitstream 80000010 from /usr/lib64/mumble/libcelt0.so.0.11.0

I wonder where our 2.0.0 versioning comes from, the source it uses is 0.11.0 actually.

CC: (none) => mageia

Comment 11 Samuel Verschelde 2015-02-23 17:40:12 CET
Adding Shlomi Fish in cc, as the celt maintainer.

CC: (none) => shlomif

Comment 12 David GEIGER 2015-02-24 19:26:28 CET
Hi Samuel,

Ok I found where is the celt issue, since mga4 our celt-0.11.3 is totally uncompatible with mumble.
Mumble needs the 0.11.0 release or the 0.11.1 release from celt to work properly.
The second celt0.71 that mga provides works very fine (it does not brake mumble).


Note that on mga3 mumble worked very well because we had used celt-0.11.1 and not 0.11.3.
Comment 13 Samuel Verschelde 2015-02-24 19:44:06 CET
Hi David. Good news, at least knowing where the problem comes from. I think we might need to reconsider updating to 1.2.8 in mga4, since the current version is hardly usable. Ideally, we would need 1.2.8 with celt 0.11 support disabled (in mga5 too).

Or... we could negociate the use of embedded celt 0.11 in mumble 1.2.3, if you commit to patch any security issue that would happen to have a fix for celt 0.11.3.
Comment 14 Eric Petit 2015-02-24 20:10:26 CET
since 2014-02-22, i use latest source available from mumble and Celt website, after compilation they work fine both together :D
Comment 15 David GEIGER 2015-02-26 00:13:04 CET
This is now fixed for mga4 !! Assigned to QA


Advisory:
========================

Since Mageia 4 mumble-1.2.3 does not work anymore properly due to a broken sound when you try to discuss on a Mumble server 'xxxx'.
After a long search we (Samuel and me) found that it is our celt-0.11 codec the fault.
Indeed since Mageia 4 we updated our celt-0.11 from celt-0.11.1 to celt-0.11.3 and this one is no more compatible with Mumble.
Mumble can only use celt-0.11.0 or celt-0.11.1 to work and not with highter versions.

So to fix this broken sound we have added a patch to disable the celt-0.11.3 codec and finally only use the second one needed on celt071-0.7.1.
With this one Mumble works again correctly.

Also seen that most Mumble servers have switched on Opus support, celt071 is very sufficient.

========================

Packages in 4/core/updates_testing:
========================
mumble-1.2.3-14.2.mga4
mumble-11x-1.2.3-14.2.mga4
mumble-protocol-kde4-1.2.3-14.2.mga4
mumble-plugins-1.2.3-14.2.mga4
mumble-server-1.2.3-14.2.mga4


Source RPM: 
========================
mumble-1.2.3-14.2.mga4.src.rpm


How to test this update request:
========================
- Install 'mumble' from core/release or core/updates.
- Launch Mumble on console with 'mumble' and check which celt codecs are found and used.
  Normally you must have the following output: 

$ mumble
G15LCDEngineUnix: Unable to connect to G15Daemon.
CELT bitstream 8000000b from libcelt071.so.0.0.0
CELT bitstream 80000010 from libcelt0.so.2.0.0
Locale is fr_FR
Database SQLite: "3.8.6" 
*** WARNING *** The program 'mumble' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=mumble>
Overlay: Listening on "/home/david/.MumbleOverlayPipe"
$

Here you can see that both libcelt are found and used by Mumble:
'CELT bitstream 8000000b from libcelt071.so.0.0.0' = celt071-0.7.1
'CELT bitstream 80000010 from libcelt0.so.2.0.0'   = celt-0.11.3


- Now install 'mumble' from core/updates_testing and recheck which celt codecs are found and used.
  Normally now you must have the following output:

$ mumble
G15LCDEngineUnix: Unable to connect to G15Daemon.
CELT bitstream 8000000b from libcelt071.so.0.0.0
Locale is fr_FR
Database SQLite: "3.8.6" 
*** WARNING *** The program 'mumble' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=mumble>
Overlay: Listening on "/home/david/.MumbleOverlayPipe"

Good!! Mumble finds and uses only 'libcelt071.so.0.0.0'.

- If you have a Mumble experience you can test directly on a server that you want, to make sure it really works.

Assignee: geiger.david68210 => qa-bugs
Source RPM: mumble => mumble-1.2.3-14.1.mga4
Whiteboard: (none) => has_procedure

Samuel Verschelde 2015-02-26 16:03:22 CET

Summary: mumble have an broken sound => mumble: broken output and input sound when using system CELT 0.11

Comment 16 Samuel Verschelde 2015-02-26 16:05:26 CET
(In reply to Eric Petit from comment #14)
> since 2014-02-22, i use latest source available from mumble and Celt
> website, after compilation they work fine both together :D

mumble builds its own 0.11.0 version of CELT, so it won't use the CELT version you build from CELT's website, AFAIK.
Comment 17 Samuel Verschelde 2015-02-26 16:10:42 CET
Reworded Advisory:
========================

Mageia 4 ships with an old version of mumble, 1.2.3, which uses the CELT codec by default. Unfortunately CELT 0.11.3 provided in Mageia 4 is not compatible anymore with mumble. This leads to very horrible sounds when trying to discuss with other users via a mumble server.

This update disables celt 0.11 support in mumble so that it falls back to celt 0.7.1 which is also provided by Mageia 4, or speex. This makes for a usable mumble client although not optimal. We are sorry about this situation and made sure Mageia 5 will have a greater mumble experience, with the recent OPUS codec which replaces CELT in recent mumble versions.
Comment 18 Herman Viaene 2015-03-06 16:15:37 CET
MGA4-64 on HP-Probook 6555b KDE.
No installation issues
As I never used mumble before, I limited myself to check the outputs of the mumble commands as described in Comment 15. I confirm the outcome of the "old" and testing packages.

CC: (none) => herman.viaene
Whiteboard: has_procedure => has_procedure MGA4-64 OK

Comment 19 Samuel Verschelde 2015-03-06 16:18:34 CET
To test mumble you can start it, follow the instructions to setup microphone and sound, then connect to a public server (lots of them are listed inside mumble) and try to speak with someone telling them you're doing a test.

That's for the client part. Setting your own mumble server and connecting to it would be even better.

I can test MGA4-64 but will probably need someone else to test MGA4-32.
Comment 20 Herman Viaene 2015-03-06 16:31:37 CET
MGA4-32 on AcerD620 Xfce
No installation issues. Same outcome as in my Comment 18.
To Samuel: I am flattered by your confidence in me, but I think I know my limits. And sound in Linux in general is still somewhat uncomfortable to me, I tend to run in circles around it (always had issues with Skype), so I refrain from going any further here.
Comment 21 Samuel Verschelde 2015-03-07 16:56:29 CET
So,

I installed mumble-server from updates_testing, added a password in /etc/mumble-server.ini (well commented config file, easy to set up), and started the mumble service. MGA4 64 server.

I also started mumble, from updates_testing too (on a different computer, MGA4 64 too) and connected to that server and asked david_david, who happened to be the one who was available at that moment, to connect to it using that same version from updates_testing on MGA 32.

Everything worked well.

We also connected to another server, whose system was not mageia, and it worked also.

Whiteboard: has_procedure MGA4-64 OK => has_procedure MGA4-64-OK MGA4-32-OK

Comment 22 Rémi Verschelde 2015-03-08 11:53:02 CET
Advisory uploaded, validating. Please push to 4 core/updates.

Keywords: (none) => validated_update
Whiteboard: has_procedure MGA4-64-OK MGA4-32-OK => has_procedure MGA4-64-OK MGA4-32-OK advisory
CC: (none) => remi, sysadmin-bugs

Comment 23 Mageia Robot 2015-03-08 21:48:14 CET
An update for this issue has been pushed to Mageia Updates repository.

http://advisories.mageia.org/MGAA-2015-0025.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.