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

Side by Side Diff: content/browser/renderer_host/media/media_stream_manager.cc

Issue 2368213002: Remove AudioOutputDeviceEnumerator. Replace usage with MediaDevicesManager. (Closed)
Patch Set: Remove BoolDeviceTypes std::array literals Created 4 years, 2 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
« no previous file with comments | « content/browser/renderer_host/media/media_stream_manager.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/browser/renderer_host/media/media_stream_manager.h" 5 #include "content/browser/renderer_host/media/media_stream_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 DCHECK(video_capture_manager_.get()); 477 DCHECK(video_capture_manager_.get());
478 return video_capture_manager_.get(); 478 return video_capture_manager_.get();
479 } 479 }
480 480
481 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { 481 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() {
482 DCHECK_CURRENTLY_ON(BrowserThread::IO); 482 DCHECK_CURRENTLY_ON(BrowserThread::IO);
483 DCHECK(audio_input_device_manager_.get()); 483 DCHECK(audio_input_device_manager_.get());
484 return audio_input_device_manager_.get(); 484 return audio_input_device_manager_.get();
485 } 485 }
486 486
487 AudioOutputDeviceEnumerator*
488 MediaStreamManager::audio_output_device_enumerator() {
489 DCHECK_CURRENTLY_ON(BrowserThread::IO);
490 DCHECK(audio_output_device_enumerator_.get());
491 return audio_output_device_enumerator_.get();
492 }
493
494 MediaDevicesManager* MediaStreamManager::media_devices_manager() { 487 MediaDevicesManager* MediaStreamManager::media_devices_manager() {
495 DCHECK_CURRENTLY_ON(BrowserThread::IO); 488 DCHECK_CURRENTLY_ON(BrowserThread::IO);
496 DCHECK(media_devices_manager_.get()); 489 DCHECK(media_devices_manager_.get());
497 return media_devices_manager_.get(); 490 return media_devices_manager_.get();
498 } 491 }
499 492
500 std::string MediaStreamManager::MakeMediaAccessRequest( 493 std::string MediaStreamManager::MakeMediaAccessRequest(
501 int render_process_id, 494 int render_process_id,
502 int render_frame_id, 495 int render_frame_id,
503 int page_request_id, 496 int page_request_id,
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 755
763 void MediaStreamManager::DoEnumerateDevices(const std::string& label) { 756 void MediaStreamManager::DoEnumerateDevices(const std::string& label) {
764 DCHECK_CURRENTLY_ON(BrowserThread::IO); 757 DCHECK_CURRENTLY_ON(BrowserThread::IO);
765 DeviceRequest* request = FindRequest(label); 758 DeviceRequest* request = FindRequest(label);
766 if (!request) 759 if (!request)
767 return; // This can happen if the request has been canceled. 760 return; // This can happen if the request has been canceled.
768 761
769 if (request->audio_type() == MEDIA_DEVICE_AUDIO_OUTPUT) { 762 if (request->audio_type() == MEDIA_DEVICE_AUDIO_OUTPUT) {
770 DCHECK_EQ(MEDIA_NO_SERVICE, request->video_type()); 763 DCHECK_EQ(MEDIA_NO_SERVICE, request->video_type());
771 request->SetState(MEDIA_DEVICE_AUDIO_OUTPUT, MEDIA_REQUEST_STATE_REQUESTED); 764 request->SetState(MEDIA_DEVICE_AUDIO_OUTPUT, MEDIA_REQUEST_STATE_REQUESTED);
765 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
766 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
772 media_devices_manager_->EnumerateDevices( 767 media_devices_manager_->EnumerateDevices(
773 {{false /* audio input */, false /* video input*/, 768 devices_to_enumerate,
774 true /* audio output */}},
775 base::Bind(&MediaStreamManager::AudioOutputDevicesEnumerated, 769 base::Bind(&MediaStreamManager::AudioOutputDevicesEnumerated,
776 base::Unretained(this), label)); 770 base::Unretained(this), label));
777 return; 771 return;
778 } 772 }
779 773
780 StartEnumeration(request, label); 774 StartEnumeration(request, label);
781 DVLOG(1) << "Enumerate Devices ({label = " << label << "})"; 775 DVLOG(1) << "Enumerate Devices ({label = " << label << "})";
782 } 776 }
783 777
784 void MediaStreamManager::AudioOutputDevicesEnumerated( 778 void MediaStreamManager::AudioOutputDevicesEnumerated(
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 if (request_audio_input) 967 if (request_audio_input)
974 request->SetState(request->audio_type(), MEDIA_REQUEST_STATE_REQUESTED); 968 request->SetState(request->audio_type(), MEDIA_REQUEST_STATE_REQUESTED);
975 969
976 bool request_video_input = request->video_type() != MEDIA_NO_SERVICE; 970 bool request_video_input = request->video_type() != MEDIA_NO_SERVICE;
977 if (request_video_input) 971 if (request_video_input)
978 request->SetState(request->video_type(), MEDIA_REQUEST_STATE_REQUESTED); 972 request->SetState(request->video_type(), MEDIA_REQUEST_STATE_REQUESTED);
979 973
980 // base::Unretained is safe here because MediaStreamManager is deleted on the 974 // base::Unretained is safe here because MediaStreamManager is deleted on the
981 // UI thread, after the IO thread has been stopped. 975 // UI thread, after the IO thread has been stopped.
982 DCHECK(request_audio_input || request_video_input); 976 DCHECK(request_audio_input || request_video_input);
977 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
978 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = request_audio_input;
979 devices_to_enumerate[MEDIA_DEVICE_TYPE_VIDEO_INPUT] = request_video_input;
983 media_devices_manager_->EnumerateDevices( 980 media_devices_manager_->EnumerateDevices(
984 {{request_audio_input, request_video_input, false /* no audio output */}}, 981 devices_to_enumerate,
985 base::Bind(&MediaStreamManager::DevicesEnumerated, base::Unretained(this), 982 base::Bind(&MediaStreamManager::DevicesEnumerated, base::Unretained(this),
986 request_audio_input, request_video_input, label)); 983 request_audio_input, request_video_input, label));
987 } 984 }
988 985
989 std::string MediaStreamManager::AddRequest(DeviceRequest* request) { 986 std::string MediaStreamManager::AddRequest(DeviceRequest* request) {
990 DCHECK_CURRENTLY_ON(BrowserThread::IO); 987 DCHECK_CURRENTLY_ON(BrowserThread::IO);
991 988
992 // Create a label for this request and verify it is unique. 989 // Create a label for this request and verify it is unique.
993 std::string unique_label; 990 std::string unique_label;
994 do { 991 do {
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 #if defined(OS_WIN) 1476 #if defined(OS_WIN)
1480 // Use an STA Video Capture Thread to try to avoid crashes on enumeration of 1477 // Use an STA Video Capture Thread to try to avoid crashes on enumeration of
1481 // buggy third party Direct Show modules, http://crbug.com/428958. 1478 // buggy third party Direct Show modules, http://crbug.com/428958.
1482 video_capture_thread_.init_com_with_mta(false); 1479 video_capture_thread_.init_com_with_mta(false);
1483 CHECK(video_capture_thread_.Start()); 1480 CHECK(video_capture_thread_.Start());
1484 video_capture_manager_->Register(this, video_capture_thread_.task_runner()); 1481 video_capture_manager_->Register(this, video_capture_thread_.task_runner());
1485 #else 1482 #else
1486 video_capture_manager_->Register(this, device_task_runner_); 1483 video_capture_manager_->Register(this, device_task_runner_);
1487 #endif 1484 #endif
1488 1485
1489 audio_output_device_enumerator_.reset(new AudioOutputDeviceEnumerator(
1490 audio_manager_, AudioOutputDeviceEnumerator::CACHE_POLICY_NO_CACHING));
1491
1492 media_devices_manager_.reset( 1486 media_devices_manager_.reset(
1493 new MediaDevicesManager(audio_manager_, video_capture_manager_, this)); 1487 new MediaDevicesManager(audio_manager_, video_capture_manager_, this));
1494 } 1488 }
1495 1489
1496 void MediaStreamManager::Opened(MediaStreamType stream_type, 1490 void MediaStreamManager::Opened(MediaStreamType stream_type,
1497 int capture_session_id) { 1491 int capture_session_id) {
1498 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1492 DCHECK_CURRENTLY_ON(BrowserThread::IO);
1499 DVLOG(1) << "Opened({stream_type = " << stream_type << "} " 1493 DVLOG(1) << "Opened({stream_type = " << stream_type << "} "
1500 << "{capture_session_id = " << capture_session_id << "})"; 1494 << "{capture_session_id = " << capture_session_id << "})";
1501 // Find the request(s) containing this device and mark it as used. 1495 // Find the request(s) containing this device and mark it as used.
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1790 if (device_task_runner_.get()) { 1784 if (device_task_runner_.get()) {
1791 media_devices_manager_->StopMonitoring(); 1785 media_devices_manager_->StopMonitoring();
1792 1786
1793 video_capture_manager_->Unregister(); 1787 video_capture_manager_->Unregister();
1794 audio_input_device_manager_->Unregister(); 1788 audio_input_device_manager_->Unregister();
1795 device_task_runner_ = NULL; 1789 device_task_runner_ = NULL;
1796 } 1790 }
1797 1791
1798 audio_input_device_manager_ = NULL; 1792 audio_input_device_manager_ = NULL;
1799 video_capture_manager_ = NULL; 1793 video_capture_manager_ = NULL;
1800 audio_output_device_enumerator_ = NULL;
1801 media_devices_manager_ = NULL; 1794 media_devices_manager_ = NULL;
1802 g_media_stream_manager_tls_ptr.Pointer()->Set(NULL); 1795 g_media_stream_manager_tls_ptr.Pointer()->Set(NULL);
1803 } 1796 }
1804 1797
1805 void MediaStreamManager::NotifyDevicesChanged( 1798 void MediaStreamManager::NotifyDevicesChanged(
1806 MediaDeviceType device_type, 1799 MediaDeviceType device_type,
1807 const MediaDeviceInfoArray& devices) { 1800 const MediaDeviceInfoArray& devices) {
1808 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1801 DCHECK_CURRENTLY_ON(BrowserThread::IO);
1809 MediaObserver* media_observer = 1802 MediaObserver* media_observer =
1810 GetContentClient()->browser()->GetMediaObserver(); 1803 GetContentClient()->browser()->GetMediaObserver();
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 request->state(stream_type) == MEDIA_REQUEST_STATE_REQUESTED && 2029 request->state(stream_type) == MEDIA_REQUEST_STATE_REQUESTED &&
2037 (request->audio_type() == stream_type || 2030 (request->audio_type() == stream_type ||
2038 request->video_type() == stream_type)) { 2031 request->video_type() == stream_type)) {
2039 ProcessEnumerationRequest(labeled_request.first, request, stream_type, 2032 ProcessEnumerationRequest(labeled_request.first, request, stream_type,
2040 device_infos); 2033 device_infos);
2041 } 2034 }
2042 } 2035 }
2043 } 2036 }
2044 2037
2045 } // namespace content 2038 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/media_stream_manager.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698