mumble crashes on multi-speaker setups

Bug #1212743 reported by Chris J Arges
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mumble (Ubuntu)
New
Undecided
Unassigned
Precise
Won't Fix
Medium
Unassigned

Bug Description

SRU Justification:

[Impact]
 * Users of more complex usbaudio devices may not be able to use mumble.

[Test Case]
 * Get a usbaudio device with multiple outputs and inputs (more than 2/2). Plus it in and set it to the default device in PulseAudio. Use default PA device in Mumble. Start mumble.

[Regression Potential]
 * This is an upstream patch, but has been modified to focus only on the specific fixes. I've been able to do some testing with this patch.

--

When starting up mumble, if you have a multiple outputs it may crash.

The commit c245e2d1678c3f7b15e96382f36075b9a92ec031 in mumble git fixes the issue.
The issue is fixed in Quantal and later.

Chris J Arges (arges)
Changed in mumble (Ubuntu Precise):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Chris J Arges (arges)
Revision history for this message
Chris J Arges (arges) wrote :

This patch fixes the issue, and I've been able to do a test build and confirm it works with my usbaudio device (focusrite scarlett 18i8 and my usb headset).

description: updated
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Thanks for submitting this debdiff.

This part doesn't look quite right:

+@@ -295,12 +296,13 @@ void PulseAudioSystem::eventCallback(pa_
+ pa_stream_unref(pasSpeaker);
+
+ pa_sample_spec pss = qhSpecMap.value(edev);
++ pa_channel_map pcm = qhChanMap.value(edev);
+ if (pss.rate == 0)
+ pss.rate = SAMPLE_RATE;
+ pss.channels = 1;
+ if ((pss.format != PA_SAMPLE_FLOAT32NE) && (pss.format != PA_SAMPLE_S16NE))
+ pss.format = PA_SAMPLE_FLOAT32NE;
+- pasSpeaker = pa_stream_new(pacContext, "Mumble Speakers (Echo)", &pss, NULL);
++ pasSpeaker = pa_stream_new(pacContext, "Mumble Speakers (Echo)", &pss, (pss.channels == 1) ? NULL : &pcm);
+ pa_stream_set_state_callback(pasSpeaker, stream_callback, this);
+ pa_stream_set_read_callback(pasSpeaker, read_callback, this);
+ }

if pss.channels is forced to 1, why add the test later on?
Either that whole change isn't needed, or you need some more of the changes from the original commit:

https://github.com/mumble-voip/mumble/commit/c245e2d1678c3f7b15e96382f36075b9a92ec031

Could you please clarify, modify the debdiff, and test?

Thanks!

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Please re-subscribe ubuntu-sponsors once you've clarified/updated the diff. thanks!

Chris J Arges (arges)
Changed in mumble (Ubuntu Precise):
assignee: Chris J Arges (arges) → nobody
Revision history for this message
Chris Knadle (chris-knadle) wrote :

The git commit referenced is included in mumble 1.2.12-1ubuntu1 (and probably versions before)

Revision history for this message
Steve Langasek (vorlon) wrote :

The Precise Pangolin has reached end of life, so this bug will not be fixed for that release

Changed in mumble (Ubuntu Precise):
status: In Progress → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.