Bug 1395593 - Don't query the maximum channel count in ::PlayAudio using cubeb. r?achronop draft
authorPaul Adenot <paul@paul.cx>
Thu, 31 Aug 2017 17:14:34 +0200
changeset 656697 fe1d62cbd616f9c407396e18f96952ef789bee4f
parent 656655 fb22415719a9d971a2646fa2d1b74e134ca00c3d
child 729212 6a5e5b166ea251e847b83f1ed4443c318b8c4c79
push id77290
push userpaul@paul.cx
push dateThu, 31 Aug 2017 15:15:24 +0000
reviewersachronop
bugs1395593
milestone57.0a1
Bug 1395593 - Don't query the maximum channel count in ::PlayAudio using cubeb. r?achronop MozReview-Commit-ID: 97ri5vhzsRF
dom/media/GraphDriver.h
dom/media/MediaStreamGraph.cpp
--- a/dom/media/GraphDriver.h
+++ b/dom/media/GraphDriver.h
@@ -440,16 +440,22 @@ public:
     MOZ_ASSERT(OnThread());
     mAudioInput = nullptr;
   }
 
   AudioCallbackDriver* AsAudioCallbackDriver() override {
     return this;
   }
 
+  uint32_t OutputChannelCount()
+  {
+    MOZ_ASSERT(mOuputChannels != 0 && mOuputChannels <= 8);
+    return mOuputChannels;
+  }
+
   /* Enqueue a promise that is going to be resolved when a specific operation
    * occurs on the cubeb stream. */
   void EnqueueStreamAndPromiseForOperation(MediaStream* aStream,
                                          void* aPromise,
                                          dom::AudioContextOperation aOperation);
 
   /**
    * Whether the audio callback is processing. This is for asserting only.
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -943,17 +943,18 @@ MediaStreamGraphImpl::PlayAudio(MediaStr
         output.ApplyVolume(volume);
       }
       t = end;
     }
     audioOutput.mLastTickWritten = offset;
 
     // Need unique id for stream & track - and we want it to match the inserter
     output.WriteTo(LATENCY_STREAM_ID(aStream, track->GetID()),
-                                     mMixer, AudioChannelCount(),
+                                     mMixer,
+                                     CurrentDriver()->AsAudioCallbackDriver()->OutputChannelCount(),
                                      mSampleRate);
   }
   return ticksWritten;
 }
 
 void
 MediaStreamGraphImpl::OpenAudioInputImpl(int aID,
                                          AudioDataListener *aListener)