From 111744e1d7b12e943d2c214800dc6616b9791146 Mon Sep 17 00:00:00 2001 From: ossu Date: Wed, 15 Jun 2016 02:22:32 -0700 Subject: [PATCH] Added backwards compatible version of WebRtcMediaEngineFactory::Create. Added notry to unbreak clients quickly. NOTRY=True BUG=webrtc:6000 Review-Url: https://codereview.webrtc.org/2069643002 Cr-Commit-Position: refs/heads/master@{#13150} --- webrtc/media/engine/webrtcmediaengine.cc | 13 +++++++++++++ webrtc/media/engine/webrtcmediaengine.h | 8 ++++++++ webrtc/media/engine/webrtcmediaengine_unittest.cc | 14 ++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/webrtc/media/engine/webrtcmediaengine.cc b/webrtc/media/engine/webrtcmediaengine.cc index 53e15d6575..51a110b88b 100644 --- a/webrtc/media/engine/webrtcmediaengine.cc +++ b/webrtc/media/engine/webrtcmediaengine.cc @@ -9,6 +9,7 @@ */ #include "webrtc/media/engine/webrtcmediaengine.h" +#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h" #include @@ -63,6 +64,18 @@ void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { namespace cricket { +// TODO(ossu): Backwards-compatible interface. Will be deprecated once the +// audio decoder factory is fully plumbed and used throughout WebRTC. +// See: crbug.com/webrtc/6000 +MediaEngineInterface* WebRtcMediaEngineFactory::Create( + webrtc::AudioDeviceModule* adm, + WebRtcVideoEncoderFactory* video_encoder_factory, + WebRtcVideoDecoderFactory* video_decoder_factory) { + return CreateWebRtcMediaEngine(adm, + webrtc::CreateBuiltinAudioDecoderFactory(), + video_encoder_factory, video_decoder_factory); +} + // Used by PeerConnectionFactory to create a media engine passed into // ChannelManager. MediaEngineInterface* WebRtcMediaEngineFactory::Create( diff --git a/webrtc/media/engine/webrtcmediaengine.h b/webrtc/media/engine/webrtcmediaengine.h index 332f8751e4..24deeb4d0e 100644 --- a/webrtc/media/engine/webrtcmediaengine.h +++ b/webrtc/media/engine/webrtcmediaengine.h @@ -29,6 +29,14 @@ namespace cricket { class WebRtcMediaEngineFactory { public: + // TODO(ossu): Backwards-compatible interface. Will be deprecated once the + // audio decoder factory is fully plumbed and used throughout WebRTC. + // See: crbug.com/webrtc/6000 + static MediaEngineInterface* Create( + webrtc::AudioDeviceModule* adm, + WebRtcVideoEncoderFactory* video_encoder_factory, + WebRtcVideoDecoderFactory* video_decoder_factory); + static MediaEngineInterface* Create( webrtc::AudioDeviceModule* adm, const rtc::scoped_refptr& diff --git a/webrtc/media/engine/webrtcmediaengine_unittest.cc b/webrtc/media/engine/webrtcmediaengine_unittest.cc index f7ae7db73d..a3e4120e1b 100644 --- a/webrtc/media/engine/webrtcmediaengine_unittest.cc +++ b/webrtc/media/engine/webrtcmediaengine_unittest.cc @@ -10,6 +10,7 @@ #include "testing/gtest/include/gtest/gtest.h" +#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h" #include "webrtc/media/engine/webrtcmediaengine.h" using webrtc::RtpExtension; @@ -179,4 +180,17 @@ TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBwe_3) { EXPECT_EQ(1, filtered.size()); EXPECT_EQ(RtpExtension::kTimestampOffsetUri, filtered[0].uri); } + +TEST(WebRtcMediaEngineFactoryTest, CreateOldApi) { + std::unique_ptr engine( + WebRtcMediaEngineFactory::Create(nullptr, nullptr, nullptr)); + EXPECT_TRUE(engine); +} + +TEST(WebRtcMediaEngineFactoryTest, CreateWithBuiltinDecoders) { + std::unique_ptr engine(WebRtcMediaEngineFactory::Create( + nullptr, webrtc::CreateBuiltinAudioDecoderFactory(), nullptr, nullptr)); + EXPECT_TRUE(engine); +} + } // namespace cricket