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

Side by Side Diff: webrtc/modules/video_coding/main/source/video_coding_impl.cc

Issue 1443613002: Remove scoped_ptrs for VCM sender_ and receiver_. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month 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 | « no previous file | no next file » | 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 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 }; 70 };
71 71
72 class VideoCodingModuleImpl : public VideoCodingModule { 72 class VideoCodingModuleImpl : public VideoCodingModule {
73 public: 73 public:
74 VideoCodingModuleImpl(Clock* clock, 74 VideoCodingModuleImpl(Clock* clock,
75 EventFactory* event_factory, 75 EventFactory* event_factory,
76 bool owns_event_factory, 76 bool owns_event_factory,
77 VideoEncoderRateObserver* encoder_rate_observer, 77 VideoEncoderRateObserver* encoder_rate_observer,
78 VCMQMSettingsCallback* qm_settings_callback) 78 VCMQMSettingsCallback* qm_settings_callback)
79 : VideoCodingModule(), 79 : VideoCodingModule(),
80 sender_(new vcm::VideoSender(clock, 80 sender_(clock,
81 &post_encode_callback_, 81 &post_encode_callback_,
82 encoder_rate_observer, 82 encoder_rate_observer,
83 qm_settings_callback)), 83 qm_settings_callback),
84 receiver_(new vcm::VideoReceiver(clock, event_factory)), 84 receiver_(clock, event_factory),
85 own_event_factory_(owns_event_factory ? event_factory : NULL) {} 85 own_event_factory_(owns_event_factory ? event_factory : NULL) {}
86 86
87 virtual ~VideoCodingModuleImpl() { 87 virtual ~VideoCodingModuleImpl() {
88 sender_.reset();
89 receiver_.reset();
90 own_event_factory_.reset(); 88 own_event_factory_.reset();
91 } 89 }
92 90
93 int64_t TimeUntilNextProcess() override { 91 int64_t TimeUntilNextProcess() override {
94 int64_t sender_time = sender_->TimeUntilNextProcess(); 92 int64_t sender_time = sender_.TimeUntilNextProcess();
95 int64_t receiver_time = receiver_->TimeUntilNextProcess(); 93 int64_t receiver_time = receiver_.TimeUntilNextProcess();
96 assert(sender_time >= 0); 94 assert(sender_time >= 0);
97 assert(receiver_time >= 0); 95 assert(receiver_time >= 0);
98 return VCM_MIN(sender_time, receiver_time); 96 return VCM_MIN(sender_time, receiver_time);
99 } 97 }
100 98
101 int32_t Process() override { 99 int32_t Process() override {
102 int32_t sender_return = sender_->Process(); 100 int32_t sender_return = sender_.Process();
103 int32_t receiver_return = receiver_->Process(); 101 int32_t receiver_return = receiver_.Process();
104 if (sender_return != VCM_OK) 102 if (sender_return != VCM_OK)
105 return sender_return; 103 return sender_return;
106 return receiver_return; 104 return receiver_return;
107 } 105 }
108 106
109 int32_t RegisterSendCodec(const VideoCodec* sendCodec, 107 int32_t RegisterSendCodec(const VideoCodec* sendCodec,
110 uint32_t numberOfCores, 108 uint32_t numberOfCores,
111 uint32_t maxPayloadSize) override { 109 uint32_t maxPayloadSize) override {
112 return sender_->RegisterSendCodec(sendCodec, numberOfCores, maxPayloadSize); 110 return sender_.RegisterSendCodec(sendCodec, numberOfCores, maxPayloadSize);
113 } 111 }
114 112
115 const VideoCodec& GetSendCodec() const override { 113 const VideoCodec& GetSendCodec() const override {
116 return sender_->GetSendCodec(); 114 return sender_.GetSendCodec();
117 } 115 }
118 116
119 // DEPRECATED. 117 // DEPRECATED.
120 int32_t SendCodec(VideoCodec* currentSendCodec) const override { 118 int32_t SendCodec(VideoCodec* currentSendCodec) const override {
121 return sender_->SendCodecBlocking(currentSendCodec); 119 return sender_.SendCodecBlocking(currentSendCodec);
122 } 120 }
123 121
124 // DEPRECATED. 122 // DEPRECATED.
125 VideoCodecType SendCodec() const override { 123 VideoCodecType SendCodec() const override {
126 return sender_->SendCodecBlocking(); 124 return sender_.SendCodecBlocking();
127 } 125 }
128 126
129 int32_t RegisterExternalEncoder(VideoEncoder* externalEncoder, 127 int32_t RegisterExternalEncoder(VideoEncoder* externalEncoder,
130 uint8_t payloadType, 128 uint8_t payloadType,
131 bool internalSource) override { 129 bool internalSource) override {
132 return sender_->RegisterExternalEncoder( 130 return sender_.RegisterExternalEncoder(externalEncoder, payloadType,
133 externalEncoder, payloadType, internalSource); 131 internalSource);
134 } 132 }
135 133
136 int Bitrate(unsigned int* bitrate) const override { 134 int Bitrate(unsigned int* bitrate) const override {
137 return sender_->Bitrate(bitrate); 135 return sender_.Bitrate(bitrate);
138 } 136 }
139 137
140 int FrameRate(unsigned int* framerate) const override { 138 int FrameRate(unsigned int* framerate) const override {
141 return sender_->FrameRate(framerate); 139 return sender_.FrameRate(framerate);
142 } 140 }
143 141
144 int32_t SetChannelParameters(uint32_t target_bitrate, // bits/s. 142 int32_t SetChannelParameters(uint32_t target_bitrate, // bits/s.
145 uint8_t lossRate, 143 uint8_t lossRate,
146 int64_t rtt) override { 144 int64_t rtt) override {
147 return sender_->SetChannelParameters(target_bitrate, lossRate, rtt); 145 return sender_.SetChannelParameters(target_bitrate, lossRate, rtt);
148 } 146 }
149 147
150 int32_t RegisterTransportCallback( 148 int32_t RegisterTransportCallback(
151 VCMPacketizationCallback* transport) override { 149 VCMPacketizationCallback* transport) override {
152 return sender_->RegisterTransportCallback(transport); 150 return sender_.RegisterTransportCallback(transport);
153 } 151 }
154 152
155 int32_t RegisterSendStatisticsCallback( 153 int32_t RegisterSendStatisticsCallback(
156 VCMSendStatisticsCallback* sendStats) override { 154 VCMSendStatisticsCallback* sendStats) override {
157 return sender_->RegisterSendStatisticsCallback(sendStats); 155 return sender_.RegisterSendStatisticsCallback(sendStats);
158 } 156 }
159 157
160 int32_t RegisterProtectionCallback( 158 int32_t RegisterProtectionCallback(
161 VCMProtectionCallback* protection) override { 159 VCMProtectionCallback* protection) override {
162 return sender_->RegisterProtectionCallback(protection); 160 return sender_.RegisterProtectionCallback(protection);
163 } 161 }
164 162
165 int32_t SetVideoProtection(VCMVideoProtection videoProtection, 163 int32_t SetVideoProtection(VCMVideoProtection videoProtection,
166 bool enable) override { 164 bool enable) override {
167 // TODO(pbos): Remove enable from receive-side protection modes as well. 165 // TODO(pbos): Remove enable from receive-side protection modes as well.
168 if (enable) 166 if (enable)
169 sender_->SetVideoProtection(videoProtection); 167 sender_.SetVideoProtection(videoProtection);
170 return receiver_->SetVideoProtection(videoProtection, enable); 168 return receiver_.SetVideoProtection(videoProtection, enable);
171 } 169 }
172 170
173 int32_t AddVideoFrame(const VideoFrame& videoFrame, 171 int32_t AddVideoFrame(const VideoFrame& videoFrame,
174 const VideoContentMetrics* contentMetrics, 172 const VideoContentMetrics* contentMetrics,
175 const CodecSpecificInfo* codecSpecificInfo) override { 173 const CodecSpecificInfo* codecSpecificInfo) override {
176 return sender_->AddVideoFrame( 174 return sender_.AddVideoFrame(videoFrame, contentMetrics, codecSpecificInfo);
177 videoFrame, contentMetrics, codecSpecificInfo);
178 } 175 }
179 176
180 int32_t IntraFrameRequest(int stream_index) override { 177 int32_t IntraFrameRequest(int stream_index) override {
181 return sender_->IntraFrameRequest(stream_index); 178 return sender_.IntraFrameRequest(stream_index);
182 } 179 }
183 180
184 int32_t EnableFrameDropper(bool enable) override { 181 int32_t EnableFrameDropper(bool enable) override {
185 return sender_->EnableFrameDropper(enable); 182 return sender_.EnableFrameDropper(enable);
186 } 183 }
187 184
188 void SuspendBelowMinBitrate() override { 185 void SuspendBelowMinBitrate() override {
189 return sender_->SuspendBelowMinBitrate(); 186 return sender_.SuspendBelowMinBitrate();
190 } 187 }
191 188
192 bool VideoSuspended() const override { return sender_->VideoSuspended(); } 189 bool VideoSuspended() const override { return sender_.VideoSuspended(); }
193 190
194 int32_t RegisterReceiveCodec(const VideoCodec* receiveCodec, 191 int32_t RegisterReceiveCodec(const VideoCodec* receiveCodec,
195 int32_t numberOfCores, 192 int32_t numberOfCores,
196 bool requireKeyFrame) override { 193 bool requireKeyFrame) override {
197 return receiver_->RegisterReceiveCodec( 194 return receiver_.RegisterReceiveCodec(receiveCodec, numberOfCores,
198 receiveCodec, numberOfCores, requireKeyFrame); 195 requireKeyFrame);
199 } 196 }
200 197
201 int32_t RegisterExternalDecoder(VideoDecoder* externalDecoder, 198 int32_t RegisterExternalDecoder(VideoDecoder* externalDecoder,
202 uint8_t payloadType, 199 uint8_t payloadType,
203 bool internalRenderTiming) override { 200 bool internalRenderTiming) override {
204 return receiver_->RegisterExternalDecoder( 201 return receiver_.RegisterExternalDecoder(externalDecoder, payloadType,
205 externalDecoder, payloadType, internalRenderTiming); 202 internalRenderTiming);
206 } 203 }
207 204
208 int32_t RegisterReceiveCallback( 205 int32_t RegisterReceiveCallback(
209 VCMReceiveCallback* receiveCallback) override { 206 VCMReceiveCallback* receiveCallback) override {
210 return receiver_->RegisterReceiveCallback(receiveCallback); 207 return receiver_.RegisterReceiveCallback(receiveCallback);
211 } 208 }
212 209
213 int32_t RegisterReceiveStatisticsCallback( 210 int32_t RegisterReceiveStatisticsCallback(
214 VCMReceiveStatisticsCallback* receiveStats) override { 211 VCMReceiveStatisticsCallback* receiveStats) override {
215 return receiver_->RegisterReceiveStatisticsCallback(receiveStats); 212 return receiver_.RegisterReceiveStatisticsCallback(receiveStats);
216 } 213 }
217 214
218 int32_t RegisterDecoderTimingCallback( 215 int32_t RegisterDecoderTimingCallback(
219 VCMDecoderTimingCallback* decoderTiming) override { 216 VCMDecoderTimingCallback* decoderTiming) override {
220 return receiver_->RegisterDecoderTimingCallback(decoderTiming); 217 return receiver_.RegisterDecoderTimingCallback(decoderTiming);
221 } 218 }
222 219
223 int32_t RegisterFrameTypeCallback( 220 int32_t RegisterFrameTypeCallback(
224 VCMFrameTypeCallback* frameTypeCallback) override { 221 VCMFrameTypeCallback* frameTypeCallback) override {
225 return receiver_->RegisterFrameTypeCallback(frameTypeCallback); 222 return receiver_.RegisterFrameTypeCallback(frameTypeCallback);
226 } 223 }
227 224
228 int32_t RegisterPacketRequestCallback( 225 int32_t RegisterPacketRequestCallback(
229 VCMPacketRequestCallback* callback) override { 226 VCMPacketRequestCallback* callback) override {
230 return receiver_->RegisterPacketRequestCallback(callback); 227 return receiver_.RegisterPacketRequestCallback(callback);
231 } 228 }
232 229
233 int RegisterRenderBufferSizeCallback( 230 int RegisterRenderBufferSizeCallback(
234 VCMRenderBufferSizeCallback* callback) override { 231 VCMRenderBufferSizeCallback* callback) override {
235 return receiver_->RegisterRenderBufferSizeCallback(callback); 232 return receiver_.RegisterRenderBufferSizeCallback(callback);
236 } 233 }
237 234
238 int32_t Decode(uint16_t maxWaitTimeMs) override { 235 int32_t Decode(uint16_t maxWaitTimeMs) override {
239 return receiver_->Decode(maxWaitTimeMs); 236 return receiver_.Decode(maxWaitTimeMs);
240 } 237 }
241 238
242 int32_t ResetDecoder() override { return receiver_->ResetDecoder(); } 239 int32_t ResetDecoder() override { return receiver_.ResetDecoder(); }
243 240
244 int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const override { 241 int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const override {
245 return receiver_->ReceiveCodec(currentReceiveCodec); 242 return receiver_.ReceiveCodec(currentReceiveCodec);
246 } 243 }
247 244
248 VideoCodecType ReceiveCodec() const override { 245 VideoCodecType ReceiveCodec() const override {
249 return receiver_->ReceiveCodec(); 246 return receiver_.ReceiveCodec();
250 } 247 }
251 248
252 int32_t IncomingPacket(const uint8_t* incomingPayload, 249 int32_t IncomingPacket(const uint8_t* incomingPayload,
253 size_t payloadLength, 250 size_t payloadLength,
254 const WebRtcRTPHeader& rtpInfo) override { 251 const WebRtcRTPHeader& rtpInfo) override {
255 return receiver_->IncomingPacket(incomingPayload, payloadLength, rtpInfo); 252 return receiver_.IncomingPacket(incomingPayload, payloadLength, rtpInfo);
256 } 253 }
257 254
258 int32_t SetMinimumPlayoutDelay(uint32_t minPlayoutDelayMs) override { 255 int32_t SetMinimumPlayoutDelay(uint32_t minPlayoutDelayMs) override {
259 return receiver_->SetMinimumPlayoutDelay(minPlayoutDelayMs); 256 return receiver_.SetMinimumPlayoutDelay(minPlayoutDelayMs);
260 } 257 }
261 258
262 int32_t SetRenderDelay(uint32_t timeMS) override { 259 int32_t SetRenderDelay(uint32_t timeMS) override {
263 return receiver_->SetRenderDelay(timeMS); 260 return receiver_.SetRenderDelay(timeMS);
264 } 261 }
265 262
266 int32_t Delay() const override { return receiver_->Delay(); } 263 int32_t Delay() const override { return receiver_.Delay(); }
267 264
268 uint32_t DiscardedPackets() const override { 265 uint32_t DiscardedPackets() const override {
269 return receiver_->DiscardedPackets(); 266 return receiver_.DiscardedPackets();
270 } 267 }
271 268
272 int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode, 269 int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode,
273 VCMDecodeErrorMode errorMode) override { 270 VCMDecodeErrorMode errorMode) override {
274 return receiver_->SetReceiverRobustnessMode(robustnessMode, errorMode); 271 return receiver_.SetReceiverRobustnessMode(robustnessMode, errorMode);
275 } 272 }
276 273
277 void SetNackSettings(size_t max_nack_list_size, 274 void SetNackSettings(size_t max_nack_list_size,
278 int max_packet_age_to_nack, 275 int max_packet_age_to_nack,
279 int max_incomplete_time_ms) override { 276 int max_incomplete_time_ms) override {
280 return receiver_->SetNackSettings( 277 return receiver_.SetNackSettings(max_nack_list_size, max_packet_age_to_nack,
281 max_nack_list_size, max_packet_age_to_nack, max_incomplete_time_ms); 278 max_incomplete_time_ms);
282 } 279 }
283 280
284 void SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) override { 281 void SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) override {
285 return receiver_->SetDecodeErrorMode(decode_error_mode); 282 return receiver_.SetDecodeErrorMode(decode_error_mode);
286 } 283 }
287 284
288 int SetMinReceiverDelay(int desired_delay_ms) override { 285 int SetMinReceiverDelay(int desired_delay_ms) override {
289 return receiver_->SetMinReceiverDelay(desired_delay_ms); 286 return receiver_.SetMinReceiverDelay(desired_delay_ms);
290 } 287 }
291 288
292 int32_t SetReceiveChannelParameters(int64_t rtt) override { 289 int32_t SetReceiveChannelParameters(int64_t rtt) override {
293 return receiver_->SetReceiveChannelParameters(rtt); 290 return receiver_.SetReceiveChannelParameters(rtt);
294 } 291 }
295 292
296 void RegisterPreDecodeImageCallback(EncodedImageCallback* observer) override { 293 void RegisterPreDecodeImageCallback(EncodedImageCallback* observer) override {
297 receiver_->RegisterPreDecodeImageCallback(observer); 294 receiver_.RegisterPreDecodeImageCallback(observer);
298 } 295 }
299 296
300 void RegisterPostEncodeImageCallback( 297 void RegisterPostEncodeImageCallback(
301 EncodedImageCallback* observer) override { 298 EncodedImageCallback* observer) override {
302 post_encode_callback_.Register(observer); 299 post_encode_callback_.Register(observer);
303 } 300 }
304 301
305 void TriggerDecoderShutdown() override { 302 void TriggerDecoderShutdown() override { receiver_.TriggerDecoderShutdown(); }
306 receiver_->TriggerDecoderShutdown();
307 }
308 303
309 private: 304 private:
310 EncodedImageCallbackWrapper post_encode_callback_; 305 EncodedImageCallbackWrapper post_encode_callback_;
311 // TODO(tommi): Change sender_ and receiver_ to be non pointers 306 vcm::VideoSender sender_;
312 // (construction is 1 alloc instead of 3). 307 vcm::VideoReceiver receiver_;
313 rtc::scoped_ptr<vcm::VideoSender> sender_;
314 rtc::scoped_ptr<vcm::VideoReceiver> receiver_;
315 rtc::scoped_ptr<EventFactory> own_event_factory_; 308 rtc::scoped_ptr<EventFactory> own_event_factory_;
316 }; 309 };
317 } // namespace 310 } // namespace
318 311
319 uint8_t VideoCodingModule::NumberOfCodecs() { 312 uint8_t VideoCodingModule::NumberOfCodecs() {
320 return VCMCodecDataBase::NumberOfCodecs(); 313 return VCMCodecDataBase::NumberOfCodecs();
321 } 314 }
322 315
323 int32_t VideoCodingModule::Codec(uint8_t listId, VideoCodec* codec) { 316 int32_t VideoCodingModule::Codec(uint8_t listId, VideoCodec* codec) {
324 if (codec == NULL) { 317 if (codec == NULL) {
(...skipping 25 matching lines...) Expand all
350 return new VideoCodingModuleImpl(clock, event_factory, false, nullptr, 343 return new VideoCodingModuleImpl(clock, event_factory, false, nullptr,
351 nullptr); 344 nullptr);
352 } 345 }
353 346
354 void VideoCodingModule::Destroy(VideoCodingModule* module) { 347 void VideoCodingModule::Destroy(VideoCodingModule* module) {
355 if (module != NULL) { 348 if (module != NULL) {
356 delete static_cast<VideoCodingModuleImpl*>(module); 349 delete static_cast<VideoCodingModuleImpl*>(module);
357 } 350 }
358 } 351 }
359 } // namespace webrtc 352 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698