CoreAudioCaptureSource reports 3 or 5 channel audio output; actually only mono
authorjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 May 2017 21:31:05 +0000 (21:31 +0000)
committerjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 May 2017 21:31:05 +0000 (21:31 +0000)
https://bugs.webkit.org/show_bug.cgi?id=171940

Reviewed by Eric Carlson.

Asking for the Input VPIO stream format will return the internal mic format, before processing. Instead
ask for the input bus's output format, which is post processing, which will return the correct number
of channels (one).

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216623 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp

index 82c9d25..ee74ad2 100644 (file)
@@ -1,3 +1,17 @@
+2017-05-10  Jer Noble  <jer.noble@apple.com>
+
+        CoreAudioCaptureSource reports 3 or 5 channel audio output; actually only mono
+        https://bugs.webkit.org/show_bug.cgi?id=171940
+
+        Reviewed by Eric Carlson.
+
+        Asking for the Input VPIO stream format will return the internal mic format, before processing. Instead
+        ask for the input bus's output format, which is post processing, which will return the correct number
+        of channels (one).
+
+        * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+        (WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
+
 2017-05-10  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r216591.
index c33777e..1f65e69 100644 (file)
@@ -316,7 +316,7 @@ OSStatus CoreAudioSharedUnit::configureMicrophoneProc()
     AudioStreamBasicDescription microphoneProcFormat = { };
 
     UInt32 size = sizeof(microphoneProcFormat);
-    err = AudioUnitGetProperty(m_ioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, inputBus, &microphoneProcFormat, &size);
+    err = AudioUnitGetProperty(m_ioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, inputBus, &microphoneProcFormat, &size);
     if (err) {
         LOG(Media, "CoreAudioSharedUnit::configureMicrophoneProc(%p) unable to get output stream format, error %d (%.4s)", this, (int)err, (char*)&err);
         return err;