Support stereo capture in gUM

RESOLVED FIXED in Firefox 55

Status

()

P4
normal
Rank:
45
RESOLVED FIXED
5 years ago
a year ago

People

(Reporter: worik.stanton, Assigned: achronop)

Tracking

({dev-doc-complete})

30 Branch
mozilla55
x86
Linux
dev-doc-complete
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(platform-rel +, firefox55 fixed)

Details

(Whiteboard: [platform-rel-Facebook])

Attachments

(5 attachments, 1 obsolete attachment)

(Reporter)

Description

5 years ago
Created attachment 8374621 [details]
TestMicrophone.html

User Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 (Beta/Release)
Build ID: 20140211004037

Steps to reproduce:

Capturing the microphone using a stereo input device (in my case a M-Audio audio interface with a microphone connected to one side with an XLR cable) results in the signal being split between the left and right channels.

I have attached a web page that illustrates the bug.


Actual results:

The sound is mono


Expected results:

It should have been stereo. One channel having the microphone the other silence.

I have tested my gear thoroughly and the fault seems to be in the browser.
(Reporter)

Updated

5 years ago
Version: 29 Branch → 30 Branch
(In reply to Worik Stanton from comment #0)
> Actual results:
> The sound is mono
Sounds stereo to me in nightly 30.0a1 (2014-02-20), win 7 x64
Component: Web Audio → WebRTC: Audio/Video
Status: UNCONFIRMED → NEW
backlog: --- → webRTC+
Rank: 45
Ever confirmed: true
Priority: -- → P4
Summary: navigator.mozGetUserMedia({audio:true},... mixes stereo channels into mono → Support stereo capture in gUM

Comment 2

3 years ago
Created attachment 8725848 [details]
ff-stereo-gum.html

This attachment is an updated example demonstrating the lack of stereo audio capture support with getUserMedia.  It uses the MediaDevices.getUserMedia() method along with setting constraints to disable echo cancellation and setting channel count to 2.  Tested in Firefox v47.0a1.  For testing, I recommend using this audio file:  http://www.kozco.com/tech/LRMonoPhase4.wav  You can use a loopback audio driver (http://vb-audio.pagesperso-orange.fr/Cable/) to test without extra hardware.

Comment 3

3 years ago
I came here from bug #818618 and bug #1269019, since I could not manage to get a stereo signal transmitted via WebRTC from Firefox to Chrome. It works the other side around (by disabling echo cancellation in Chrome), but if I try the same in Firefox, I always get a mono signal. I'm using a virtual sound device (Soundflower on Mac) hooked to Ableton Live as an input signal.

Is there any work-around for getting a stereo signal from a device in Firefox? As being said, I'd like to transmit this via WebRTC to another peer. For my scenario (musicians), stereo support is crucial.
We need to things to capture stereo audio in gUM.

- Mono is hardcoded in https://dxr.mozilla.org/mozilla-central/source/dom/media/GraphDriver.cpp?from=GraphDriver.cpp#540
- Only code for mono is present in the MediaEngineWebRTCAudio code: https://dxr.mozilla.org/mozilla-central/source/dom/media/webrtc/MediaEngineWebRTCAudio.cpp#725

This might not be very hard. Also note that bug 1271585, with the proper constraints (to remove echo cancellation and other processing), make gUM skip the WebRTC processing code altogether, ensuring no loss at the bottom and high-end (there was a high pass and a resampling pass that destroyed a bunch of high frequency partials).

Updated

2 years ago
Whiteboard: platform-rel-Facebook
platform-rel: --- → +
Whiteboard: platform-rel-Facebook → [platform-rel-Facebook]
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 8

2 years ago
mozreview-review
Comment on attachment 8859123 [details]
Bug 971528 - Expect stereo input in MediaEngineWebRTCMicrophoneSource.

https://reviewboard.mozilla.org/r/131168/#review133730

::: dom/media/webrtc/MediaEngineWebRTCAudio.cpp:618
(Diff revision 1)
> +        "GraphDriver only supports mono and stereo audio for now");
> +
>      nsAutoPtr<AudioSegment> segment(new AudioSegment());
> +    RefPtr<SharedBuffer> buffer =
> +      SharedBuffer::Create(aFrames * aChannels * sizeof(T));
>      AutoTArray<const T*, 1> channels;

Drop the const here.

::: dom/media/webrtc/MediaEngineWebRTCAudio.cpp:618
(Diff revision 1)
> +        "GraphDriver only supports mono and stereo audio for now");
> +
>      nsAutoPtr<AudioSegment> segment(new AudioSegment());
> +    RefPtr<SharedBuffer> buffer =
> +      SharedBuffer::Create(aFrames * aChannels * sizeof(T));
>      AutoTArray<const T*, 1> channels;

Make this `<T*, 2>`, so we have the right amount of storage on the stack and we can save an alloc.

