OLD | NEW |
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 15 matching lines...) Expand all Loading... |
26 #ifdef HAVE_WEBRTC_VIDEO | 26 #ifdef HAVE_WEBRTC_VIDEO |
27 : public CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2> { | 27 : public CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2> { |
28 #else | 28 #else |
29 : public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> { | 29 : public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> { |
30 #endif | 30 #endif |
31 public: | 31 public: |
32 WebRtcMediaEngine2(webrtc::AudioDeviceModule* adm, | 32 WebRtcMediaEngine2(webrtc::AudioDeviceModule* adm, |
33 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& | 33 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& |
34 audio_decoder_factory, | 34 audio_decoder_factory, |
35 WebRtcVideoEncoderFactory* video_encoder_factory, | 35 WebRtcVideoEncoderFactory* video_encoder_factory, |
36 WebRtcVideoDecoderFactory* video_decoder_factory, | 36 WebRtcVideoDecoderFactory* video_decoder_factory) |
37 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) | |
38 #ifdef HAVE_WEBRTC_VIDEO | 37 #ifdef HAVE_WEBRTC_VIDEO |
39 : CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2>( | 38 : CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine2>( |
40 adm, | 39 adm, audio_decoder_factory){ |
41 audio_decoder_factory, | |
42 audio_mixer){ | |
43 #else | 40 #else |
44 : CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>( | 41 : CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>( |
45 adm, | 42 adm, audio_decoder_factory) { |
46 audio_decoder_factory, | |
47 audio_mixer) { | |
48 #endif | 43 #endif |
49 video_.SetExternalDecoderFactory(video_decoder_factory); | 44 video_.SetExternalDecoderFactory(video_decoder_factory); |
50 video_.SetExternalEncoderFactory(video_encoder_factory); | 45 video_.SetExternalEncoderFactory(video_encoder_factory); |
51 } | 46 } |
52 }; | 47 }; |
53 | 48 |
54 } // namespace cricket | 49 } // namespace cricket |
55 | 50 |
56 cricket::MediaEngineInterface* CreateWebRtcMediaEngine( | 51 cricket::MediaEngineInterface* CreateWebRtcMediaEngine( |
57 webrtc::AudioDeviceModule* adm, | 52 webrtc::AudioDeviceModule* adm, |
58 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& | 53 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& |
59 audio_decoder_factory, | 54 audio_decoder_factory, |
60 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, | 55 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, |
61 cricket::WebRtcVideoDecoderFactory* video_decoder_factory, | 56 cricket::WebRtcVideoDecoderFactory* video_decoder_factory) { |
62 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) { | 57 return new cricket::WebRtcMediaEngine2( |
63 return new cricket::WebRtcMediaEngine2(adm, audio_decoder_factory, | 58 adm, audio_decoder_factory, video_encoder_factory, video_decoder_factory); |
64 video_encoder_factory, | |
65 video_decoder_factory, audio_mixer); | |
66 } | 59 } |
67 | 60 |
68 void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { | 61 void DestroyWebRtcMediaEngine(cricket::MediaEngineInterface* media_engine) { |
69 delete media_engine; | 62 delete media_engine; |
70 } | 63 } |
71 | 64 |
72 namespace cricket { | 65 namespace cricket { |
73 | 66 |
74 // TODO(ossu): Backwards-compatible interface. Will be deprecated once the | 67 // TODO(ossu): Backwards-compatible interface. Will be deprecated once the |
75 // audio decoder factory is fully plumbed and used throughout WebRTC. | 68 // audio decoder factory is fully plumbed and used throughout WebRTC. |
76 // See: crbug.com/webrtc/6000 | 69 // See: crbug.com/webrtc/6000 |
77 MediaEngineInterface* WebRtcMediaEngineFactory::Create( | 70 MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
78 webrtc::AudioDeviceModule* adm, | 71 webrtc::AudioDeviceModule* adm, |
79 WebRtcVideoEncoderFactory* video_encoder_factory, | 72 WebRtcVideoEncoderFactory* video_encoder_factory, |
80 WebRtcVideoDecoderFactory* video_decoder_factory) { | 73 WebRtcVideoDecoderFactory* video_decoder_factory) { |
81 return CreateWebRtcMediaEngine( | 74 return CreateWebRtcMediaEngine(adm, |
82 adm, webrtc::CreateBuiltinAudioDecoderFactory(), video_encoder_factory, | 75 webrtc::CreateBuiltinAudioDecoderFactory(), |
83 video_decoder_factory, nullptr); | 76 video_encoder_factory, video_decoder_factory); |
84 } | 77 } |
85 | 78 |
86 // Used by PeerConnectionFactory to create a media engine passed into | 79 // Used by PeerConnectionFactory to create a media engine passed into |
87 // ChannelManager. | 80 // ChannelManager. |
88 MediaEngineInterface* WebRtcMediaEngineFactory::Create( | 81 MediaEngineInterface* WebRtcMediaEngineFactory::Create( |
89 webrtc::AudioDeviceModule* adm, | 82 webrtc::AudioDeviceModule* adm, |
90 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& | 83 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& |
91 audio_decoder_factory, | 84 audio_decoder_factory, |
92 WebRtcVideoEncoderFactory* video_encoder_factory, | 85 WebRtcVideoEncoderFactory* video_encoder_factory, |
93 WebRtcVideoDecoderFactory* video_decoder_factory, | 86 WebRtcVideoDecoderFactory* video_decoder_factory) { |
94 rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer) { | |
95 return CreateWebRtcMediaEngine(adm, audio_decoder_factory, | 87 return CreateWebRtcMediaEngine(adm, audio_decoder_factory, |
96 video_encoder_factory, video_decoder_factory, | 88 video_encoder_factory, video_decoder_factory); |
97 audio_mixer); | |
98 } | 89 } |
99 | 90 |
100 namespace { | 91 namespace { |
101 // Remove mutually exclusive extensions with lower priority. | 92 // Remove mutually exclusive extensions with lower priority. |
102 void DiscardRedundantExtensions( | 93 void DiscardRedundantExtensions( |
103 std::vector<webrtc::RtpExtension>* extensions, | 94 std::vector<webrtc::RtpExtension>* extensions, |
104 rtc::ArrayView<const char*> extensions_decreasing_prio) { | 95 rtc::ArrayView<const char*> extensions_decreasing_prio) { |
105 RTC_DCHECK(extensions); | 96 RTC_DCHECK(extensions); |
106 bool found = false; | 97 bool found = false; |
107 for (const char* uri : extensions_decreasing_prio) { | 98 for (const char* uri : extensions_decreasing_prio) { |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 static const char* kBweExtensionPriorities[] = { | 162 static const char* kBweExtensionPriorities[] = { |
172 webrtc::RtpExtension::kTransportSequenceNumberUri, | 163 webrtc::RtpExtension::kTransportSequenceNumberUri, |
173 webrtc::RtpExtension::kAbsSendTimeUri, | 164 webrtc::RtpExtension::kAbsSendTimeUri, |
174 webrtc::RtpExtension::kTimestampOffsetUri}; | 165 webrtc::RtpExtension::kTimestampOffsetUri}; |
175 DiscardRedundantExtensions(&result, kBweExtensionPriorities); | 166 DiscardRedundantExtensions(&result, kBweExtensionPriorities); |
176 } | 167 } |
177 | 168 |
178 return result; | 169 return result; |
179 } | 170 } |
180 } // namespace cricket | 171 } // namespace cricket |
OLD | NEW |