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

Unified Diff: content/browser/renderer_host/media/media_stream_manager.cc

Issue 2697033006: Switching MediaStreamManager from using AudioManager to AudioSystem (Closed)
Patch Set: weak pointers removed Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/media_stream_manager.cc
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index 73c6345d35e9f531130e75fb38f9f2b58e0d34e4..b0fb9dd13dfef6bb3757b1183893f26bbe41ee51 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -45,7 +45,7 @@
#include "content/public/common/media_stream_request.h"
#include "crypto/hmac.h"
#include "media/audio/audio_device_description.h"
-#include "media/audio/audio_manager.h"
+#include "media/audio/audio_system.h"
#include "media/base/audio_parameters.h"
#include "media/base/channel_layout.h"
#include "media/base/media_switches.h"
@@ -392,14 +392,14 @@ void MediaStreamManager::SendMessageToNativeLog(const std::string& message) {
msm->AddLogMessageOnIOThread(message);
}
-MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager)
- : audio_manager_(audio_manager),
+MediaStreamManager::MediaStreamManager(media::AudioSystem* audio_system)
+ : audio_system_(audio_system),
#if defined(OS_WIN)
video_capture_thread_("VideoCaptureThread"),
#endif
use_fake_ui_(base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kUseFakeUIForMediaStream)) {
- DCHECK(audio_manager_);
+ DCHECK(audio_system_);
// Some unit tests create the MSM in the IO thread and assumes the
// initialization is done synchronously.
@@ -423,7 +423,6 @@ MediaStreamManager::~MediaStreamManager() {
DCHECK(!BrowserThread::IsThreadInitialized(BrowserThread::IO));
DVLOG(1) << "~MediaStreamManager";
DCHECK(requests_.empty());
- DCHECK(!device_task_runner_.get());
base::PowerMonitor* power_monitor = base::PowerMonitor::Get();
// The PowerMonitor instance owned by BrowserMainLoops always outlives the
@@ -909,14 +908,11 @@ void MediaStreamManager::ReadOutputParamsAndPostRequestToUI(
// TODO(guidou): MEDIA_TAB_AUDIO_CAPTURE should not be a special case. See
// crbug.com/584287.
if (request->audio_type() == MEDIA_TAB_AUDIO_CAPTURE) {
- // Read output parameters on the correct thread for native audio OS calls.
- // Using base::Unretained is safe since |audio_manager_| is deleted after
- // its task runner, and MediaStreamManager is deleted on the UI thread,
- // after the IO thread has been stopped.
- base::PostTaskAndReplyWithResult(
- audio_manager_->GetTaskRunner(), FROM_HERE,
- base::Bind(&media::AudioManager::GetDefaultOutputStreamParameters,
- base::Unretained(audio_manager_)),
+ // Using base::Unretained is safe: |audio_system_| will post
+ // PostRequestToUI() to IO thread, and MediaStreamManager is deleted on the
+ // UI thread, after the IO thread has been stopped.
+ audio_system_->GetOutputStreamParameters(
+ media::AudioDeviceDescription::kDefaultDeviceId,
base::Bind(&MediaStreamManager::PostRequestToUI, base::Unretained(this),
label, request, enumeration));
} else {
@@ -1233,15 +1229,14 @@ void MediaStreamManager::InitializeDeviceManagersOnIOThread() {
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"457525 MediaStreamManager::InitializeDeviceManagersOnIOThread 1"));
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- DCHECK(!device_task_runner_.get());
- device_task_runner_ = audio_manager_->GetTaskRunner();
// TODO(dalecurtis): Remove ScopedTracker below once crbug.com/457525 is
// fixed.
tracked_objects::ScopedTracker tracking_profile2(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"457525 MediaStreamManager::InitializeDeviceManagersOnIOThread 2"));
- audio_input_device_manager_ = new AudioInputDeviceManager(audio_manager_);
+ audio_input_device_manager_ =
+ new AudioInputDeviceManager(audio_system_->GetAudioManager());
audio_input_device_manager_->RegisterListener(this);
// TODO(dalecurtis): Remove ScopedTracker below once crbug.com/457525 is
@@ -1271,13 +1266,13 @@ void MediaStreamManager::InitializeDeviceManagersOnIOThread() {
video_capture_manager_ = new VideoCaptureManager(
media::VideoCaptureDeviceFactory::CreateFactory(
BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)),
- device_task_runner_);
+ audio_system_->GetTaskRunner());
#endif
video_capture_manager_->RegisterListener(this);
- media_devices_manager_.reset(
- new MediaDevicesManager(audio_manager_, video_capture_manager_, this));
+ media_devices_manager_.reset(new MediaDevicesManager(
+ audio_system_->GetAudioManager(), video_capture_manager_, this));
}
void MediaStreamManager::Opened(MediaStreamType stream_type,
@@ -1560,7 +1555,6 @@ void MediaStreamManager::WillDestroyCurrentMessageLoop() {
if (audio_input_device_manager_)
audio_input_device_manager_->UnregisterListener(this);
- device_task_runner_ = nullptr;
audio_input_device_manager_ = nullptr;
video_capture_manager_ = nullptr;
media_devices_manager_ = nullptr;

Powered by Google App Engine
This is Rietveld 408576698