webrtc_m130/api/voip/voip_engine_factory.cc
Tim Na 254ad1b914 Delay VoipCore initialization.
Starting from Android N, mobile app may not be able to access
microphone while in background where it fails the call.
In order to mitigate the issue, delay the ADM initialization
as late as possible.

Bug: webrtc:12120
Change-Id: I0fbf0300299b6c53413dfaaf88f748edc0a06bc1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191100
Commit-Queue: Tim Na <natim@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32598}
2020-11-12 18:05:19 +00:00

38 lines
1.3 KiB
C++

/*
* Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "api/voip/voip_engine_factory.h"
#include <utility>
#include "audio/voip/voip_core.h"
#include "rtc_base/logging.h"
namespace webrtc {
std::unique_ptr<VoipEngine> CreateVoipEngine(VoipEngineConfig config) {
RTC_CHECK(config.encoder_factory);
RTC_CHECK(config.decoder_factory);
RTC_CHECK(config.task_queue_factory);
RTC_CHECK(config.audio_device_module);
if (!config.audio_processing) {
RTC_DLOG(INFO) << "No audio processing functionality provided.";
}
return std::make_unique<VoipCore>(std::move(config.encoder_factory),
std::move(config.decoder_factory),
std::move(config.task_queue_factory),
std::move(config.audio_device_module),
std::move(config.audio_processing));
}
} // namespace webrtc