::: dom/media/webrtc/MediaEngineWebRTCAudio.cpp:621
(Diff revision 1)
> +    RefPtr<SharedBuffer> buffer =
> +      SharedBuffer::Create(aFrames * aChannels * sizeof(T));
>      AutoTArray<const T*, 1> channels;
> -    // XXX Bug 971528 - Support stereo capture in gUM
> -    MOZ_ASSERT(aChannels == 1,
> -        "GraphDriver only supports us stereo audio for now");
> +    if (aChannels == 1) {
> +      PodCopy(static_cast<T*>(buffer->Data()),
> +              aBuffer, aFrames * aChannels);

aChannels is 1, and this is inside an `if()`, you can drop the multiplication.

::: dom/media/webrtc/MediaEngineWebRTCAudio.cpp:631
(Diff revision 1)
> +      channels[0] = samples;
> +      channels[1] = samples + aFrames;
> +      DeinterleaveAndConvertBuffer(aBuffer,
> +                                   aFrames,
> +                                   aChannels,
> +                                   const_cast<T**>(channels.Elements()));

Drop the `const_cast` here.
Attachment #8859123 - Flags: review?(padenot)

Comment 9

2 years ago
mozreview-review
Comment on attachment 8859122 [details]
Bug 971528 - Allow stereo capture in AudioCallbackDriver.

https://reviewboard.mozilla.org/r/131166/#review133728

::: dom/media/GraphDriver.cpp:675
(Diff revision 1)
> +  if (mGraphImpl->mInputWanted) {
> +    StaticMutexAutoLock lock(AudioInputCubeb::Mutex());
> +    // Support stereo input when available
> +    uint32_t maxInputChannels = 0;
> +    if (AudioInputCubeb::GetDeviceMaxChannels(mGraphImpl->mInputDeviceID, maxInputChannels) == 0 &&
> +        maxInputChannels > 1) {

We should be more tight here, I think, `> 1` is not equal to `2`.
Attachment #8859122 - Flags: review?(padenot)
(Assignee)

Updated

2 years ago
Assignee: nobody → achronop
(Assignee)

Comment 10

2 years ago
mozreview-review-reply
Comment on attachment 8859122 [details]
Bug 971528 - Allow stereo capture in AudioCallbackDriver.

https://reviewboard.mozilla.org/r/131166/#review133728

> We should be more tight here, I think, `> 1` is not equal to `2`.

Since this method offers the max number of channels, if the device is capable of, let's say, 6 channels it can be configured for stereo. Is it wrong?
(Assignee)

Comment 11

2 years ago
mozreview-review-reply
Comment on attachment 8859123 [details]
Bug 971528 - Expect stereo input in MediaEngineWebRTCMicrophoneSource.

https://reviewboard.mozilla.org/r/131168/#review133730

> Drop the const here.

The method segment->AppendFrames() requires nsTArray<const T *> on second argument. On the other hand the method DeinterleaveAndConvertBuffer() requires non const values. If I change it to AutoTArray<T*, 1> I will have to remove the const cast from the one method and add it to the other. Why do you think it should not be a const?

> Make this `<T*, 2>`, so we have the right amount of storage on the stack and we can save an alloc.

In that case when channel is mono we get more space than we need.

> Drop the `const_cast` here.

See reply above.
Comment hidden (mozreview-request)
Comment on attachment 8859123 [details]
Bug 971528 - Expect stereo input in MediaEngineWebRTCMicrophoneSource.

We had chat on irc, clearing r? for now.
Attachment #8859123 - Flags: review?(padenot)
Comment hidden (mozreview-request)

Comment 15

2 years ago
mozreview-review
Comment on attachment 8859123 [details]
Bug 971528 - Expect stereo input in MediaEngineWebRTCMicrophoneSource.

https://reviewboard.mozilla.org/r/131168/#review135760
Attachment #8859123 - Flags: review?(padenot) → review+
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 18

2 years ago
mozreview-review
Comment on attachment 8859122 [details]
Bug 971528 - Allow stereo capture in AudioCallbackDriver.

https://reviewboard.mozilla.org/r/131166/#review135800

::: dom/media/GraphDriver.cpp:672
(Diff revision 2)
> -  input.layout = CUBEB_LAYOUT_MONO;
> +  input.layout = CUBEB_LAYOUT_UNDEFINED;
> +
> +#ifdef MOZ_WEBRTC
> +  if (mGraphImpl->mInputWanted) {
> +    StaticMutexAutoLock lock(AudioInputCubeb::Mutex());
> +    // Support stereo input when available

Fix this comment that does not apply anymore.
Attachment #8859122 - Flags: review?(padenot) → review+
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 21

2 years ago
Pushed by achronop@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/cce59c2a2baa
Allow stereo capture in AudioCallbackDriver. r=padenot
https://hg.mozilla.org/integration/autoland/rev/e282e41cd599
Expect stereo input in MediaEngineWebRTCMicrophoneSource. r=padenot
Backed out for crashing in mda tests, e.g. dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html and browser-chrome mochitests:

https://hg.mozilla.org/integration/autoland/rev/f5c43a9f8510ad50cf45248fe306707aa059b991
https://hg.mozilla.org/integration/autoland/rev/f61b1bc0bee770b16ec3dac814ebd088d6044c5a

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=e282e41cd5997bb5e91340b863fcfaaad00597d8&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=93803546&repo=autoland

[task 2017-04-24T16:48:40.582970Z] 16:48:40     INFO - Using addStream.
[task 2017-04-24T16:48:40.584221Z] 16:48:40     INFO - PeerConnectionWrapper (pcLocal): "onnegotiationneeded" event fired
[task 2017-04-24T16:48:40.585403Z] 16:48:40     INFO - TEST-PASS | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | addStream returns sender 
[task 2017-04-24T16:48:40.586728Z] 16:48:40     INFO - TEST-PASS | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | track has id 
[task 2017-04-24T16:48:40.588168Z] 16:48:40     INFO - TEST-PASS | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | track has kind 
[task 2017-04-24T16:48:40.589393Z] 16:48:40     INFO - TEST-PASS | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | track has id 
[task 2017-04-24T16:48:40.590439Z] 16:48:40     INFO - TEST-PASS | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | track has kind 
[task 2017-04-24T16:48:40.591419Z] 16:48:40     INFO - Run step 15: PC_REMOTE_GUM
[task 2017-04-24T16:48:40.592847Z] 16:48:40     INFO - Get 1 local streams
[task 2017-04-24T16:48:40.593547Z] 16:48:40     INFO - Call getUserMedia for {"audio":true,"video":true}
[task 2017-04-24T16:48:40.598126Z] 16:48:40     INFO - Buffered messages finished
[task 2017-04-24T16:48:40.598834Z] 16:48:40     INFO - TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | application timed out after 330 seconds with no output
[task 2017-04-24T16:48:40.600258Z] 16:48:40    ERROR - Force-terminating active process(es).
[task 2017-04-24T16:48:40.600385Z] 16:48:40     INFO - Determining child pids from psutil
[task 2017-04-24T16:48:40.601429Z] 16:48:40     INFO - Found child pids: []
[task 2017-04-24T16:48:40.601951Z] 16:48:40     INFO - Killing process: 2985
[task 2017-04-24T16:48:40.602044Z] 16:48:40     INFO - TEST-INFO | started process screentopng
[task 2017-04-24T16:48:40.880099Z] 16:48:40     INFO - TEST-INFO | screentopng: exit 0
[task 2017-04-24T16:48:41.097793Z] 16:48:41     INFO - TEST-INFO | Main app process: exit 6
[task 2017-04-24T16:48:41.097979Z] 16:48:41     INFO - Buffered messages finished
[task 2017-04-24T16:48:41.098091Z] 16:48:41    ERROR - TEST-UNEXPECTED-FAIL | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | application terminated with exit code 6
[task 2017-04-24T16:48:41.099555Z] 16:48:41     INFO - runtests.py | Application ran for: 0:06:05.229235
[task 2017-04-24T16:48:41.099659Z] 16:48:41     INFO - zombiecheck | Reading PID log: /tmp/tmplEym5mpidlog
[task 2017-04-24T16:48:41.100202Z] 16:48:41     INFO - ==> process 2985 launched child process 3007
[task 2017-04-24T16:48:41.100295Z] 16:48:41     INFO - ==> process 2985 launched child process 3046
[task 2017-04-24T16:48:41.101176Z] 16:48:41     INFO - zombiecheck | Checking for orphan process with PID: 3007
[task 2017-04-24T16:48:41.102345Z] 16:48:41     INFO - zombiecheck | Checking for orphan process with PID: 3046
[task 2017-04-24T16:48:41.104003Z] 16:48:41     INFO - mozcrash Copy/paste: /usr/local/bin/linux64-minidump_stackwalk /tmp/tmpgSHOlL.mozrunner/minidumps/5ae11828-4ff8-7fe6-b208-e062abea0a35.dmp /home/worker/workspace/build/symbols
[task 2017-04-24T16:48:48.393077Z] 16:48:48     INFO - mozcrash Saved minidump as /home/worker/workspace/build/blobber_upload_dir/5ae11828-4ff8-7fe6-b208-e062abea0a35.dmp
[task 2017-04-24T16:48:48.394296Z] 16:48:48     INFO - mozcrash Saved app info as /home/worker/workspace/build/blobber_upload_dir/5ae11828-4ff8-7fe6-b208-e062abea0a35.extra
[task 2017-04-24T16:48:48.736405Z] 16:48:48     INFO - PROCESS-CRASH | dom/media/tests/mochitest/identity/test_peerConnection_asymmetricIsolation.html | application crashed [@ linux-gate.so + 0x440]
[task 2017-04-24T16:48:48.737311Z] 16:48:48     INFO - Crash dump filename: /tmp/tmpgSHOlL.mozrunner/minidumps/5ae11828-4ff8-7fe6-b208-e062abea0a35.dmp
[task 2017-04-24T16:48:48.737993Z] 16:48:48     INFO - Operating system: Linux
[task 2017-04-24T16:48:48.738833Z] 16:48:48     INFO -                   0.0.0 Linux 3.13.0-112-generic #159-Ubuntu SMP Fri Mar 3 15:26:07 UTC 2017 x86_64
[task 2017-04-24T16:48:48.739405Z] 16:48:48     INFO - CPU: x86
[task 2017-04-24T16:48:48.739739Z] 16:48:48     INFO -      GenuineIntel family 6 model 62 stepping 4
[task 2017-04-24T16:48:48.740552Z] 16:48:48     INFO -      2 CPUs
[task 2017-04-24T16:48:48.741106Z] 16:48:48     INFO - 
[task 2017-04-24T16:48:48.741405Z] 16:48:48     INFO - GPU: UNKNOWN
[task 2017-04-24T16:48:48.742102Z] 16:48:48     INFO - 
[task 2017-04-24T16:48:48.742828Z] 16:48:48     INFO - Crash reason:  SIGABRT
[task 2017-04-24T16:48:48.743437Z] 16:48:48     INFO - Crash address: 0x405
[task 2017-04-24T16:48:48.744129Z] 16:48:48     INFO - Process uptime: not available
[task 2017-04-24T16:48:48.744809Z] 16:48:48     INFO - 
[task 2017-04-24T16:48:48.745491Z] 16:48:48     INFO - Thread 0 (crashed)
[task 2017-04-24T16:48:48.745953Z] 16:48:48     INFO -  0  linux-gate.so + 0x440
[task 2017-04-24T16:48:48.746354Z] 16:48:48     INFO -     eip = 0xf7731440   esp = 0xfffbd2d4   ebp = 0xfffbd338   ebx = 0xe1a45a00
[task 2017-04-24T16:48:48.747340Z] 16:48:48     INFO -     esi = 0xf71298d0   edi = 0xe1a45a00   eax = 0xfffffffc   ecx = 0x00000005
[task 2017-04-24T16:48:48.747759Z] 16:48:48     INFO -     edx = 0xffffffff   efl = 0x00000296
[task 2017-04-24T16:48:48.748449Z] 16:48:48     INFO -     Found by: given as instruction pointer in context
[task 2017-04-24T16:48:48.749055Z] 16:48:48     INFO -  1  libglib-2.0.so.0.4800.2 + 0x4711c
[task 2017-04-24T16:48:48.749370Z] 16:48:48     INFO -     eip = 0xf5dcc11c   esp = 0xfffbd340   ebp = 0x00000005
[task 2017-04-24T16:48:48.750111Z] 16:48:48     INFO -     Found by: previous frame's frame pointer
[task 2017-04-24T16:48:48.750662Z] 16:48:48     INFO -  2  libglib-2.0.so.0.4800.2 + 0x8cfec
[task 2017-04-24T16:48:48.750996Z] 16:48:48     INFO -     eip = 0xf5e11fec   esp = 0xfffbd350   ebp = 0x00000005
[task 2017-04-24T16:48:48.751243Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.751550Z] 16:48:48     INFO -  3  libxul.so!OnFlushEvents [nsAppShell.cpp:e282e41cd599 : 83 + 0x5]
[task 2017-04-24T16:48:48.752318Z] 16:48:48     INFO -     eip = 0xf1fa4bac   esp = 0xfffbd354   ebp = 0x00000005
[task 2017-04-24T16:48:48.752890Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.753253Z] 16:48:48     INFO -  4  libglib-2.0.so.0.4800.2 + 0x1285b0
[task 2017-04-24T16:48:48.754013Z] 16:48:48     INFO -     eip = 0xf5ead5b0   esp = 0xfffbd364   ebp = 0x00000005
[task 2017-04-24T16:48:48.754528Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.755182Z] 16:48:48     INFO -  5  libxul.so!_fini + 0x19b2dc4
[task 2017-04-24T16:48:48.755961Z] 16:48:48     INFO -     eip = 0xf559bc3c   esp = 0xfffbd374   ebp = 0x00000005
[task 2017-04-24T16:48:48.756708Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.757280Z] 16:48:48     INFO -  6  libglib-2.0.so.0.4800.2 + 0x46f8d
[task 2017-04-24T16:48:48.757673Z] 16:48:48     INFO -     eip = 0xf5dcbf8d   esp = 0xfffbd37c   ebp = 0xfffbd3a8
[task 2017-04-24T16:48:48.758401Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.758969Z] 16:48:48     INFO -  7  libxul.so!nsAppShell::ProcessNextNativeEvent [nsAppShell.cpp:e282e41cd599 : 271 + 0xc]
[task 2017-04-24T16:48:48.759513Z] 16:48:48     INFO -     eip = 0xf1fa4c42   esp = 0xfffbd3b0   ebp = 0x00000000
[task 2017-04-24T16:48:48.760124Z] 16:48:48     INFO -     Found by: previous frame's frame pointer
[task 2017-04-24T16:48:48.760674Z] 16:48:48     INFO -  8  libc-2.23.so + 0xf4142
[task 2017-04-24T16:48:48.761315Z] 16:48:48     INFO -     eip = 0xf7413142   esp = 0xfffbd3c0   ebp = 0x00000000
[task 2017-04-24T16:48:48.762125Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.762710Z] 16:48:48     INFO -  9  libxul.so!_fini + 0x19b2dc4
[task 2017-04-24T16:48:48.763385Z] 16:48:48     INFO -     eip = 0xf559bc3c   esp = 0xfffbd3c8   ebp = 0x00000000
[task 2017-04-24T16:48:48.763835Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.764247Z] 16:48:48     INFO - 10  libxul.so!nsBaseAppShell::DoProcessNextNativeEvent [nsBaseAppShell.cpp:e282e41cd599 : 138 + 0xd]
[task 2017-04-24T16:48:48.764944Z] 16:48:48     INFO -     eip = 0xf1f75498   esp = 0xfffbd3d0   ebp = 0xfffbd3f8
[task 2017-04-24T16:48:48.765255Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.766152Z] 16:48:48     INFO - 11  libxul.so!nsBaseAppShell::OnProcessNextEvent [nsBaseAppShell.cpp:e282e41cd599 : 289 + 0xd]
[task 2017-04-24T16:48:48.766873Z] 16:48:48     INFO -     eip = 0xf1f78bc7   esp = 0xfffbd400   ebp = 0xfffbd438   esi = 0xeab41790
[task 2017-04-24T16:48:48.767463Z] 16:48:48     INFO -     edi = 0x00bbca68
[task 2017-04-24T16:48:48.767947Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.768267Z] 16:48:48     INFO - 12  libxul.so!nsThread::ProcessNextEvent [nsThread.cpp:e282e41cd599 : 1226 + 0xd]
[task 2017-04-24T16:48:48.768851Z] 16:48:48     INFO -     eip = 0xf04722a0   esp = 0xfffbd440   ebp = 0xfffbd4d8   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.769406Z] 16:48:48     INFO -     esi = 0xf71543c0   edi = 0xf55a04f0
[task 2017-04-24T16:48:48.769977Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.770560Z] 16:48:48     INFO - 13  libxul.so!NS_ProcessNextEvent [nsThreadUtils.cpp:e282e41cd599 : 393 + 0x10]
[task 2017-04-24T16:48:48.771104Z] 16:48:48     INFO -     eip = 0xf0474810   esp = 0xfffbd4e0   ebp = 0xfffbd518   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.771670Z] 16:48:48     INFO -     esi = 0xf71543c0   edi = 0xf71248a0
[task 2017-04-24T16:48:48.772191Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.772817Z] 16:48:48     INFO - 14  libxul.so!mozilla::ipc::MessagePump::Run [MessagePump.cpp:e282e41cd599 : 124 + 0xc]
[task 2017-04-24T16:48:48.773413Z] 16:48:48     INFO -     eip = 0xf08316b4   esp = 0xfffbd520   ebp = 0xfffbd568   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.773925Z] 16:48:48     INFO -     esi = 0xf71f64f0   edi = 0xf71248a0
[task 2017-04-24T16:48:48.774506Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.775067Z] 16:48:48     INFO - 15  libxul.so!MessageLoop::RunInternal [message_loop.cc:e282e41cd599 : 238 + 0x14]
[task 2017-04-24T16:48:48.775688Z] 16:48:48     INFO -     eip = 0xf07ffe8e   esp = 0xfffbd570   ebp = 0xfffbd598   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.776184Z] 16:48:48     INFO -     esi = 0xf71248a0   edi = 0xf71543c0
[task 2017-04-24T16:48:48.776750Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.777301Z] 16:48:48     INFO - 16  libxul.so!MessageLoop::Run [message_loop.cc:e282e41cd599 : 231 + 0x7]
[task 2017-04-24T16:48:48.777890Z] 16:48:48     INFO -     eip = 0xf07ffeb3   esp = 0xfffbd5a0   ebp = 0xfffbd5c8   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.778251Z] 16:48:48     INFO -     esi = 0xf71248a0   edi = 0xf71543c0
[task 2017-04-24T16:48:48.778978Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.781190Z] 16:48:48     INFO - 17  libxul.so!nsBaseAppShell::Run [nsBaseAppShell.cpp:e282e41cd599 : 156 + 0xe]
[task 2017-04-24T16:48:48.781789Z] 16:48:48     INFO -     eip = 0xf1f72ac1   esp = 0xfffbd5d0   ebp = 0xfffbd5f8   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.782387Z] 16:48:48     INFO -     esi = 0xeab41790   edi = 0xf71543c0
[task 2017-04-24T16:48:48.782939Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.783572Z] 16:48:48     INFO - 18  libxul.so!nsAppStartup::Run [nsAppStartup.cpp:e282e41cd599 : 283 + 0x9]
[task 2017-04-24T16:48:48.784119Z] 16:48:48     INFO -     eip = 0xf2d3235e   esp = 0xfffbd600   ebp = 0xfffbd618   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.784448Z] 16:48:48     INFO -     esi = 0xec536fa0   edi = 0xf43b17a0
[task 2017-04-24T16:48:48.785041Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.785872Z] 16:48:48     INFO - 19  libxul.so!XREMain::XRE_mainRun [nsAppRunner.cpp:e282e41cd599 : 4542 + 0x16]
[task 2017-04-24T16:48:48.786665Z] 16:48:48     INFO -     eip = 0xf2db346a   esp = 0xfffbd620   ebp = 0xfffbd718   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.787280Z] 16:48:48     INFO -     esi = 0xfffbd6ac   edi = 0xf43b17a0
[task 2017-04-24T16:48:48.787842Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.788392Z] 16:48:48     INFO - 20  libxul.so!XREMain::XRE_main [nsAppRunner.cpp:e282e41cd599 : 4722 + 0x9]
[task 2017-04-24T16:48:48.788848Z] 16:48:48     INFO -     eip = 0xf2db3bc5   esp = 0xfffbd720   ebp = 0xfffbd798   ebx = 0xf559bc3c
[task 2017-04-24T16:48:48.789518Z] 16:48:48     INFO -     esi = 0xfffbd7dc   edi = 0x00000001
[task 2017-04-24T16:48:48.790188Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.790991Z] 16:48:48     INFO - 21  libxul.so!XRE_main [nsAppRunner.cpp:e282e41cd599 : 4815 + 0x6]
[task 2017-04-24T16:48:48.791456Z] 16:48:48     INFO -     eip = 0xf2db3e7a   esp = 0xfffbd7a0   ebp = 0xfffbd908   ebx = 0x08070228
[task 2017-04-24T16:48:48.791998Z] 16:48:48     INFO -     esi = 0xfffbd7dc   edi = 0xfffbea44
[task 2017-04-24T16:48:48.792277Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.793145Z] 16:48:48     INFO - 22  firefox!do_main [nsBrowserApp.cpp:e282e41cd599 : 236 + 0x21]
[task 2017-04-24T16:48:48.793957Z] 16:48:48     INFO -     eip = 0x0804d51d   esp = 0xfffbd910   ebp = 0xfffbe948   ebx = 0x08070228
[task 2017-04-24T16:48:48.794319Z] 16:48:48     INFO -     esi = 0x00000005   edi = 0xfffbea44
[task 2017-04-24T16:48:48.795038Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.795565Z] 16:48:48     INFO - 23  firefox!main [nsBrowserApp.cpp:e282e41cd599 : 307 + 0xe]
[task 2017-04-24T16:48:48.796206Z] 16:48:48     INFO -     eip = 0x0804cd3d   esp = 0xfffbe950   ebp = 0xfffbe998   ebx = 0x08070228
[task 2017-04-24T16:48:48.796967Z] 16:48:48     INFO -     esi = 0xfffbea44   edi = 0x08070448
[task 2017-04-24T16:48:48.797264Z] 16:48:48     INFO -     Found by: call frame info
[task 2017-04-24T16:48:48.798033Z] 16:48:48     INFO - 24  libc-2.23.so + 0x18637
[task 2017-04-24T16:48:48.798492Z] 16:48:48     INFO -     eip = 0xf7337637   esp = 0xfffbe9a0   ebp = 0x00000000
[task 2017-04-24T16:48:48.798837Z] 16:48:48     INFO -     Found by: previous frame's frame pointer
[task 2017-04-24T16:48:48.799572Z] 16:48:48     INFO - 25  libc-2.23.so + 0x1b2000
[task 2017-04-24T16:48:48.800012Z] 16:48:48     INFO -     eip = 0xf74d1000   esp = 0xfffbe9a4   ebp = 0x00000000
[task 2017-04-24T16:48:48.800487Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.801070Z] 16:48:48     INFO - 26  libc-2.23.so + 0x1b2000
[task 2017-04-24T16:48:48.801641Z] 16:48:48     INFO -     eip = 0xf74d1000   esp = 0xfffbe9a8   ebp = 0x00000000
[task 2017-04-24T16:48:48.802194Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.802785Z] 16:48:48     INFO - 27  libc-2.23.so + 0x18637
[task 2017-04-24T16:48:48.803375Z] 16:48:48     INFO -     eip = 0xf7337637   esp = 0xfffbe9b0   ebp = 0x00000000
[task 2017-04-24T16:48:48.803974Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.804613Z] 16:48:48     INFO - 28  libc-2.23.so + 0x1b2000
[task 2017-04-24T16:48:48.805129Z] 16:48:48     INFO -     eip = 0xf74d1000   esp = 0xfffbe9cc   ebp = 0x00000000
[task 2017-04-24T16:48:48.805596Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.806071Z] 16:48:48     INFO - 29  libc-2.23.so + 0x1b2000
[task 2017-04-24T16:48:48.806667Z] 16:48:48     INFO -     eip = 0xf74d1000   esp = 0xfffbe9dc   ebp = 0x00000000
[task 2017-04-24T16:48:48.807152Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.807602Z] 16:48:48     INFO - 30  libc-2.23.so + 0x1b2000
[task 2017-04-24T16:48:48.808204Z] 16:48:48     INFO -     eip = 0xf74d1000   esp = 0xfffbe9e0   ebp = 0x00000000
[task 2017-04-24T16:48:48.808563Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.809129Z] 16:48:48     INFO - 31  firefox + 0x4fe4
[task 2017-04-24T16:48:48.809705Z] 16:48:48     INFO -     eip = 0x0804cfe4   esp = 0xfffbea00   ebp = 0x00000000
[task 2017-04-24T16:48:48.810345Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.811038Z] 16:48:48     INFO - 32  ld-2.23.so + 0x14f10
[task 2017-04-24T16:48:48.811389Z] 16:48:48     INFO -     eip = 0xf7723f10   esp = 0xfffbea08   ebp = 0x00000000
[task 2017-04-24T16:48:48.811873Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.812296Z] 16:48:48     INFO - 33  ld-2.23.so + 0xf780
[task 2017-04-24T16:48:48.812771Z] 16:48:48     INFO -     eip = 0xf771e780   esp = 0xfffbea0c   ebp = 0x00000000
[task 2017-04-24T16:48:48.813320Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.813698Z] 16:48:48     INFO - 34  firefox + 0x4fe4
[task 2017-04-24T16:48:48.814238Z] 16:48:48     INFO -     eip = 0x0804cfe4   esp = 0xfffbea18   ebp = 0x00000000
[task 2017-04-24T16:48:48.814929Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.815564Z] 16:48:48     INFO - 35  firefox!_start + 0x21
[task 2017-04-24T16:48:48.816204Z] 16:48:48     INFO -     eip = 0x0804d005   esp = 0xfffbea20   ebp = 0x00000000
[task 2017-04-24T16:48:48.816470Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.816862Z] 16:48:48     INFO - 36  firefox!SSE2Check [nsBrowserApp.cpp:e282e41cd599 : 92 + 0x8]
[task 2017-04-24T16:48:48.817266Z] 16:48:48     INFO -     eip = 0x0804cc91   esp = 0xfffbea24   ebp = 0x00000000
[task 2017-04-24T16:48:48.817638Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.818074Z] 16:48:48     INFO - 37  firefox!__libc_csu_fini + 0x10
[task 2017-04-24T16:48:48.818457Z] 16:48:48     INFO -     eip = 0x08066510   esp = 0xfffbea30   ebp = 0xfffbea44
[task 2017-04-24T16:48:48.818863Z] 16:48:48     INFO -     Found by: stack scanning
[task 2017-04-24T16:48:48.819253Z] 16:48:48     INFO - 38  0xfffbf51e
[task 2017-04-24T16:48:48.819652Z] 16:48:48     INFO -     eip = 0xfffbf51e   esp = 0xfffbea4c   ebp = 0xfffbf4e5
[task 2017-04-24T16:48:48.820124Z] 16:48:48     INFO -     Found by: previous frame's frame pointer
[task 2017-04-24T16:48:48.820491Z] 16:48:48     INFO - 39  0x6f772f65
[task 2017-04-24T16:48:48.820867Z] 16:48:48     INFO -     eip = 0x6f772f65   esp = 0xfffbf4ed   ebp = 0x6d6f682f
[task 2017-04-24T16:48:48.821318Z] 16:48:48     INFO -     Found by: previous frame's frame pointer
Flags: needinfo?(achronop)
Comment hidden (mozreview-request)
Comment on attachment 8861347 [details]
Bug 971528 - Fix backout issue.

