Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: content/renderer/media/user_media_client_impl.cc

Issue 2707203006: Minor refactoring of support classes for video-device constraints. (Closed)
Patch Set: move Settings type to .cc file Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/user_media_client_impl.h" 5 #include "content/renderer/media/user_media_client_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/hash.h" 12 #include "base/hash.h"
13 #include "base/location.h" 13 #include "base/location.h"
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/single_thread_task_runner.h" 16 #include "base/single_thread_task_runner.h"
17 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
18 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
19 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
20 #include "base/strings/utf_string_conversions.h" 20 #include "base/strings/utf_string_conversions.h"
21 #include "base/task_runner.h" 21 #include "base/task_runner.h"
22 #include "base/task_runner_util.h" 22 #include "base/task_runner_util.h"
23 #include "base/threading/thread_task_runner_handle.h" 23 #include "base/threading/thread_task_runner_handle.h"
24 #include "build/build_config.h" 24 #include "build/build_config.h"
25 #include "content/public/renderer/render_frame.h" 25 #include "content/public/renderer/render_frame.h"
26 #include "content/renderer/media/local_media_stream_audio_source.h" 26 #include "content/renderer/media/local_media_stream_audio_source.h"
27 #include "content/renderer/media/media_stream.h" 27 #include "content/renderer/media/media_stream.h"
28 #include "content/renderer/media/media_stream_constraints_util.h" 28 #include "content/renderer/media/media_stream_constraints_util.h"
29 #include "content/renderer/media/media_stream_constraints_util_video_source.h" 29 #include "content/renderer/media/media_stream_constraints_util_video_device.h"
30 #include "content/renderer/media/media_stream_dispatcher.h" 30 #include "content/renderer/media/media_stream_dispatcher.h"
31 #include "content/renderer/media/media_stream_video_capturer_source.h" 31 #include "content/renderer/media/media_stream_video_capturer_source.h"
32 #include "content/renderer/media/media_stream_video_track.h" 32 #include "content/renderer/media/media_stream_video_track.h"
33 #include "content/renderer/media/peer_connection_tracker.h" 33 #include "content/renderer/media/peer_connection_tracker.h"
34 #include "content/renderer/media/webrtc/processed_local_audio_source.h" 34 #include "content/renderer/media/webrtc/processed_local_audio_source.h"
35 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" 35 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h"
36 #include "content/renderer/media/webrtc_logging.h" 36 #include "content/renderer/media/webrtc_logging.h"
37 #include "content/renderer/media/webrtc_uma_histograms.h" 37 #include "content/renderer/media/webrtc_uma_histograms.h"
38 #include "content/renderer/render_thread_impl.h" 38 #include "content/renderer/render_thread_impl.h"
39 #include "media/capture/video_capture_types.h" 39 #include "media/capture/video_capture_types.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 int request_id, 359 int request_id,
360 const blink::WebUserMediaRequest& user_media_request, 360 const blink::WebUserMediaRequest& user_media_request,
361 std::unique_ptr<StreamControls> controls, 361 std::unique_ptr<StreamControls> controls,
362 const RequestSettings& request_settings, 362 const RequestSettings& request_settings,
363 std::vector<::mojom::VideoInputDeviceCapabilitiesPtr> 363 std::vector<::mojom::VideoInputDeviceCapabilitiesPtr>
364 video_input_capabilities) { 364 video_input_capabilities) {
365 DCHECK(CalledOnValidThread()); 365 DCHECK(CalledOnValidThread());
366 DCHECK(controls->video.requested); 366 DCHECK(controls->video.requested);
367 DCHECK(IsDeviceSource(controls->video.stream_source)); 367 DCHECK(IsDeviceSource(controls->video.stream_source));
368 368
369 VideoCaptureCapabilities capabilities; 369 VideoDeviceCaptureCapabilities capabilities;
370 capabilities.device_capabilities = std::move(video_input_capabilities); 370 capabilities.device_capabilities = std::move(video_input_capabilities);
371 capabilities.power_line_capabilities = { 371 capabilities.power_line_capabilities = {
372 media::PowerLineFrequency::FREQUENCY_DEFAULT, 372 media::PowerLineFrequency::FREQUENCY_DEFAULT,
373 media::PowerLineFrequency::FREQUENCY_50HZ, 373 media::PowerLineFrequency::FREQUENCY_50HZ,
374 media::PowerLineFrequency::FREQUENCY_60HZ}; 374 media::PowerLineFrequency::FREQUENCY_60HZ};
375 375
376 base::PostTaskAndReplyWithResult( 376 base::PostTaskAndReplyWithResult(
377 worker_task_runner_.get(), FROM_HERE, 377 worker_task_runner_.get(), FROM_HERE,
378 base::Bind(&SelectVideoCaptureSourceSettings, std::move(capabilities), 378 base::Bind(&SelectVideoDeviceCaptureSourceSettings,
379 std::move(capabilities),
379 user_media_request.videoConstraints()), 380 user_media_request.videoConstraints()),
380 base::Bind(&UserMediaClientImpl::FinalizeSelectVideoDeviceSourceSettings, 381 base::Bind(&UserMediaClientImpl::FinalizeSelectVideoDeviceSourceSettings,
381 weak_factory_.GetWeakPtr(), request_id, user_media_request, 382 weak_factory_.GetWeakPtr(), request_id, user_media_request,
382 base::Passed(&controls), request_settings)); 383 base::Passed(&controls), request_settings));
383 } 384 }
384 385
385 void UserMediaClientImpl::FinalizeSelectVideoDeviceSourceSettings( 386 void UserMediaClientImpl::FinalizeSelectVideoDeviceSourceSettings(
386 int request_id, 387 int request_id,
387 const blink::WebUserMediaRequest& user_media_request, 388 const blink::WebUserMediaRequest& user_media_request,
388 std::unique_ptr<StreamControls> controls, 389 std::unique_ptr<StreamControls> controls,
389 const RequestSettings& request_settings, 390 const RequestSettings& request_settings,
390 const VideoCaptureSourceSelectionResult& selection_result) { 391 const VideoDeviceCaptureSourceSelectionResult& selection_result) {
391 DCHECK(CalledOnValidThread()); 392 DCHECK(CalledOnValidThread());
392 if (selection_result.has_value()) { 393 if (selection_result.HasValue()) {
393 controls->video.device_id = selection_result.settings.device_id(); 394 controls->video.device_id = selection_result.device_id;
394 } else { 395 } else {
395 // TODO(guidou): Abort the request in all cases where |selection_result| 396 // TODO(guidou): Abort the request in all cases where |selection_result|
396 // has no value, as the spec mandates. 397 // has no value, as the spec mandates.
397 // Currently, some applications rely on the nonstandard behavior of asking 398 // Currently, some applications rely on the nonstandard behavior of asking
398 // for permission even if constraints cannot be satisfied or there are no 399 // for permission even if constraints cannot be satisfied or there are no
399 // devices. Fix once the standard behavior ceases to be disruptive. 400 // devices. Fix once the standard behavior ceases to be disruptive.
400 // See http://crbug.com/690491. 401 // See http://crbug.com/690491.
401 blink::WebString failed_constraint_name = 402 blink::WebString failed_constraint_name =
402 blink::WebString::fromASCII(selection_result.failed_constraint_name); 403 blink::WebString::fromASCII(selection_result.failed_constraint_name);
403 blink::WebString device_id_constraint_name = blink::WebString::fromASCII( 404 blink::WebString device_id_constraint_name = blink::WebString::fromASCII(
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 sources_waiting_for_callback_.end(), source); 1243 sources_waiting_for_callback_.end(), source);
1243 if (found != sources_waiting_for_callback_.end()) 1244 if (found != sources_waiting_for_callback_.end())
1244 OnTrackStarted(source, result, result_name); 1245 OnTrackStarted(source, result, result_name);
1245 } 1246 }
1246 1247
1247 void UserMediaClientImpl::OnDestruct() { 1248 void UserMediaClientImpl::OnDestruct() {
1248 delete this; 1249 delete this;
1249 } 1250 }
1250 1251
1251 } // namespace content 1252 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698