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

Unified Diff: talk/session/media/channelmanager.cc

Issue 1346153002: Remove use of DeviceManager from ChannelManager. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 3 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
« no previous file with comments | « talk/session/media/channelmanager.h ('k') | talk/session/media/channelmanager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/session/media/channelmanager.cc
diff --git a/talk/session/media/channelmanager.cc b/talk/session/media/channelmanager.cc
index 201a031cc3e47f7546ecb607f54634a4f95e262d..97978a6fbeb6b0917ddd29cc8e8f5872ad9c0fa2 100644
--- a/talk/session/media/channelmanager.cc
+++ b/talk/session/media/channelmanager.cc
@@ -35,10 +35,10 @@
#include "talk/app/webrtc/mediacontroller.h"
#include "talk/media/base/capturemanager.h"
+#include "talk/media/base/device.h"
#include "talk/media/base/hybriddataengine.h"
#include "talk/media/base/rtpdataengine.h"
#include "talk/media/base/videocapturer.h"
-#include "talk/media/devices/devicemanager.h"
#ifdef HAVE_SCTP
#include "talk/media/sctp/sctpdataengine.h"
#endif
@@ -78,48 +78,37 @@ static DataEngineInterface* ConstructDataEngine() {
ChannelManager::ChannelManager(MediaEngineInterface* me,
DataEngineInterface* dme,
- DeviceManagerInterface* dm,
CaptureManager* cm,
rtc::Thread* worker_thread) {
- Construct(me, dme, dm, cm, worker_thread);
+ Construct(me, dme, cm, worker_thread);
}
ChannelManager::ChannelManager(MediaEngineInterface* me,
- DeviceManagerInterface* dm,
rtc::Thread* worker_thread) {
Construct(me,
ConstructDataEngine(),
- dm,
new CaptureManager(),
worker_thread);
}
void ChannelManager::Construct(MediaEngineInterface* me,
DataEngineInterface* dme,
- DeviceManagerInterface* dm,
CaptureManager* cm,
rtc::Thread* worker_thread) {
media_engine_.reset(me);
data_media_engine_.reset(dme);
- device_manager_.reset(dm);
capture_manager_.reset(cm);
initialized_ = false;
main_thread_ = rtc::Thread::Current();
worker_thread_ = worker_thread;
// Get the default audio options from the media engine.
audio_options_ = media_engine_->GetAudioOptions();
- audio_in_device_ = DeviceManagerInterface::kDefaultDeviceName;
- audio_out_device_ = DeviceManagerInterface::kDefaultDeviceName;
audio_delay_offset_ = kDefaultAudioDelayOffset;
audio_output_volume_ = kNotSetOutputVolume;
local_renderer_ = NULL;
capturing_ = false;
enable_rtx_ = false;
- // Init the device manager immediately, and set up our default video device.
- SignalDevicesChange.repeat(device_manager_->SignalDevicesChange);
- device_manager_->Init();
-
capture_manager_->SignalCapturerStateChange.connect(
this, &ChannelManager::OnVideoCaptureStateChange);
}
@@ -156,7 +145,7 @@ bool ChannelManager::SetVideoRtxEnabled(bool enable) {
}
int ChannelManager::GetCapabilities() {
- return media_engine_->GetCapabilities() & device_manager_->GetCapabilities();
+ return media_engine_->GetCapabilities();
}
void ChannelManager::GetSupportedAudioCodecs(
@@ -221,37 +210,8 @@ bool ChannelManager::Init() {
return false;
}
- // Now that we're initialized, apply any stored preferences. A preferred
- // device might have been unplugged. In this case, we fallback to the
- // default device but keep the user preferences. The preferences are
- // changed only when the Javascript FE changes them.
- const std::string preferred_audio_in_device = audio_in_device_;
- const std::string preferred_audio_out_device = audio_out_device_;
- const std::string preferred_camera_device = camera_device_;
- Device device;
- if (!device_manager_->GetAudioInputDevice(audio_in_device_, &device)) {
- LOG(LS_WARNING) << "The preferred microphone '" << audio_in_device_
- << "' is unavailable. Fall back to the default.";
- audio_in_device_ = DeviceManagerInterface::kDefaultDeviceName;
- }
- if (!device_manager_->GetAudioOutputDevice(audio_out_device_, &device)) {
- LOG(LS_WARNING) << "The preferred speaker '" << audio_out_device_
- << "' is unavailable. Fall back to the default.";
- audio_out_device_ = DeviceManagerInterface::kDefaultDeviceName;
- }
- if (!device_manager_->GetVideoCaptureDevice(camera_device_, &device)) {
- if (!camera_device_.empty()) {
- LOG(LS_WARNING) << "The preferred camera '" << camera_device_
- << "' is unavailable. Fall back to the default.";
- }
- camera_device_ = DeviceManagerInterface::kDefaultDeviceName;
- }
-
- if (!SetAudioOptions(audio_in_device_, audio_out_device_,
- audio_options_, audio_delay_offset_)) {
+ if (!SetAudioOptions(audio_options_, audio_delay_offset_)) {
LOG(LS_WARNING) << "Failed to SetAudioOptions with"
- << " microphone: " << audio_in_device_
- << " speaker: " << audio_out_device_
<< " options: " << audio_options_.ToString()
<< " delay: " << audio_delay_offset_;
}
@@ -263,15 +223,6 @@ bool ChannelManager::Init() {
LOG(LS_WARNING) << "Failed to SetOutputVolume to "
<< audio_output_volume_;
}
- if (!SetCaptureDevice(camera_device_) && !camera_device_.empty()) {
- LOG(LS_WARNING) << "Failed to SetCaptureDevice with camera: "
- << camera_device_;
- }
-
- // Restore the user preferences.
- audio_in_device_ = preferred_audio_in_device;
- audio_out_device_ = preferred_audio_out_device;
- camera_device_ = preferred_camera_device;
// Now apply the default video codec that has been set earlier.
if (default_video_encoder_config_.max_codec.id != 0) {
@@ -310,9 +261,6 @@ void ChannelManager::Terminate_w() {
while (!voice_channels_.empty()) {
DestroyVoiceChannel_w(voice_channels_.back());
}
- if (!SetCaptureDevice_w(NULL)) {
- LOG(LS_WARNING) << "failed to delete video capturer";
- }
media_engine_->Terminate();
}
@@ -485,38 +433,11 @@ void ChannelManager::DestroyDataChannel_w(DataChannel* data_channel) {
delete data_channel;
}
-bool ChannelManager::GetAudioOptions(std::string* in_name,
- std::string* out_name,
- AudioOptions* options) {
- if (in_name)
- *in_name = audio_in_device_;
- if (out_name)
- *out_name = audio_out_device_;
- if (options)
- *options = audio_options_;
- return true;
-}
-
-bool ChannelManager::SetAudioOptions(const std::string& in_name,
- const std::string& out_name,
- const AudioOptions& options) {
- return SetAudioOptions(in_name, out_name, options, audio_delay_offset_);
-}
-
-bool ChannelManager::SetAudioOptions(const std::string& in_name,
- const std::string& out_name,
- const AudioOptions& options,
+bool ChannelManager::SetAudioOptions(const AudioOptions& options,
int delay_offset) {
- // Get device ids from DeviceManager.
- Device in_dev, out_dev;
- if (!device_manager_->GetAudioInputDevice(in_name, &in_dev)) {
- LOG(LS_WARNING) << "Failed to GetAudioInputDevice: " << in_name;
- return false;
- }
- if (!device_manager_->GetAudioOutputDevice(out_name, &out_dev)) {
- LOG(LS_WARNING) << "Failed to GetAudioOutputDevice: " << out_name;
- return false;
- }
+ // "Get device ids from DeviceManager" - these are the defaults returned.
+ Device in_dev("", -1);
+ Device out_dev("", -1);
// If we're initialized, pass the settings to the media engine.
bool ret = true;
@@ -529,8 +450,6 @@ bool ChannelManager::SetAudioOptions(const std::string& in_name,
// If all worked well, save the values for use in GetAudioOptions.
if (ret) {
audio_options_ = options;
- audio_in_device_ = in_name;
- audio_out_device_ = out_name;
audio_delay_offset_ = delay_offset;
}
return ret;
@@ -580,113 +499,6 @@ bool ChannelManager::SetOutputVolume(int level) {
return ret;
}
-bool ChannelManager::IsSameCapturer(const std::string& capturer_name,
- VideoCapturer* capturer) {
- if (capturer == NULL) {
- return false;
- }
- Device device;
- if (!device_manager_->GetVideoCaptureDevice(capturer_name, &device)) {
- return false;
- }
- return capturer->GetId() == device.id;
-}
-
-bool ChannelManager::GetVideoCaptureDevice(Device* device) {
- std::string device_name;
- if (!GetCaptureDevice(&device_name)) {
- return false;
- }
- return device_manager_->GetVideoCaptureDevice(device_name, device);
-}
-
-bool ChannelManager::GetCaptureDevice(std::string* cam_name) {
- if (camera_device_.empty()) {
- // Initialize camera_device_ with default.
- Device device;
- if (!device_manager_->GetVideoCaptureDevice(
- DeviceManagerInterface::kDefaultDeviceName, &device)) {
- LOG(LS_WARNING) << "Device manager can't find default camera: " <<
- DeviceManagerInterface::kDefaultDeviceName;
- return false;
- }
- camera_device_ = device.name;
- }
- *cam_name = camera_device_;
- return true;
-}
-
-bool ChannelManager::SetCaptureDevice(const std::string& cam_name) {
- Device device;
- bool ret = true;
- if (!device_manager_->GetVideoCaptureDevice(cam_name, &device)) {
- if (!cam_name.empty()) {
- LOG(LS_WARNING) << "Device manager can't find camera: " << cam_name;
- }
- ret = false;
- }
-
- // If we're running, tell the media engine about it.
- if (initialized_ && ret) {
- ret = worker_thread_->Invoke<bool>(
- Bind(&ChannelManager::SetCaptureDevice_w, this, &device));
- }
-
- // If everything worked, retain the name of the selected camera.
- if (ret) {
- camera_device_ = device.name;
- } else if (camera_device_.empty()) {
- // When video option setting fails, we still want camera_device_ to be in a
- // good state, so we initialize it with default if it's empty.
- Device default_device;
- if (!device_manager_->GetVideoCaptureDevice(
- DeviceManagerInterface::kDefaultDeviceName, &default_device)) {
- LOG(LS_WARNING) << "Device manager can't find default camera: " <<
- DeviceManagerInterface::kDefaultDeviceName;
- }
- camera_device_ = default_device.name;
- }
-
- return ret;
-}
-
-VideoCapturer* ChannelManager::CreateVideoCapturer() {
- Device device;
- if (!device_manager_->GetVideoCaptureDevice(camera_device_, &device)) {
- if (!camera_device_.empty()) {
- LOG(LS_WARNING) << "Device manager can't find camera: " << camera_device_;
- }
- return NULL;
- }
- VideoCapturer* capturer = device_manager_->CreateVideoCapturer(device);
- if (capturer && default_video_encoder_config_.max_codec.id != 0) {
- // For now, use the aspect ratio of the default_video_encoder_config_,
- // which may be different than the native aspect ratio of the start
- // format the camera may use.
- capturer->UpdateAspectRatio(
- default_video_encoder_config_.max_codec.width,
- default_video_encoder_config_.max_codec.height);
- }
- return capturer;
-}
-
-VideoCapturer* ChannelManager::CreateScreenCapturer(
- const ScreencastId& screenid) {
- return device_manager_->CreateScreenCapturer(screenid);
-}
-
-bool ChannelManager::SetCaptureDevice_w(const Device* cam_device) {
- ASSERT(worker_thread_ == rtc::Thread::Current());
- ASSERT(initialized_);
-
- if (!cam_device) {
- video_device_name_.clear();
- return true;
- }
- video_device_name_ = cam_device->name;
- return true;
-}
-
bool ChannelManager::SetDefaultVideoEncoderConfig(const VideoEncoderConfig& c) {
bool ret = true;
if (initialized_) {
@@ -834,42 +646,6 @@ static void GetDeviceNames(const std::vector<Device>& devs,
}
}
-bool ChannelManager::GetAudioInputDevices(std::vector<std::string>* names) {
- names->clear();
- std::vector<Device> devs;
- bool ret = device_manager_->GetAudioInputDevices(&devs);
- if (ret)
- GetDeviceNames(devs, names);
-
- return ret;
-}
-
-bool ChannelManager::GetAudioOutputDevices(std::vector<std::string>* names) {
- names->clear();
- std::vector<Device> devs;
- bool ret = device_manager_->GetAudioOutputDevices(&devs);
- if (ret)
- GetDeviceNames(devs, names);
-
- return ret;
-}
-
-bool ChannelManager::GetVideoCaptureDevices(std::vector<std::string>* names) {
- names->clear();
- std::vector<Device> devs;
- bool ret = device_manager_->GetVideoCaptureDevices(&devs);
- if (ret)
- GetDeviceNames(devs, names);
-
- return ret;
-}
-
-void ChannelManager::SetVideoCaptureDeviceMaxFormat(
- const std::string& usb_id,
- const VideoFormat& max_format) {
- device_manager_->SetVideoCaptureDeviceMaxFormat(usb_id, max_format);
-}
-
bool ChannelManager::StartAecDump(rtc::PlatformFile file) {
return worker_thread_->Invoke<bool>(
Bind(&MediaEngineInterface::StartAecDump, media_engine_.get(), file));
« no previous file with comments | « talk/session/media/channelmanager.h ('k') | talk/session/media/channelmanager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698