New issue
Advanced search Search tips

Issue 764293 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 338503



Sign in to add a comment

Refactor UserMediaClientImpl

Project Member Reported by guidou@chromium.org, Sep 12 2017

Issue description

UserMediaClientImpl currently takes care of serializing and processing getUserMedia requests.

ApplyConstraints requests need to be serialized together with getUserMedia requests, which will make UserMediaClientImpl even more complex than it is now.

The proposal is to move getUserMedia processing out of UMCI into a UserMediaProcessor and let UMCI handle serialization of getUserMedia and applyConstraints request, leaving processing to separate classes for easier maintenance.

UMCI also takes care of device enumeration requests, but refactoring in that area is outside the scope of this bug.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 14 2017

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

commit 5b34622922cd00ebfd91a123d1670704e05cc5e4
Author: Guido Urdaneta <guidou@chromium.org>
Date: Thu Sep 14 20:08:13 2017

Refactor UserMediaClientImpl

This CL is in preparation for applyConstraints().
UserMediaClientImpl was responsible for serializing and processing
getUserMedia() requests. This CL separates the two functionalities,
leaving UMCI with the responsibility of serializing requests, with
processing now handled by the new UserMediaProcessor.
The motivation is to keep the complexity in UMCI more manageable,
given that applyConstraints() requests will have to be serialized
together with getUserMedia() requests in order to avoid races,
since they compete for the same devices.

Bug: 764293
Change-Id: I147e11378a05f689d62c0c4ef557d533306b2f21
Reviewed-on: https://chromium-review.googlesource.com/657680
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Henrik Boström <hbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502026}
[modify] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/BUILD.gn
[modify] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/media/user_media_client_impl.cc
[modify] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/media/user_media_client_impl.h
[modify] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/media/user_media_client_impl_unittest.cc
[add] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/media/user_media_processor.cc
[add] https://crrev.com/5b34622922cd00ebfd91a123d1670704e05cc5e4/content/renderer/media/user_media_processor.h

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 17 (6 days ago)

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

commit 3c409af4de13ed229b7f462c8545803b5fafe395
Author: Guido Urdaneta <guidou@chromium.org>
Date: Thu Jan 17 18:18:14 2019

Remove MediaStreamSource::ExtraData

This CL moves the WebMediaStreamSource::ExtraData functionality to
PlatformMediaStreamSource.

Drive-by: minor refactoring in UserMediaProcessor to return unique_ptr
instead of raw pointers in source-creation functions.

Bug: 764293,  618819 , 921006
Change-Id: I9e42201bff07f96996733f3d952b393f357da523
TBR: haraken@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1408248
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623754}
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/public/renderer/media_stream_utils.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_audio_source.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_audio_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_center.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_video_capturer_source_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_video_renderer_sink_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_video_source.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_video_source_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/media_stream_video_track_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/mock_media_stream_registry.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/processed_local_audio_source_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/remote_media_stream_track_adapter.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/user_media_client_impl_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/user_media_processor.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/stream/user_media_processor.h
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/fake_rtc_rtp_transceiver.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/media_stream_remote_video_source_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/rtc_rtp_sender_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/rtc_rtp_transceiver_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/transceiver_state_surfacer_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/webrtc_media_stream_track_adapter_map_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/webrtc_media_stream_track_adapter_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media/webrtc/webrtc_set_description_observer_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media_capture_from_element/canvas_capture_handler.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media_capture_from_element/canvas_capture_handler_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media_capture_from_element/html_audio_element_capturer_source_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media_recorder/audio_track_recorder_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/media_recorder/video_track_recorder_unittest.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/pepper/pepper_media_stream_video_track_host.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/third_party/blink/public/platform/modules/mediastream/platform_media_stream_source.h
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/third_party/blink/public/platform/web_media_stream_source.h
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/third_party/blink/renderer/platform/exported/platform_media_stream_source.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/third_party/blink/renderer/platform/exported/web_media_stream_source.cc
[modify] https://crrev.com/3c409af4de13ed229b7f462c8545803b5fafe395/third_party/blink/renderer/platform/mediastream/media_stream_source.h

Sign in to add a comment