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

Side by Side Diff: webrtc/media/engine/webrtcmediaengine.cc

Issue 1949533002: WIP: Move the creation of AudioCodecFactory into PeerConnectionFactory. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 10 matching lines...) Expand all
21 21
22 namespace cricket { 22 namespace cricket {
23 23
24 class WebRtcMediaEngine2 24 class WebRtcMediaEngine2
25 #ifdef HAVE_WEBRTC_VIDEO 25 #ifdef HAVE_WEBRTC_VIDEO
26 : public CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2> { 26 : public CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2> {
27 #else 27 #else
28 : public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> { 28 : public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> {
29 #endif 29 #endif
30 public: 30 public:
31 WebRtcMediaEngine2(webrtc::AudioDeviceModule* adm, 31 WebRtcMediaEngine2(
32 WebRtcVideoEncoderFactory* encoder_factory, 32 webrtc::AudioDeviceModule* adm,
33 WebRtcVideoDecoderFactory* decoder_factory) 33 std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
34 WebRtcVideoEncoderFactory* video_encoder_factory,
35 WebRtcVideoDecoderFactory* video_decoder_factory)
34 #ifdef HAVE_WEBRTC_VIDEO 36 #ifdef HAVE_WEBRTC_VIDEO
35 : CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2>(adm) { 37 : CompositeMediaEngine<WebRtcVoiceEngine,
38 WebRtcVideoEngine2>(
39 adm, std::move(audio_decoder_factory)) {
36 #else 40 #else
37 : CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>(adm) { 41 : CompositeMediaEngine<WebRtcVoiceEngine,
42 NullWebRtcVideoEngine>(
43 adm, std::move(audio_decoder_factory)) {
38 #endif 44 #endif
39 video_.SetExternalDecoderFactory(decoder_factory); 45 video_.SetExternalDecoderFactory(video_decoder_factory);
40 video_.SetExternalEncoderFactory(encoder_factory); 46 video_.SetExternalEncoderFactory(video_encoder_factory);
41 } 47 }
42 }; 48 };
43 49
44 } // namespace cricket 50 } // namespace cricket
45 51
46 cricket::MediaEngineInterface* CreateWebRtcMediaEngine( 52 cricket::MediaEngineInterface* CreateWebRtcMediaEngine(
47 webrtc::AudioDeviceModule* adm, 53 webrtc::AudioDeviceModule* adm,
48 cricket::WebRtcVideoEncoderFactory* encoder_factory, 54 std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
49 cricket::WebRtcVideoDecoderFactory* decoder_factory) { 55 cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
50 return new cricket::WebRtcMediaEngine2(adm, encoder_factory, 56 cricket::WebRtcVideoDecoderFactory* video_decoder_factory) {
51 decoder_factory); 57 return new cricket::WebRtcMediaEngine2(adm,
58 audio_decoder_factory,
59 video_encoder_factory,
60 video_decoder_factory);
52 } 61 }
53 62
54 void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { 63 void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) {
55 delete media_engine; 64 delete media_engine;
56 } 65 }
57 66
58 namespace cricket { 67 namespace cricket {
59 68
60 // Used by PeerConnectionFactory to create a media engine passed into 69 // Used by PeerConnectionFactory to create a media engine passed into
61 // ChannelManager. 70 // ChannelManager.
62 MediaEngineInterface* WebRtcMediaEngineFactory::Create( 71 MediaEngineInterface* WebRtcMediaEngineFactory::Create(
63 webrtc::AudioDeviceModule* adm, 72 webrtc::AudioDeviceModule* adm,
73 std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
64 WebRtcVideoEncoderFactory* encoder_factory, 74 WebRtcVideoEncoderFactory* encoder_factory,
65 WebRtcVideoDecoderFactory* decoder_factory) { 75 WebRtcVideoDecoderFactory* decoder_factory) {
66 return CreateWebRtcMediaEngine(adm, encoder_factory, decoder_factory); 76 return CreateWebRtcMediaEngine(adm,
77 std::move(audio_decoder_factory),
78 encoder_factory,
79 decoder_factory);
67 } 80 }
68 81
69 namespace { 82 namespace {
70 // Remove mutually exclusive extensions with lower priority. 83 // Remove mutually exclusive extensions with lower priority.
71 void DiscardRedundantExtensions( 84 void DiscardRedundantExtensions(
72 std::vector<webrtc::RtpExtension>* extensions, 85 std::vector<webrtc::RtpExtension>* extensions,
73 rtc::ArrayView<const char*> extensions_decreasing_prio) { 86 rtc::ArrayView<const char*> extensions_decreasing_prio) {
74 RTC_DCHECK(extensions); 87 RTC_DCHECK(extensions);
75 bool found = false; 88 bool found = false;
76 for (const char* name : extensions_decreasing_prio) { 89 for (const char* name : extensions_decreasing_prio) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 kRtpTransportSequenceNumberHeaderExtension, 154 kRtpTransportSequenceNumberHeaderExtension,
142 kRtpAbsoluteSenderTimeHeaderExtension, 155 kRtpAbsoluteSenderTimeHeaderExtension,
143 kRtpTimestampOffsetHeaderExtension 156 kRtpTimestampOffsetHeaderExtension
144 }; 157 };
145 DiscardRedundantExtensions(&result, kBweExtensionPriorities); 158 DiscardRedundantExtensions(&result, kBweExtensionPriorities);
146 } 159 }
147 160
148 return result; 161 return result;
149 } 162 }
150 } // namespace cricket 163 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698