Bug 1307630 - Have videoTrack.getSettings() return settings for video, not audio, from source with both.
MozReview-Commit-ID: LkJnBuf1Fl0
--- 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;