I've looked at this upstream.
Attachment #8861347 - Flags: review?(padenot)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
(Assignee)

Updated

2 years ago
Attachment #8861347 - Attachment is obsolete: true

Comment 27

2 years ago
Pushed by achronop@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/e0bab3ab79ff
Allow stereo capture in AudioCallbackDriver. r=padenot
https://hg.mozilla.org/integration/autoland/rev/b1eaf2cd0068
Expect stereo input in MediaEngineWebRTCMicrophoneSource. r=padenot
(Assignee)

Updated

2 years ago
Flags: needinfo?(achronop)
backed out for causing asan issues like https://treeherder.mozilla.org/logviewer.html#?job_id=94773624&repo=autoland
Flags: needinfo?(achronop)

Comment 30

2 years ago
Backout by kwierso@gmail.com:
https://hg.mozilla.org/mozilla-central/rev/b3f24661da3b
Backed out changeset b1eaf2cd0068 
https://hg.mozilla.org/mozilla-central/rev/df784708d068
Backed out changeset e0bab3ab79ff for asan mda failures on a CLOSED TREE
Keywords: dev-doc-needed
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
(Assignee)

Updated

a year ago
Depends on: 1367646
Flags: needinfo?(achronop)

Comment 37

a year ago
mozreview-review
Comment on attachment 8872316 [details]
Bug 971528 - Allocate given number of channels for WebRTC mic source.

