| Index: content/renderer/media/audio_device_factory.cc
|
| diff --git a/content/renderer/media/audio_device_factory.cc b/content/renderer/media/audio_device_factory.cc
|
| index 52ed68e0211b8ba2b46b13cf7d98801a4f5be160..a368829584e4c0ba5c8776a351affe7f290421f1 100644
|
| --- a/content/renderer/media/audio_device_factory.cc
|
| +++ b/content/renderer/media/audio_device_factory.cc
|
| @@ -5,12 +5,16 @@
|
| #include "content/renderer/media/audio_device_factory.h"
|
|
|
| #include <algorithm>
|
| +#include <memory>
|
| +#include <utility>
|
|
|
| #include "base/logging.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "build/build_config.h"
|
| #include "content/common/content_constants_internal.h"
|
| +#include "content/public/common/content_features.h"
|
| #include "content/renderer/media/audio_input_message_filter.h"
|
| +#include "content/renderer/media/audio_ipc_factory.h"
|
| #include "content/renderer/media/audio_message_filter.h"
|
| #include "content/renderer/media/audio_renderer_mixer_manager.h"
|
| #include "content/renderer/render_thread_impl.h"
|
| @@ -42,14 +46,23 @@ scoped_refptr<media::AudioOutputDevice> NewOutputDevice(
|
| int session_id,
|
| const std::string& device_id,
|
| const url::Origin& security_origin) {
|
| - AudioMessageFilter* const filter = AudioMessageFilter::Get();
|
| - scoped_refptr<media::AudioOutputDevice> device(new media::AudioOutputDevice(
|
| - filter->CreateAudioOutputIPC(render_frame_id), filter->io_task_runner(),
|
| - session_id, device_id, security_origin,
|
| - // Set authorization request timeout at 80% of renderer hung timeout, but
|
| - // no more than kMaxAuthorizationTimeout.
|
| - base::TimeDelta::FromMilliseconds(std::min(kHungRendererDelayMs * 8 / 10,
|
| - kMaxAuthorizationTimeoutMs))));
|
| + std::unique_ptr<media::AudioOutputIPC> ipc;
|
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner;
|
| + if (base::FeatureList::IsEnabled(
|
| + features::kUseMojoAudioOutputStreamFactory)) {
|
| + ipc = AudioIPCFactory::get()->CreateAudioOutputIPC(render_frame_id);
|
| + io_task_runner = AudioIPCFactory::get()->io_task_runner();
|
| + } else {
|
| + AudioMessageFilter* const filter = AudioMessageFilter::Get();
|
| + ipc = filter->CreateAudioOutputIPC(render_frame_id);
|
| + io_task_runner = filter->io_task_runner();
|
| + }
|
| + scoped_refptr<media::AudioOutputDevice> device = new media::AudioOutputDevice(
|
| + std::move(ipc), io_task_runner, session_id, device_id, security_origin,
|
| + // Set authorization request timeout at 80% of renderer hung timeout,
|
| + // but no more than kMaxAuthorizationTimeout.
|
| + base::TimeDelta::FromMilliseconds(
|
| + std::min(kHungRendererDelayMs * 8 / 10, kMaxAuthorizationTimeoutMs)));
|
| device->RequestDeviceAuthorization();
|
| return device;
|
| }
|
|
|