mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Use Environemnt in MedaFactory::CreateMediaEngine
to propagate field trials and task queue factory Bug: webrtc:15656 Change-Id: I2d19e169d2ff1cc871899a0e96b1733333fdc604 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328881 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41257}
This commit is contained in:
parent
3c5850148e
commit
680f103baa
7 changed files with 20 additions and 15 deletions
|
@ -47,6 +47,7 @@ rtc_source_set("enable_media") {
|
|||
"../media:rtc_audio_video",
|
||||
"../pc:media_factory",
|
||||
"../rtc_base/system:rtc_export",
|
||||
"environment",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -1433,6 +1434,7 @@ if (rtc_include_tests) {
|
|||
"../rtc_base:checks",
|
||||
"../system_wrappers",
|
||||
"../test/time_controller",
|
||||
"environment",
|
||||
]
|
||||
absl_deps = [ "//third_party/abseil-cpp/absl/base:nullability" ]
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "api/environment/environment.h"
|
||||
#include "api/peer_connection_interface.h"
|
||||
#include "call/call_factory.h"
|
||||
#include "media/engine/webrtc_media_engine.h"
|
||||
|
@ -41,26 +42,18 @@ class MediaFactoryImpl : public MediaFactory {
|
|||
}
|
||||
|
||||
std::unique_ptr<MediaEngineInterface> CreateMediaEngine(
|
||||
const Environment& env,
|
||||
PeerConnectionFactoryDependencies& deps) override {
|
||||
std::unique_ptr<FieldTrialsView> fallback_trials;
|
||||
const FieldTrialsView* trials;
|
||||
if (deps.trials) {
|
||||
trials = deps.trials.get();
|
||||
} else {
|
||||
fallback_trials = std::make_unique<FieldTrialBasedConfig>();
|
||||
trials = fallback_trials.get();
|
||||
}
|
||||
auto audio_engine = std::make_unique<WebRtcVoiceEngine>(
|
||||
deps.task_queue_factory.get(), deps.adm.get(),
|
||||
&env.task_queue_factory(), deps.adm.get(),
|
||||
std::move(deps.audio_encoder_factory),
|
||||
std::move(deps.audio_decoder_factory), std::move(deps.audio_mixer),
|
||||
std::move(deps.audio_processing), std::move(deps.audio_frame_processor),
|
||||
*trials);
|
||||
env.field_trials());
|
||||
auto video_engine = std::make_unique<WebRtcVideoEngine>(
|
||||
std::move(deps.video_encoder_factory),
|
||||
std::move(deps.video_decoder_factory), *trials);
|
||||
return std::make_unique<CompositeMediaEngine>(std::move(fallback_trials),
|
||||
std::move(audio_engine),
|
||||
std::move(deps.video_decoder_factory), env.field_trials());
|
||||
return std::make_unique<CompositeMediaEngine>(std::move(audio_engine),
|
||||
std::move(video_engine));
|
||||
}
|
||||
};
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "absl/base/nullability.h"
|
||||
#include "api/enable_media_with_defaults.h"
|
||||
#include "api/environment/environment.h"
|
||||
#include "api/peer_connection_interface.h"
|
||||
#include "call/call.h"
|
||||
#include "call/rtp_transport_config.h"
|
||||
|
@ -74,8 +75,9 @@ void EnableMediaWithDefaultsAndTimeController(
|
|||
}
|
||||
|
||||
std::unique_ptr<cricket::MediaEngineInterface> CreateMediaEngine(
|
||||
const Environment& env,
|
||||
PeerConnectionFactoryDependencies& dependencies) override {
|
||||
return media_factory_->CreateMediaEngine(dependencies);
|
||||
return media_factory_->CreateMediaEngine(env, dependencies);
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -318,6 +318,7 @@ rtc_source_set("media_factory") {
|
|||
sources = [ "media_factory.h" ]
|
||||
deps = [
|
||||
"../api:callfactory_api",
|
||||
"../api/environment",
|
||||
"../call:call_interfaces",
|
||||
"../media:rtc_media_base",
|
||||
]
|
||||
|
@ -2746,6 +2747,7 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||
deps = [
|
||||
":media_factory",
|
||||
"../api:libjingle_peerconnection_api",
|
||||
"../api/environment",
|
||||
"../call:call_interfaces",
|
||||
"../media:rtc_media_tests_utils",
|
||||
"../rtc_base:checks",
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "api/environment/environment.h"
|
||||
#include "api/transport/field_trial_based_config.h"
|
||||
#include "media/base/media_engine.h"
|
||||
#include "media/sctp/sctp_transport_factory.h"
|
||||
|
@ -114,7 +115,8 @@ ConnectionContext::ConnectionContext(
|
|||
env_(env),
|
||||
media_engine_(
|
||||
dependencies->media_factory != nullptr
|
||||
? dependencies->media_factory->CreateMediaEngine(*dependencies)
|
||||
? dependencies->media_factory->CreateMediaEngine(env_,
|
||||
*dependencies)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
: std::move(dependencies->media_engine)),
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <memory>
|
||||
|
||||
#include "api/call/call_factory_interface.h"
|
||||
#include "api/environment/environment.h"
|
||||
#include "call/call.h"
|
||||
#include "call/call_config.h"
|
||||
#include "media/base/media_engine.h"
|
||||
|
@ -38,6 +39,7 @@ class MediaFactory : public CallFactoryInterface {
|
|||
|
||||
std::unique_ptr<Call> CreateCall(const CallConfig& config) override = 0;
|
||||
virtual std::unique_ptr<cricket::MediaEngineInterface> CreateMediaEngine(
|
||||
const Environment& env,
|
||||
PeerConnectionFactoryDependencies& dependencies) = 0;
|
||||
};
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <utility>
|
||||
|
||||
#include "absl/base/nullability.h"
|
||||
#include "api/environment/environment.h"
|
||||
#include "api/peer_connection_interface.h"
|
||||
#include "call/call.h"
|
||||
#include "call/call_config.h"
|
||||
|
@ -40,6 +41,7 @@ void EnableFakeMedia(
|
|||
}
|
||||
|
||||
std::unique_ptr<MediaEngineInterface> CreateMediaEngine(
|
||||
const Environment& /*env*/,
|
||||
PeerConnectionFactoryDependencies& /*dependencies*/) {
|
||||
RTC_CHECK(fake_ != nullptr)
|
||||
<< "CreateMediaEngine can be called at most once.";
|
||||
|
|
Loading…
Reference in a new issue