https://reviewboard.mozilla.org/r/143820/#review148806
Attachment #8872316 - Flags: review?(rjesup) → review+

Comment 38

a year ago
Pushed by achronop@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/4481be95f232
Allow stereo capture in AudioCallbackDriver. r=padenot
https://hg.mozilla.org/integration/autoland/rev/c37d2cdef062
Expect stereo input in MediaEngineWebRTCMicrophoneSource. r=padenot
https://hg.mozilla.org/integration/autoland/rev/08a538f6350b
Allocate given number of channels for WebRTC mic source. r=jesup
Backed out for build bustage:

https://hg.mozilla.org/integration/autoland/rev/6c3dd2bfed0ae70695807a49150808a85d7fc368
https://hg.mozilla.org/integration/autoland/rev/1500c30b6a53ae7191086603cddf77b0b4567755
https://hg.mozilla.org/integration/autoland/rev/9e3fba916ae2f3773c49d32673dee1ddff60a33c

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=08a538f6350be53424c64b7d36f2be2c332dafbb&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=103749214&repo=autoland

[task 2017-06-01T16:21:20.048159Z] 16:21:20     INFO -  In file included from /home/worker/workspace/build/src/dom/media/webrtc/MediaEngineWebRTC.cpp:17:
[task 2017-06-01T16:21:20.048264Z] 16:21:20     INFO -  /home/worker/workspace/build/src/dom/media/webrtc/MediaEngineWebRTC.h:279:9: error: invalid argument type 'cubeb_device_collection' to unary expression
[task 2017-06-01T16:21:20.048301Z] 16:21:20     INFO -      if (!mDevices || devindex < 0) {
[task 2017-06-01T16:21:20.048326Z] 16:21:20     INFO -          ^~~~~~~~~
[task 2017-06-01T16:21:20.049225Z] 16:21:20     INFO -  /home/worker/workspace/build/src/dom/media/webrtc/MediaEngineWebRTC.h:282:25: error: member reference type 'cubeb_device_collection' is not a pointer; did you mean to use '.'?
[task 2017-06-01T16:21:20.049291Z] 16:21:20     INFO -      aChannels = mDevices->device[devindex]->max_channels;
[task 2017-06-01T16:21:20.049643Z] 16:21:20     INFO -                  ~~~~~~~~^~
[task 2017-06-01T16:21:20.050315Z] 16:21:20     INFO -                          .
[task 2017-06-01T16:21:20.050751Z] 16:21:20     INFO -  /home/worker/workspace/build/src/dom/media/webrtc/MediaEngineWebRTC.h:282:43: error: member reference type 'cubeb_device_info' is not a pointer; did you mean to use '.'?
[task 2017-06-01T16:21:20.051261Z] 16:21:20     INFO -      aChannels = mDevices->device[devindex]->max_channels;
[task 2017-06-01T16:21:20.051742Z] 16:21:20     INFO -
Flags: needinfo?(achronop)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 43

a year ago
Pushed by achronop@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/da4097e1d4ef
Allow stereo capture in AudioCallbackDriver. r=padenot
https://hg.mozilla.org/integration/autoland/rev/f655c216934b
Expect stereo input in MediaEngineWebRTCMicrophoneSource. r=padenot
https://hg.mozilla.org/integration/autoland/rev/73260f7c6dae
Allocate given number of channels for WebRTC mic source. r=jesup

Comment 44

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/da4097e1d4ef
https://hg.mozilla.org/mozilla-central/rev/f655c216934b
https://hg.mozilla.org/mozilla-central/rev/73260f7c6dae
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox55: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
(Assignee)

Updated

a year ago
Flags: needinfo?(achronop)
(Assignee)

Updated

a year ago
See Also: → bug 1393401
(Assignee)

Updated

a year ago
No longer depends on: 1407088
You need to log in before you can comment on or make changes to this bug.