Bug 1307630 - Have videoTrack.getSettings() return settings for video, not audio, from source with both. draft
authorJan-Ivar Bruaroey <jib@mozilla.com>
Tue, 04 Oct 2016 19:31:52 -0400
changeset 420886 fd3071c3c06352c925698be30d0f8dc38e7ac110
parent 420680 42c95d88aaaa7c2eca1d278399421d437441ac4d
child 532934 1b54bc46ef1bea7cef6c404e47bbb51ee2c6f6b6
push id31336
push userjbruaroey@mozilla.com
push dateTue, 04 Oct 2016 23:35:26 +0000
bugs1307630
milestone52.0a1
Bug 1307630 - Have videoTrack.getSettings() return settings for video, not audio, from source with both. MozReview-Commit-ID: LkJnBuf1Fl0
dom/media/MediaManager.cpp
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -352,23 +352,30 @@ public:
   bool CapturingBrowser()
   {
     MOZ_ASSERT(NS_IsMainThread());
     return mVideoDevice && !mStopped &&
            mVideoDevice->GetSource()->IsAvailable() &&
            mVideoDevice->GetMediaSource() == dom::MediaSourceEnum::Browser;
   }
 
-  void GetSettings(dom::MediaTrackSettings& aOutSettings)
+  void GetSettings(dom::MediaTrackSettings& aOutSettings, TrackID aTrackID)
   {
-    if (mVideoDevice) {
-      mVideoDevice->GetSource()->GetSettings(aOutSettings);
-    }
-    if (mAudioDevice) {
-      mAudioDevice->GetSource()->GetSettings(aOutSettings);
+    switch (aTrackID) {
+      case kVideoTrack:
+        if (mVideoDevice) {
+          mVideoDevice->GetSource()->GetSettings(aOutSettings);
+        }
+        break;
+
+      case kAudioTrack:
+        if (mAudioDevice) {
+          mAudioDevice->GetSource()->GetSettings(aOutSettings);
+        }
+        break;
     }
   }
 
   // implement in .cpp to avoid circular dependency with MediaOperationTask
   // Can be invoked from EITHER MainThread or MSG thread
   void Stop();
 
   void
@@ -1163,17 +1170,17 @@ public:
           }
           return mListener->ApplyConstraintsToTrack(aWindow, mTrackID, aConstraints);
         }
 
         void
         GetSettings(dom::MediaTrackSettings& aOutSettings) override
         {
           if (mListener) {
-            mListener->GetSettings(aOutSettings);
+            mListener->GetSettings(aOutSettings, mTrackID);
           }
         }
 
         void Stop() override
         {
           if (mListener) {
             mListener->StopTrack(mTrackID);
             mListener = nullptr;