New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 45 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 19
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task
Launch-Accessibility: NA
Launch-Legal: Yes
Launch-Privacy: NA
Launch-Security: NotReviewed
Launch-Status: Review-Requested
Launch-Test: NotReviewed
Launch-UI: NA


Sign in to add a comment

Implement MediaStreamTrack Constraints API

Project Member Reported by hta@chromium.org, Oct 16 2015 Back to list

Issue description

Change description:
MediaStreamTrack Constrains API

Changes to API surface:
New functions on MediaStreamTrack:
* getCapabilities
* getConstraints
* getSettings
* applyConstraints
New fields on MediaTrackConstraints:
* individual named constraint parameters as listed in the spec

Links:
http://w3c.github.io/mediacapture-main/getusermedia.html#mediastreamtrack


Support in other browsers:
Internet Explorer: No
Firefox: Yes
Safari: No
Edge: Yes

*Make sure to fill in any labels with a -?, including all OSes this change
affects. Feel free to leave other labels at the defaults.

 

Comment 1 by hta@google.com, Oct 16 2015

Blocking: chromium:287805

Comment 2 by hta@chromium.org, Oct 19 2015

Blocking: chromium:503227

Comment 3 by owe...@chromium.org, Oct 29 2015

Would you say there are any potential privacy risks with exposing the capabilities/constraints/settings here?

I wonder if we should get someone from privacy to take a quick look...

Comment 4 by hta@chromium.org, Dec 4 2015

Blocking: chromium:405520

Comment 5 by hta@chromium.org, Dec 8 2015

Blocking: chromium:327676
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66ac8e19d155847be8be632ec6dbefcb4a9ec492

commit 66ac8e19d155847be8be632ec6dbefcb4a9ec492
Author: hta <hta@chromium.org>
Date: Thu Jan 14 17:45:56 2016

Revised error handling for MediaConstraintsImpl

The new error handling allows information to be passed back that
can either be returned as an exception or be returned as an error object.
Some errors (NavigatorUserMediaError) can only be returned as an error object.

Adds a lot more constraints.

Keeping the by-name accessors and the by-name access.
This allows old code to function.

Using struct in WebMediaConstraints for named constraints.

BUG= 543997 

Review URL: https://codereview.chromium.org/1570813002

