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

Side by Side Diff: webrtc/media/engine/webrtcvoiceengine.h

Issue 1991233004: Moved creation of AudioDecoderFactory to inside PeerConnectionFactory. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@audio-decoder-factory-injections-3
Patch Set: Parental Advisory: Explicit Content Created 4 years, 6 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) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 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 28 matching lines...) Expand all
39 class WebRtcVoiceMediaChannel; 39 class WebRtcVoiceMediaChannel;
40 40
41 // WebRtcVoiceEngine is a class to be used with CompositeMediaEngine. 41 // WebRtcVoiceEngine is a class to be used with CompositeMediaEngine.
42 // It uses the WebRtc VoiceEngine library for audio handling. 42 // It uses the WebRtc VoiceEngine library for audio handling.
43 class WebRtcVoiceEngine final : public webrtc::TraceCallback { 43 class WebRtcVoiceEngine final : public webrtc::TraceCallback {
44 friend class WebRtcVoiceMediaChannel; 44 friend class WebRtcVoiceMediaChannel;
45 public: 45 public:
46 // Exposed for the WVoE/MC unit test. 46 // Exposed for the WVoE/MC unit test.
47 static bool ToCodecInst(const AudioCodec& in, webrtc::CodecInst* out); 47 static bool ToCodecInst(const AudioCodec& in, webrtc::CodecInst* out);
48 48
49 explicit WebRtcVoiceEngine(webrtc::AudioDeviceModule* adm); 49 WebRtcVoiceEngine(
50 webrtc::AudioDeviceModule* adm,
51 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory);
50 // Dependency injection for testing. 52 // Dependency injection for testing.
51 WebRtcVoiceEngine(webrtc::AudioDeviceModule* adm, VoEWrapper* voe_wrapper); 53 WebRtcVoiceEngine(
54 webrtc::AudioDeviceModule* adm,
55 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
56 VoEWrapper* voe_wrapper);
52 ~WebRtcVoiceEngine() override; 57 ~WebRtcVoiceEngine() override;
53 58
54 rtc::scoped_refptr<webrtc::AudioState> GetAudioState() const; 59 rtc::scoped_refptr<webrtc::AudioState> GetAudioState() const;
55 VoiceMediaChannel* CreateChannel(webrtc::Call* call, 60 VoiceMediaChannel* CreateChannel(webrtc::Call* call,
56 const MediaConfig& config, 61 const MediaConfig& config,
57 const AudioOptions& options); 62 const AudioOptions& options);
58 63
59 bool GetOutputVolume(int* level); 64 bool GetOutputVolume(int* level);
60 bool SetOutputVolume(int level); 65 bool SetOutputVolume(int level);
61 int GetInputLevel(); 66 int GetInputLevel();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 110
106 void StartAecDump(const std::string& filename); 111 void StartAecDump(const std::string& filename);
107 int CreateVoEChannel(); 112 int CreateVoEChannel();
108 webrtc::AudioDeviceModule* adm(); 113 webrtc::AudioDeviceModule* adm();
109 114
110 rtc::ThreadChecker signal_thread_checker_; 115 rtc::ThreadChecker signal_thread_checker_;
111 rtc::ThreadChecker worker_thread_checker_; 116 rtc::ThreadChecker worker_thread_checker_;
112 117
113 // The audio device manager. 118 // The audio device manager.
114 rtc::scoped_refptr<webrtc::AudioDeviceModule> adm_; 119 rtc::scoped_refptr<webrtc::AudioDeviceModule> adm_;
120 rtc::scoped_refptr<webrtc::AudioDecoderFactory> decoder_factory_;
115 // The primary instance of WebRtc VoiceEngine. 121 // The primary instance of WebRtc VoiceEngine.
116 std::unique_ptr<VoEWrapper> voe_wrapper_; 122 std::unique_ptr<VoEWrapper> voe_wrapper_;
117 rtc::scoped_refptr<webrtc::AudioState> audio_state_; 123 rtc::scoped_refptr<webrtc::AudioState> audio_state_;
118 std::vector<AudioCodec> codecs_; 124 std::vector<AudioCodec> codecs_;
119 std::vector<WebRtcVoiceMediaChannel*> channels_; 125 std::vector<WebRtcVoiceMediaChannel*> channels_;
120 webrtc::Config voe_config_; 126 webrtc::Config voe_config_;
121 bool is_dumping_aec_ = false; 127 bool is_dumping_aec_ = false;
122 128
123 webrtc::AgcConfig default_agc_config_; 129 webrtc::AgcConfig default_agc_config_;
124 // Cache received extended_filter_aec, delay_agnostic_aec, experimental_ns and 130 // Cache received extended_filter_aec, delay_agnostic_aec, experimental_ns and
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 int cng_payload_type = -1; 298 int cng_payload_type = -1;
293 int cng_plfreq = -1; 299 int cng_plfreq = -1;
294 webrtc::CodecInst codec_inst; 300 webrtc::CodecInst codec_inst;
295 } send_codec_spec_; 301 } send_codec_spec_;
296 302
297 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(WebRtcVoiceMediaChannel); 303 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(WebRtcVoiceMediaChannel);
298 }; 304 };
299 } // namespace cricket 305 } // namespace cricket
300 306
301 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ 307 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVOICEENGINE_H_
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2_unittest.cc ('k') | webrtc/media/engine/webrtcvoiceengine.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698