Bug 1179084 - Implement MediaTrackCapabilities. r=webidl,webrtc-reviewers,jib,smaug

Differential Revision: https://phabricator.services.mozilla.com/D219117
This commit is contained in:
Dan Baker
2024-09-19 19:52:36 +00:00
parent 3ca1176939
commit b7e43a547f
6 changed files with 89 additions and 55 deletions

View File

@@ -308,6 +308,9 @@ void MediaStreamTrack::Stop() {
NotifyEnded();
}
void MediaStreamTrack::GetCapabilities(dom::MediaTrackCapabilities& aResult,
CallerType aCallerType) {}
void MediaStreamTrack::GetConstraints(dom::MediaTrackConstraints& aResult) {
aResult = mConstraints;
}

View File

@@ -11,6 +11,7 @@
#include "PrincipalHandle.h"
#include "mozilla/DOMEventTargetHelper.h"
#include "mozilla/dom/MediaStreamTrackBinding.h"
#include "mozilla/dom/MediaTrackCapabilitiesBinding.h"
#include "mozilla/dom/MediaTrackSettingsBinding.h"
#include "mozilla/media/MediaUtils.h"
#include "mozilla/WeakPtr.h"
@@ -438,6 +439,7 @@ class MediaStreamTrack : public DOMEventTargetHelper, public SupportsWeakPtr {
void SetEnabled(bool aEnabled);
bool Muted() { return mMuted; }
void Stop();
void GetCapabilities(MediaTrackCapabilities& aResult, CallerType aCallerType);
void GetConstraints(dom::MediaTrackConstraints& aResult);
void GetSettings(dom::MediaTrackSettings& aResult, CallerType aCallerType);

View File

@@ -109,7 +109,8 @@ interface MediaStreamTrack : EventTarget {
attribute EventHandler onended;
MediaStreamTrack clone ();
undefined stop ();
// MediaTrackCapabilities getCapabilities ();
[NeedsCallerType]
MediaTrackCapabilities getCapabilities ();
MediaTrackConstraints getConstraints ();
[NeedsCallerType]
MediaTrackSettings getSettings ();

View File

@@ -0,0 +1,39 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
* https://w3c.github.io/mediacapture-main/getusermedia.html#dom-doublerange
* https://w3c.github.io/mediacapture-main/getusermedia.html#dom-ulongrange
* https://w3c.github.io/mediacapture-main/getusermedia.html#media-track-capabilities
*/
dictionary DoubleRange {
double max;
double min;
};
dictionary ULongRange {
[Clamp] unsigned long max;
[Clamp] unsigned long min;
};
dictionary MediaTrackCapabilities {
ULongRange width;
ULongRange height;
// DoubleRange aspectRatio;
DoubleRange frameRate;
sequence<DOMString> facingMode;
// sequence<DOMString> resizeMode;
// ULongRange sampleRate;
// ULongRange sampleSize;
sequence<boolean> echoCancellation;
sequence<boolean> autoGainControl;
sequence<boolean> noiseSuppression;
// DoubleRange latency;
ULongRange channelCount;
DOMString deviceId;
DOMString groupId;
// sequence<boolean> backgroundBlur;
};

View File

@@ -748,6 +748,7 @@ WEBIDL_FILES = [
"MediaStreamError.webidl",
"MediaStreamTrack.webidl",
"MediaStreamTrackAudioSourceNode.webidl",
"MediaTrackCapabilities.webidl",
"MediaTrackSettings.webidl",
"MediaTrackSupportedConstraints.webidl",
"MerchantValidationEvent.webidl",

View File

@@ -1,12 +1,6 @@
[MediaStreamTrack-getCapabilities.https.html]
expected:
if (os == "android") and fission: [TIMEOUT, OK]
[Setup video MediaStreamTrack getCapabilities() test for frameRate]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for facingMode]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for sampleSize]
expected: FAIL
@@ -22,72 +16,30 @@
[Setup video InputDeviceInfo getCapabilities() test for frameRate]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for groupId]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for sampleSize]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for groupId]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for height]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for sampleRate]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for channelCount]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for aspectRatio]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for echoCancellation]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for autoGainControl]
expected: FAIL
[Setup video InputDeviceInfo getCapabilities() test for facingMode]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for noiseSuppression]
expected: FAIL
[Setup video InputDeviceInfo getCapabilities() test for deviceId]
expected: FAIL
[Setup video InputDeviceInfo getCapabilities() test for groupId]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for resizeMode]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for echoCancellation]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for noiseSuppression]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for deviceId]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for width]
expected: FAIL
[Setup video MediaStreamTrack getCapabilities() test for deviceId]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for sampleRate]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for channelCount]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for latency]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for groupId]
expected: FAIL
@@ -97,14 +49,50 @@
[Setup audio InputDeviceInfo getCapabilities() test for deviceId]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for autoGainControl]
expected: FAIL
[Setup video InputDeviceInfo getCapabilities() test for aspectRatio]
expected: FAIL
[Setup audio MediaStreamTrack getCapabilities() test for voiceIsolation]
expected: FAIL
[Setup audio InputDeviceInfo getCapabilities() test for voiceIsolation]
expected: FAIL
[Audio track getCapabilities() sampleRate property present.]
expected: FAIL
[Audio track getCapabilities() sampleRate properly supported.]
expected: FAIL
[Audio track getCapabilities() sampleSize property present.]
expected: FAIL
[Audio track getCapabilities() sampleSize properly supported.]
expected: FAIL
[Audio track getCapabilities() voiceIsolation property present.]
expected: FAIL
[Audio track getCapabilities() voiceIsolation properly supported.]
expected: FAIL
[Audio track getCapabilities() latency property present.]
expected: FAIL
[Audio track getCapabilities() latency properly supported.]
expected: FAIL
[Video track getCapabilities() aspectRatio property present.]
expected: FAIL
[Video track getCapabilities() aspectRatio properly supported.]
expected: FAIL
[Video track getCapabilities() resizeMode property present.]
expected: FAIL
[Video track getCapabilities() resizeMode properly supported.]
expected: FAIL
[Video track getCapabilities() resizeMode properly supported. Value: none]
expected: FAIL
[Video track getCapabilities() resizeMode properly supported. Value: crop-and-scale]
expected: FAIL