Cr-Commit-Position: refs/heads/master@{#369453}

[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/content/renderer/media/mock_media_constraint_factory.cc
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/LayoutTests/fast/mediastream/getusermedia-expected.txt
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.h
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaDevices.cpp
[add] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaErrorState.cpp
[add] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/MediaErrorState.h
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/NavigatorMediaStream.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/UserMediaRequest.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/mediastream/UserMediaRequest.h
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/modules/modules.gypi
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/Source/platform/exported/WebMediaConstraints.cpp
[modify] http://crrev.com/66ac8e19d155847be8be632ec6dbefcb4a9ec492/third_party/WebKit/public/platform/WebMediaConstraints.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69

commit 2e01bbd052f7938ad88f8f4d51aa18e1394e6e69
Author: hta <hta@chromium.org>
Date: Mon Jan 18 10:33:22 2016

Use new-style constraints for device selection.

This CL connects the new-style constraints to the data that is
sent to the browser process to select a capture device.

This CL validates the info-passing functions; later CLs will
remove all usage by Chrome of the old-style constraint values
(but these are kept for now to allow us to do incremental
introduction of the new functions.)

It also adds a set of constraints whose names were found in libjingle source.

BUG= 543997 

Review URL: https://codereview.chromium.org/1581103002

Cr-Commit-Position: refs/heads/master@{#370008}

[modify] http://crrev.com/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69/content/renderer/media/user_media_client_impl.cc
[modify] http://crrev.com/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp
[modify] http://crrev.com/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.h
[modify] http://crrev.com/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69/third_party/WebKit/Source/platform/exported/WebMediaConstraints.cpp
[modify] http://crrev.com/2e01bbd052f7938ad88f8f4d51aa18e1394e6e69/third_party/WebKit/public/platform/WebMediaConstraints.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f

commit e0dd75ac197c5df17ebe34a5f3295ea54d9e463f
Author: samli <samli@chromium.org>
Date: Wed Jan 20 00:30:31 2016

Revert of Remove MockConstraints (patchset #1 id:1 of https://codereview.chromium.org/1605513002/ )

Reason for revert:
Appears to be causing fast/mediastream/RTCPeerConnection.html to fail across all bots.

Original issue's description:
> Remove MockConstraints
>
> The purpose of the MockConstraints class was to verify that only legal
> constraint names were passed. This is now done inside Blink
> in MediaConstraintsImpl.cpp, so this class isn't needed any more.
>
> BUG= 543997 
>
> Committed: https://crrev.com/dc42f8b18dbb9c8fec81e3b7a10ab0186ce36553
> Cr-Commit-Position: refs/heads/master@{#370219}

TBR=jochen@chromium.org,tommi@chromium.org,hta@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 543997 

Review URL: https://codereview.chromium.org/1608073002

Cr-Commit-Position: refs/heads/master@{#370238}

[modify] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/BUILD.gn
[add] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/mock_constraints.cc
[add] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/mock_constraints.h
[modify] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/mock_web_user_media_client.cc
[modify] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/mock_webrtc_peer_connection_handler.cc
[modify] http://crrev.com/e0dd75ac197c5df17ebe34a5f3295ea54d9e463f/components/test_runner/test_runner.gyp

Project Member

Comment 10 by bugdroid1@chromium.org, Jan 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1bb1840db5ac2d6af5bd73ee2b498bc28867c095

commit 1bb1840db5ac2d6af5bd73ee2b498bc28867c095
Author: hta <hta@chromium.org>
Date: Wed Jan 20 13:45:42 2016

Adds a name function for constraints.

The constraints specification requires that one return the
name of a failing constraint in an error message. It's
therefore required to be able to extract the name to return
from the constraint.

This CL adds that function.

BUG= 543997 

Review URL: https://codereview.chromium.org/1601873002

Cr-Commit-Position: refs/heads/master@{#370378}

[modify] http://crrev.com/1bb1840db5ac2d6af5bd73ee2b498bc28867c095/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp
[modify] http://crrev.com/1bb1840db5ac2d6af5bd73ee2b498bc28867c095/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp
[modify] http://crrev.com/1bb1840db5ac2d6af5bd73ee2b498bc28867c095/third_party/WebKit/Source/platform/exported/WebMediaConstraints.cpp
[modify] http://crrev.com/1bb1840db5ac2d6af5bd73ee2b498bc28867c095/third_party/WebKit/public/platform/WebMediaConstraints.h

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5183c4281bfd06efe4d6ecc70fd7e86d260916ba

commit 5183c4281bfd06efe4d6ecc70fd7e86d260916ba
Author: hta <hta@chromium.org>
Date: Thu Jan 21 18:16:27 2016

Reland of Remove MockConstraints

Reason for revert:
Re-landing with fixed tests.

Original rollback description:
> Revert of Remove MockConstraints (patchset #1 id:1 of https://codereview.chromium.org/1605513002/ )
>
> Reason for revert:
> Appears to be causing fast/mediastream/RTCPeerConnection.html to fail across all bots.

Original issue's description:

Remove MockConstraints

The purpose of the MockConstraints class was to verify that only legal
constraint names were passed. This is now done inside Blink
in MediaConstraintsImpl.cpp, so this class isn't needed any more.

BUG= 543997 

Review URL: https://codereview.chromium.org/1614733002

Cr-Commit-Position: refs/heads/master@{#370729}

[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/components/test_runner/BUILD.gn
[delete] http://crrev.com/4503ca766ad3750cbc0dbb2a012f7caf0d376d74/components/test_runner/mock_constraints.cc
[delete] http://crrev.com/4503ca766ad3750cbc0dbb2a012f7caf0d376d74/components/test_runner/mock_constraints.h
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/components/test_runner/mock_web_user_media_client.cc
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/components/test_runner/mock_webrtc_peer_connection_handler.cc
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/components/test_runner/test_runner.gyp
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection.html
[modify] http://crrev.com/5183c4281bfd06efe4d6ecc70fd7e86d260916ba/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Jan 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b9487f883540ecb571ca4c6163753770db6b8639

commit b9487f883540ecb571ca4c6163753770db6b8639
Author: hta <hta@chromium.org>
Date: Thu Jan 28 13:54:18 2016

Apply new-style constraints to video_source.

This CL reimplements the algorithms presently used for selection
in terms of the new form constraints.
A new mock constraints factory is also added.

BUG= 543997 

Review URL: https://codereview.chromium.org/1617243005

Cr-Commit-Position: refs/heads/master@{#372082}

[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/content_tests.gypi
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/renderer/media/media_stream_video_source.cc
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/renderer/media/media_stream_video_source_unittest.cc
[add] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/renderer/media/mock_constraint_factory.cc
[add] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/renderer/media/mock_constraint_factory.h
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/content/test/data/media/getusermedia.html
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/third_party/WebKit/Source/platform/exported/WebMediaConstraints.cpp
[modify] http://crrev.com/b9487f883540ecb571ca4c6163753770db6b8639/third_party/WebKit/public/platform/WebMediaConstraints.h

Comment 13 by hta@chromium.org, Feb 15 2016

Labels: -M-49 M-51
We did not make the M50 release, reassigning to 51.

I noticed a change in behaviour how optional constraints are handled from M49 -> M50. These are the constraints and resolutions I get on a Macbook Pro with internal 720p cam.

In M49:

{"video":{"optional":[{"minHeight":1080},{"minHeight":720},{"minHeight":480}]}} yields {"width":1280,"height":720}, 
{"video":{"optional":[{"minHeight":720}]}} yields {"width":1280,"height":720}, 

M50/M51:
{"video":{"optional":[{"minHeight":1080},{"minHeight":720},{"minHeight":480}]}} yields {"width":640,"height":480}, 
{"video":{"optional":[{"minHeight":720}]}} yields {"width":1280,"height":720}, 

See https://output.jsbin.com/kodosib

Was this change intentional?
From the specs I'd expect the M49 behaviour. As it'd try to satisfy as many advanced/optional constraints as possible, thus yield the highest possible resolution.

Shall I file a separate bug for this? 

Comment 15 by hta@chromium.org, Mar 15 2016

Please file a separate bug for the resolution issue. It's likely to be code that was affected by the change, but I'll have to debug it to make sure what's going on. (I suspect it never worked as intended.)

Bug filed here:  https://crbug.com/594929 

Comment 17 by hta@chromium.org, Apr 4 2016

Labels: -M-51 M-52
I see that this was tagged as M-52 earlier today, do we know if this will actually make it into that release or if that is tentative? Unclear if this required further work or if it was just pending inclusion in a release - looks like some of the blocking issues are still not quite ready?

Comment 19 by hta@chromium.org, Apr 14 2016

Tentative. We likely won't have support for ideal ready for 52, and there may be other deficiencies.

The current state of the implementation is availble behind the "MediaConstraints" experimental feature flag.

Comment 20 by hta@webrtc.org, Apr 20 2016

Blocking: webrtc:4810

Comment 21 by hta@chromium.org, Apr 20 2016

Blockedon: 537590
Project Member

Comment 22 by bugdroid1@chromium.org, Apr 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a9ce9415e528d0fe526d6cc7f766a497893265e

commit 1a9ce9415e528d0fe526d6cc7f766a497893265e
Author: hta <hta@chromium.org>
Date: Wed Apr 27 14:56:10 2016

Implement MediaStreamTrack.getConstraints

This stores the currently valid constraints inside a
MediaStreamTrack object, in the form of a WebMediaConstraints
variable, and returns it with the GetConstraints operation.

http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStreamTrack-getConstraints-MediaTrackConstraints

BUG= 543997 

Review URL: https://codereview.chromium.org/1910463002

Cr-Commit-Position: refs/heads/master@{#390074}

[add] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/LayoutTests/fast/mediastream/MediaStreamTrack-getConstraints.html
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.h
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.h
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.idl
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/Source/modules/mediastream/UserMediaRequest.cpp
[modify] https://crrev.com/1a9ce9415e528d0fe526d6cc7f766a497893265e/third_party/WebKit/public/platform/WebMediaConstraints.h

Comment 23 by hta@chromium.org, Apr 28 2016

Blocking: 607439

Comment 24 by hta@chromium.org, May 23 2016

Labels: -M-52 M-53
Project Member

Comment 25 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/23e130d1ec67c5785d2fc4688bb643b0e5c183ed

commit 23e130d1ec67c5785d2fc4688bb643b0e5c183ed
Author: hta <hta@chromium.org>
Date: Wed Jun 01 18:42:57 2016

Extend Blink mock devices to return frame rate on getSettings.

This CL adds a layout test that getSettings actually returns
frame rate. This required wiring up support for letting the
fake video source in blink_test_runner call its callbacks.

BUG= 543997 

Review-Url: https://codereview.chromium.org/2023203002
Cr-Commit-Position: refs/heads/master@{#397191}

[modify] https://crrev.com/23e130d1ec67c5785d2fc4688bb643b0e5c183ed/content/shell/renderer/layout_test/blink_test_runner.cc
[modify] https://crrev.com/23e130d1ec67c5785d2fc4688bb643b0e5c183ed/third_party/WebKit/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings.html

Summary: Implement MediaStreamTrack Constraints API (was: Implement MediaStreamTrack Constrains API)

Comment 27 by hta@chromium.org, Jun 3 2016

Blockedon: 617142

Comment 28 by hta@chromium.org, Jun 10 2016

Cc: blum@chromium.org
Components: Blink>Webrtc>GetUserMedia

Comment 29 by blum@chromium.org, Jun 10 2016

Labels: Launch-Accessibility-NA Launch-Legal-NotReviewed Launch-Privacy-NotReviewed Launch-Security-NotReviewed Launch-Status-Review-Requested Launch-Test-NotReviewed Launch-UI-NA

Comment 31 by hta@chromium.org, Jun 16 2016

Blockedon: -617142

Comment 32 by ctanaka@google.com, Jun 16 2016

Labels: -Launch-Legal-NotReviewed Launch-Legal-Yes
hta@ in https://bugs.chromium.org/p/chromium/issues/detail?id=543997#c7 you mention the old-style constraints will be removed, when will that be?






Before flipping the Launch-Test bit, I'd like to see a test that proves that the new constraints implementation is on par with the current one, i.e. if I specify a constraint or capability for a video track with the old constraints format, there's a test that does the same using the new API, and verifies that the right thing actually happens.

Comment 35 by hta@chromium.org, Jun 21 2016

@jansson to #33: I expect the old style constraints to go away some time this century. We've got counters on them, and will be watching them once this goes live. I think that when adapter.js flips, we'll see a significant shift.

@kjellander to #34: the way the plumbing works, the old style constraints get turned into new style constraints before being acted on, so I'm not worried - this landed in M50/M51. Will make a separate comment about test coverage.

@owencm to #3: This mainly exposes old functionality in a new syntax, so I don't think there are new privacy issues here. We haven't done getCapabilities and getSettings yet.

Comment 36 by hta@chromium.org, Jun 21 2016

Security review:

https://chrome-security-survey.appspot.com/p/webrtc/constraints-api/

third_party/WebKit/LayoutTests/fast/mediastream/MediaStreamTrack-getConstraints.html is the layout test that exercises the new functionality the most.

Comment 37 by hta@chromium.org, Jun 21 2016

Blocking: -327676

Comment 38 by hta@chromium.org, Jun 23 2016

Blockedon: 622611
Privacy review 622611.
Chrome Privacy don't normally review OWP launches. Is there anything specific you'd like us to know?

Comment 40 by hta@chromium.org, Jun 24 2016

Blocking: 623104
Labels: PrivacyReview-622611
Will this make it to M53 (do not have access to the privacy review)?

Comment 43 by hta@chromium.org, Jul 19 2016

Blockedon: -622611
Labels: -Launch-Privacy-NotReviewed Launch-Privacy-NA
Changing launch-privacy to NA and closing the privacy review bug. It seems irrelevant.

Comment 44 by blum@chromium.org, Jul 19 2016

Labels: Launch-M-Target-53-Stable
re. #42: yes, this is the plan. Can you do a test review, please?
Was this really enabled by default on Chrome for Android 52, or is the chromestatus.com entry wrong?
Components: -Blink>Webrtc>GetUserMedia Blink>GetUserMedia
I take it that “ideal” still isn't fully supported, as suggested by comment 19 and evident in my own experiments on 53 for desktop. Is progress for that aspect tracked by this feature here, or is there something more specific?

I was trying “video: {width: {ideal: 16000}, height: {ideal: 9000}}” in an attempt to get the largest available resolution, something for which I found no easy alternative that doesn't rely on some list of common resolutions and the assumption that the camera's maximum will be one of them.

Comment 48 by phistuck@gmail.com, Oct 18 2016

I believe it should be fully supported. Try Chrome 54 (recently released), just in case and if you see that something is not supported - it is a bug and it would be great if you found an issue for it or filed one (you can comment here with the issue number, if you do).

Comment 49 by hta@chromium.org, Oct 18 2016

Ideal is not yet supported. Work in progress.

Comment 50 by phistuck@gmail.com, Oct 18 2016

Oh, but I thought the intent to ship concluded that it would be supported up front...

Comment 51 by hta@webrtc.org, Oct 18 2016

The syntax is supported, it just doesn't have any effect :-(

This is actually legal by the rather loose definition of "ideal" in the spec (the UA can return any configuration that's within the mandatory constraint), but it's obviously not right, so we're in the process of fixing it.
Thanks for the clarification. hta, do you want a dedicated ticket filed as phistuck suggested, or would that just be marked a duplicate of this one here since you already know it's an open point?

The spec is indeed surprisingly lax: “The UA SHOULD use the one with the smallest fitness distance, as calculated in step 3.” I hadn't noticed that while reading, probably since I thought I knew the purpose of the fitness computation and just assumed it MUST be used to choose a candidate.
Blockedon: 657733

Comment 54 by hta@chromium.org, Dec 13 2016

Blockedon: 673734

Comment 55 by hta@chromium.org, Jan 11 2017

Blocking: webrtc:4906

Comment 56 by hta@chromium.org, Jan 17 2017

Blockedon: 681824
Labels: -M-53 -Launch-M-Target-53-Stable
Removing M-53 since that's already gone.
Labels: M-59
Applying M-59 label as a minimal milestone as per:
https://bugs.chromium.org/p/chromium/issues/detail?id=338503#c22

Blocking: 290161
Blocking: 700607

Comment 61 by hta@chromium.org, Apr 5 2017

Owner: guidou@chromium.org
Blocking: 708723
Labels: -M-59 M-61
Blockedon: 734078
Cc: tommyw@chromium.org guidou@chromium.org tnakamura@chromium.org
 Issue 287805  has been merged into this issue.
Shall we change the milestone to M62?
Cc: julien.isorce@chromium.org
Blockedon: 338503
Blockedon: 293292
Labels: -M-61 M-63
Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
Labels: -M-63 M-64
Status: Fixed
Closing this bug since all the Constraints API is now fully implemented now for all the properties that we fully support.

We still have to improve the functionality of applyConstraints() for audio tracks and complete support for some constrainable properties that we do not fully support yet, but we will track that on other bugs.

Sign in to add a comment