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

Unified Diff: media/audio/audio_output_device.cc

Issue 1769933002: Looking up device id by session id for AudioRendererMixerInput (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment and bug ref to remove AudioManagerBase dependency Created 4 years, 8 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 | « media/audio/audio_output_device.h ('k') | media/audio/audio_output_device_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/audio_output_device.cc
diff --git a/media/audio/audio_output_device.cc b/media/audio/audio_output_device.cc
index 1468123ac4510765a53fa0547480de1ab40a483e..303f0d64587955ec32d1219378f5a6f894b6920d 100644
--- a/media/audio/audio_output_device.cc
+++ b/media/audio/audio_output_device.cc
@@ -16,6 +16,7 @@
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
+#include "media/audio/audio_manager_base.h"
#include "media/audio/audio_output_controller.h"
#include "media/base/limits.h"
@@ -141,7 +142,11 @@ bool AudioOutputDevice::SetVolume(double volume) {
OutputDeviceInfo AudioOutputDevice::GetOutputDeviceInfo() {
CHECK(!task_runner()->BelongsToCurrentThread());
did_receive_auth_.Wait();
- return OutputDeviceInfo(device_id_, device_status_, output_params_);
+ return OutputDeviceInfo(
+ AudioManagerBase::UseSessionIdToSelectDevice(session_id_, device_id_)
+ ? matched_device_id_
+ : device_id_,
+ device_status_, output_params_);
}
void AudioOutputDevice::RequestDeviceAuthorizationOnIOThread() {
@@ -276,7 +281,8 @@ void AudioOutputDevice::OnStateChanged(AudioOutputIPCDelegateState state) {
void AudioOutputDevice::OnDeviceAuthorized(
OutputDeviceStatus device_status,
- const media::AudioParameters& output_params) {
+ const media::AudioParameters& output_params,
+ const std::string& matched_device_id) {
DCHECK(task_runner()->BelongsToCurrentThread());
DCHECK_EQ(state_, AUTHORIZING);
@@ -295,6 +301,19 @@ void AudioOutputDevice::OnDeviceAuthorized(
state_ = AUTHORIZED;
if (!did_receive_auth_.IsSignaled()) {
output_params_ = output_params;
+
+ // It's possible to not have a matched device obtained via session id. It
+ // means matching output device through |session_id_| failed and the
+ // default device is used.
+ DCHECK(AudioManagerBase::UseSessionIdToSelectDevice(session_id_,
+ device_id_) ||
+ matched_device_id_.empty());
+ matched_device_id_ = matched_device_id;
+
+ DVLOG(1) << "AudioOutputDevice authorized, session_id: " << session_id_
+ << ", device_id: " << device_id_
+ << ", matched_device_id: " << matched_device_id_;
+
did_receive_auth_.Signal();
}
if (start_on_authorized_)
« no previous file with comments | « media/audio/audio_output_device.h ('k') | media/audio/audio_output_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698