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

Side by Side Diff: talk/media/webrtc/webrtcvoe.h

Issue 1390753002: Implement AudioReceiveStream::GetStats(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: merge master Created 5 years, 2 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
« no previous file with comments | « talk/media/webrtc/fakewebrtcvoiceengine.h ('k') | talk/media/webrtc/webrtcvoiceengine.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 20 matching lines...) Expand all
31 #include "talk/media/webrtc/webrtccommon.h" 31 #include "talk/media/webrtc/webrtccommon.h"
32 #include "webrtc/base/common.h" 32 #include "webrtc/base/common.h"
33 33
34 #include "webrtc/common_types.h" 34 #include "webrtc/common_types.h"
35 #include "webrtc/modules/audio_device/include/audio_device.h" 35 #include "webrtc/modules/audio_device/include/audio_device.h"
36 #include "webrtc/voice_engine/include/voe_audio_processing.h" 36 #include "webrtc/voice_engine/include/voe_audio_processing.h"
37 #include "webrtc/voice_engine/include/voe_base.h" 37 #include "webrtc/voice_engine/include/voe_base.h"
38 #include "webrtc/voice_engine/include/voe_codec.h" 38 #include "webrtc/voice_engine/include/voe_codec.h"
39 #include "webrtc/voice_engine/include/voe_dtmf.h" 39 #include "webrtc/voice_engine/include/voe_dtmf.h"
40 #include "webrtc/voice_engine/include/voe_errors.h" 40 #include "webrtc/voice_engine/include/voe_errors.h"
41 #include "webrtc/voice_engine/include/voe_external_media.h"
42 #include "webrtc/voice_engine/include/voe_file.h"
43 #include "webrtc/voice_engine/include/voe_hardware.h" 41 #include "webrtc/voice_engine/include/voe_hardware.h"
44 #include "webrtc/voice_engine/include/voe_neteq_stats.h"
45 #include "webrtc/voice_engine/include/voe_network.h" 42 #include "webrtc/voice_engine/include/voe_network.h"
46 #include "webrtc/voice_engine/include/voe_rtp_rtcp.h" 43 #include "webrtc/voice_engine/include/voe_rtp_rtcp.h"
47 #include "webrtc/voice_engine/include/voe_video_sync.h"
48 #include "webrtc/voice_engine/include/voe_volume_control.h" 44 #include "webrtc/voice_engine/include/voe_volume_control.h"
49 45
50 namespace cricket { 46 namespace cricket {
51 // automatically handles lifetime of WebRtc VoiceEngine 47 // automatically handles lifetime of WebRtc VoiceEngine
52 class scoped_voe_engine { 48 class scoped_voe_engine {
53 public: 49 public:
54 explicit scoped_voe_engine(webrtc::VoiceEngine* e) : ptr(e) {} 50 explicit scoped_voe_engine(webrtc::VoiceEngine* e) : ptr(e) {}
55 // VERIFY, to ensure that there are no leaks at shutdown 51 // VERIFY, to ensure that there are no leaks at shutdown
56 ~scoped_voe_engine() { if (ptr) VERIFY(webrtc::VoiceEngine::Delete(ptr)); } 52 ~scoped_voe_engine() { if (ptr) VERIFY(webrtc::VoiceEngine::Delete(ptr)); }
57 // Releases the current pointer. 53 // Releases the current pointer.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 T* ptr; 85 T* ptr;
90 }; 86 };
91 87
92 // Utility class for aggregating the various WebRTC interface. 88 // Utility class for aggregating the various WebRTC interface.
93 // Fake implementations can also be injected for testing. 89 // Fake implementations can also be injected for testing.
94 class VoEWrapper { 90 class VoEWrapper {
95 public: 91 public:
96 VoEWrapper() 92 VoEWrapper()
97 : engine_(webrtc::VoiceEngine::Create()), processing_(engine_), 93 : engine_(webrtc::VoiceEngine::Create()), processing_(engine_),
98 base_(engine_), codec_(engine_), dtmf_(engine_), 94 base_(engine_), codec_(engine_), dtmf_(engine_),
99 hw_(engine_), neteq_(engine_), network_(engine_), 95 hw_(engine_), network_(engine_),
100 rtp_(engine_), sync_(engine_), volume_(engine_) { 96 rtp_(engine_), volume_(engine_) {
101 } 97 }
102 VoEWrapper(webrtc::VoEAudioProcessing* processing, 98 VoEWrapper(webrtc::VoEAudioProcessing* processing,
103 webrtc::VoEBase* base, 99 webrtc::VoEBase* base,
104 webrtc::VoECodec* codec, 100 webrtc::VoECodec* codec,
105 webrtc::VoEDtmf* dtmf, 101 webrtc::VoEDtmf* dtmf,
106 webrtc::VoEHardware* hw, 102 webrtc::VoEHardware* hw,
107 webrtc::VoENetEqStats* neteq,
108 webrtc::VoENetwork* network, 103 webrtc::VoENetwork* network,
109 webrtc::VoERTP_RTCP* rtp, 104 webrtc::VoERTP_RTCP* rtp,
110 webrtc::VoEVideoSync* sync,
111 webrtc::VoEVolumeControl* volume) 105 webrtc::VoEVolumeControl* volume)
112 : engine_(NULL), 106 : engine_(NULL),
113 processing_(processing), 107 processing_(processing),
114 base_(base), 108 base_(base),
115 codec_(codec), 109 codec_(codec),
116 dtmf_(dtmf), 110 dtmf_(dtmf),
117 hw_(hw), 111 hw_(hw),
118 neteq_(neteq),
119 network_(network), 112 network_(network),
120 rtp_(rtp), 113 rtp_(rtp),
121 sync_(sync),
122 volume_(volume) { 114 volume_(volume) {
123 } 115 }
124 ~VoEWrapper() {} 116 ~VoEWrapper() {}
125 webrtc::VoiceEngine* engine() const { return engine_.get(); } 117 webrtc::VoiceEngine* engine() const { return engine_.get(); }
126 webrtc::VoEAudioProcessing* processing() const { return processing_.get(); } 118 webrtc::VoEAudioProcessing* processing() const { return processing_.get(); }
127 webrtc::VoEBase* base() const { return base_.get(); } 119 webrtc::VoEBase* base() const { return base_.get(); }
128 webrtc::VoECodec* codec() const { return codec_.get(); } 120 webrtc::VoECodec* codec() const { return codec_.get(); }
129 webrtc::VoEDtmf* dtmf() const { return dtmf_.get(); } 121 webrtc::VoEDtmf* dtmf() const { return dtmf_.get(); }
130 webrtc::VoEHardware* hw() const { return hw_.get(); } 122 webrtc::VoEHardware* hw() const { return hw_.get(); }
131 webrtc::VoENetEqStats* neteq() const { return neteq_.get(); }
132 webrtc::VoENetwork* network() const { return network_.get(); } 123 webrtc::VoENetwork* network() const { return network_.get(); }
133 webrtc::VoERTP_RTCP* rtp() const { return rtp_.get(); } 124 webrtc::VoERTP_RTCP* rtp() const { return rtp_.get(); }
134 webrtc::VoEVideoSync* sync() const { return sync_.get(); }
135 webrtc::VoEVolumeControl* volume() const { return volume_.get(); } 125 webrtc::VoEVolumeControl* volume() const { return volume_.get(); }
136 int error() { return base_->LastError(); } 126 int error() { return base_->LastError(); }
137 127
138 private: 128 private:
139 scoped_voe_engine engine_; 129 scoped_voe_engine engine_;
140 scoped_voe_ptr<webrtc::VoEAudioProcessing> processing_; 130 scoped_voe_ptr<webrtc::VoEAudioProcessing> processing_;
141 scoped_voe_ptr<webrtc::VoEBase> base_; 131 scoped_voe_ptr<webrtc::VoEBase> base_;
142 scoped_voe_ptr<webrtc::VoECodec> codec_; 132 scoped_voe_ptr<webrtc::VoECodec> codec_;
143 scoped_voe_ptr<webrtc::VoEDtmf> dtmf_; 133 scoped_voe_ptr<webrtc::VoEDtmf> dtmf_;
144 scoped_voe_ptr<webrtc::VoEHardware> hw_; 134 scoped_voe_ptr<webrtc::VoEHardware> hw_;
145 scoped_voe_ptr<webrtc::VoENetEqStats> neteq_;
146 scoped_voe_ptr<webrtc::VoENetwork> network_; 135 scoped_voe_ptr<webrtc::VoENetwork> network_;
147 scoped_voe_ptr<webrtc::VoERTP_RTCP> rtp_; 136 scoped_voe_ptr<webrtc::VoERTP_RTCP> rtp_;
148 scoped_voe_ptr<webrtc::VoEVideoSync> sync_;
149 scoped_voe_ptr<webrtc::VoEVolumeControl> volume_; 137 scoped_voe_ptr<webrtc::VoEVolumeControl> volume_;
150 }; 138 };
151 139
152 // Adds indirection to static WebRtc functions, allowing them to be mocked. 140 // Adds indirection to static WebRtc functions, allowing them to be mocked.
153 class VoETraceWrapper { 141 class VoETraceWrapper {
154 public: 142 public:
155 virtual ~VoETraceWrapper() {} 143 virtual ~VoETraceWrapper() {}
156 144
157 virtual int SetTraceFilter(const unsigned int filter) { 145 virtual int SetTraceFilter(const unsigned int filter) {
158 return webrtc::VoiceEngine::SetTraceFilter(filter); 146 return webrtc::VoiceEngine::SetTraceFilter(filter);
159 } 147 }
160 virtual int SetTraceFile(const char* fileNameUTF8) { 148 virtual int SetTraceFile(const char* fileNameUTF8) {
161 return webrtc::VoiceEngine::SetTraceFile(fileNameUTF8); 149 return webrtc::VoiceEngine::SetTraceFile(fileNameUTF8);
162 } 150 }
163 virtual int SetTraceCallback(webrtc::TraceCallback* callback) { 151 virtual int SetTraceCallback(webrtc::TraceCallback* callback) {
164 return webrtc::VoiceEngine::SetTraceCallback(callback); 152 return webrtc::VoiceEngine::SetTraceCallback(callback);
165 } 153 }
166 }; 154 };
167 155
168 } // namespace cricket 156 } // namespace cricket
169 157
170 #endif // TALK_MEDIA_WEBRTCVOE_H_ 158 #endif // TALK_MEDIA_WEBRTCVOE_H_
OLDNEW
« no previous file with comments | « talk/media/webrtc/fakewebrtcvoiceengine.h ('k') | talk/media/webrtc/webrtcvoiceengine.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698