Implement according to spec.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a228277bb4f0772a6c13bc821e96bd0c91ce139d commit a228277bb4f0772a6c13bc821e96bd0c91ce139d Author: Guido Urdaneta <guidou@chromium.org> Date: Sat Sep 16 17:45:56 2017 Add ability to reconfigure a MediaStreamVideoTrack This CL adds the ability to change the VideoTrackAdapterSettings of a track already present in a MediaStreamVideoSource. This is a preparatory step towards MediaStreamTrack.applyConstraints() since updating constraints may result in new settings for a track. Bug: 763319 Change-Id: I68debcd4df6eca903709e9dcee6ddb852ae8d190 Reviewed-on: https://chromium-review.googlesource.com/663857 Commit-Queue: Guido Urdaneta <guidou@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#502507} [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/media_stream_video_source.cc [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/media_stream_video_source.h [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/media_stream_video_source_unittest.cc [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/video_track_adapter.cc [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/video_track_adapter.h [modify] https://crrev.com/a228277bb4f0772a6c13bc821e96bd0c91ce139d/content/renderer/media/video_track_adapter_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4866b184422f711901cf24ae59d490be249b5aee commit 4866b184422f711901cf24ae59d490be249b5aee Author: Guido Urdaneta <guidou@chromium.org> Date: Mon Sep 25 19:22:43 2017 Add new methods to MediaDevicesDispatcherHost The new methods support getting supported/in-use video modes for a specific device. This CL is in preparation for MediaStreamTrack.applyConstraints(). applyConstraints() may require known the video mode currently in use by a device to determine if a change of settings is necessary. If such a change is indeed necessary, then it is also necessary to know the video modes supported by the device whose settings are to be changed. Bug: 763319 Change-Id: I829a0831af72af5ff841b57fe5d6293c80a2e75e Reviewed-on: https://chromium-review.googlesource.com/670319 Commit-Queue: Guido Urdaneta <guidou@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org> Cr-Commit-Position: refs/heads/master@{#504126} [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/browser/renderer_host/media/media_devices_dispatcher_host.cc [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/browser/renderer_host/media/media_devices_dispatcher_host.h [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/browser/renderer_host/media/media_devices_dispatcher_host_unittest.cc [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/common/media/media_devices.mojom [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/renderer/media/media_devices_event_dispatcher_unittest.cc [modify] https://crrev.com/4866b184422f711901cf24ae59d490be249b5aee/content/renderer/media/user_media_client_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bf459d7716e51f74117dbcd92583ccab56ba6883 commit bf459d7716e51f74117dbcd92583ccab56ba6883 Author: Guido Urdaneta <guidou@chromium.org> Date: Tue Sep 26 11:55:25 2017 Add restart functionality to MediaStreamVideoSource. This CL adds new methods to support restarting a MediaStreamVideoSource. By default, sources continue to be nonrestartable, but the MediaStreamVideoCapturerSource does implement the restart capability. This is a preparatory CL to support MediaStreamTrack.applyConstraints(), which requires the ability to change the video format of a video source. Bug: 763319 Change-Id: I91b868326f1fcc52a8146612e4cd0429774f82e1 Reviewed-on: https://chromium-review.googlesource.com/675687 Commit-Queue: Guido Urdaneta <guidou@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Cr-Commit-Position: refs/heads/master@{#504344} [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_capturer_source.cc [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_capturer_source.h [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_capturer_source_unittest.cc [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_source.cc [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_source.h [modify] https://crrev.com/bf459d7716e51f74117dbcd92583ccab56ba6883/content/renderer/media/media_stream_video_source_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3760196ff855ee64550a0f04507d72d23261d3a3 commit 3760196ff855ee64550a0f04507d72d23261d3a3 Author: Guido Urdaneta <guidou@chromium.org> Date: Thu Oct 05 17:56:35 2017 Do not stop MediaStreamVideoSource for good after a failed restart. After a successful StopForRestart(), if Restart() fails, the source should return to the previous state, which is STOPPED_FOR_RESTART, instead of being stopped for good. Bug: 763319 Change-Id: I907c320d0d4664d3b35fe89d141eb936381e78c7 Reviewed-on: https://chromium-review.googlesource.com/695306 Commit-Queue: Guido Urdaneta <guidou@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#506785} [modify] https://crrev.com/3760196ff855ee64550a0f04507d72d23261d3a3/content/renderer/media/media_stream_video_source.cc [modify] https://crrev.com/3760196ff855ee64550a0f04507d72d23261d3a3/content/renderer/media/media_stream_video_source_unittest.cc [modify] https://crrev.com/3760196ff855ee64550a0f04507d72d23261d3a3/content/renderer/media/mock_media_stream_video_source.cc [modify] https://crrev.com/3760196ff855ee64550a0f04507d72d23261d3a3/content/renderer/media/mock_media_stream_video_source.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9596258909269fd6b02fca48186dc9c72cd3ef74 commit 9596258909269fd6b02fca48186dc9c72cd3ef74 Author: Guido Urdaneta <guidou@chromium.org> Date: Fri Oct 06 16:04:54 2017 Implement applyConstraints for video device-capture tracks This implementation supports reconfiguring the video source when there is only track in the frame. If this is not the case, downscaling and frame-rate adjustment is used. This is spec compliant, but is to be followed by a CL that allows reconfiguring the source if there is more than one track in the frame. Bug: 763319 Change-Id: I1d76208b5bc11d516ec93b938946abfa8648a7bb Reviewed-on: https://chromium-review.googlesource.com/690115 Commit-Queue: Avi Drissman <avi@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#507084} [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/browser/webrtc/webrtc_getusermedia_browsertest.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/BUILD.gn [add] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/apply_constraints_processor.cc [add] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/apply_constraints_processor.h [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_constraints_util_video_device.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_constraints_util_video_device.h [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_constraints_util_video_device_unittest.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_video_source.h [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_video_track.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/media_stream_video_track.h [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/user_media_client_impl.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/user_media_client_impl.h [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/user_media_client_impl_unittest.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/renderer/media/user_media_processor.cc [modify] https://crrev.com/9596258909269fd6b02fca48186dc9c72cd3ef74/content/test/data/media/getusermedia.html
Comment 1 by guidou@chromium.org
, Sep 8 2017