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

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

Issue 1905983002: Use vcm::VideoReceiver on the receive side. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 8 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 | « webrtc/modules/video_coding/video_coding_impl.h ('k') | webrtc/video/video_receive_stream.h » ('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 * 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 66
67 private: 67 private:
68 std::unique_ptr<CriticalSectionWrapper> cs_; 68 std::unique_ptr<CriticalSectionWrapper> cs_;
69 EncodedImageCallback* callback_ GUARDED_BY(cs_); 69 EncodedImageCallback* callback_ GUARDED_BY(cs_);
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,
77 VideoEncoderRateObserver* encoder_rate_observer, 76 VideoEncoderRateObserver* encoder_rate_observer,
78 VCMQMSettingsCallback* qm_settings_callback, 77 VCMQMSettingsCallback* qm_settings_callback,
79 NackSender* nack_sender, 78 NackSender* nack_sender,
80 KeyFrameRequestSender* keyframe_request_sender, 79 KeyFrameRequestSender* keyframe_request_sender,
81 EncodedImageCallback* pre_decode_image_callback) 80 EncodedImageCallback* pre_decode_image_callback)
82 : VideoCodingModule(), 81 : VideoCodingModule(),
83 sender_(clock, 82 sender_(clock,
84 &post_encode_callback_, 83 &post_encode_callback_,
85 encoder_rate_observer, 84 encoder_rate_observer,
86 qm_settings_callback), 85 qm_settings_callback),
87 receiver_(clock, 86 receiver_(clock,
88 event_factory, 87 event_factory,
89 pre_decode_image_callback, 88 pre_decode_image_callback,
90 nack_sender, 89 nack_sender,
91 keyframe_request_sender), 90 keyframe_request_sender) {}
92 own_event_factory_(owns_event_factory ? event_factory : NULL) {}
93 91
94 virtual ~VideoCodingModuleImpl() { own_event_factory_.reset(); } 92 virtual ~VideoCodingModuleImpl() {}
95 93
96 int64_t TimeUntilNextProcess() override { 94 int64_t TimeUntilNextProcess() override {
97 int64_t sender_time = sender_.TimeUntilNextProcess(); 95 int64_t sender_time = sender_.TimeUntilNextProcess();
98 int64_t receiver_time = receiver_.TimeUntilNextProcess(); 96 int64_t receiver_time = receiver_.TimeUntilNextProcess();
99 assert(sender_time >= 0); 97 assert(sender_time >= 0);
100 assert(receiver_time >= 0); 98 assert(receiver_time >= 0);
101 return VCM_MIN(sender_time, receiver_time); 99 return VCM_MIN(sender_time, receiver_time);
102 } 100 }
103 101
104 void Process() override { 102 void Process() override {
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 EncodedImageCallback* observer) override { 277 EncodedImageCallback* observer) override {
280 post_encode_callback_.Register(observer); 278 post_encode_callback_.Register(observer);
281 } 279 }
282 280
283 void TriggerDecoderShutdown() override { receiver_.TriggerDecoderShutdown(); } 281 void TriggerDecoderShutdown() override { receiver_.TriggerDecoderShutdown(); }
284 282
285 private: 283 private:
286 EncodedImageCallbackWrapper post_encode_callback_; 284 EncodedImageCallbackWrapper post_encode_callback_;
287 vcm::VideoSender sender_; 285 vcm::VideoSender sender_;
288 vcm::VideoReceiver receiver_; 286 vcm::VideoReceiver receiver_;
289 std::unique_ptr<EventFactory> own_event_factory_;
290 }; 287 };
291 } // namespace 288 } // namespace
292 289
293 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) { 290 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) {
294 VCMCodecDataBase::Codec(codecType, codec); 291 VCMCodecDataBase::Codec(codecType, codec);
295 } 292 }
296 293
297 // Create method for current interface, will be removed when the 294 // Create method for current interface, will be removed when the
298 // new jitter buffer is in place. 295 // new jitter buffer is in place.
299 VideoCodingModule* VideoCodingModule::Create( 296 VideoCodingModule* VideoCodingModule::Create(
300 Clock* clock, 297 Clock* clock,
301 VideoEncoderRateObserver* encoder_rate_observer, 298 VideoEncoderRateObserver* encoder_rate_observer,
302 VCMQMSettingsCallback* qm_settings_callback) { 299 VCMQMSettingsCallback* qm_settings_callback) {
303 return VideoCodingModule::Create(clock, encoder_rate_observer, 300 return VideoCodingModule::Create(clock, encoder_rate_observer,
304 qm_settings_callback, 301 qm_settings_callback,
305 nullptr, // NackSender 302 nullptr, // NackSender
306 nullptr, // KeyframeRequestSender 303 nullptr, // KeyframeRequestSender
307 nullptr); // Pre-decode image callback 304 nullptr); // Pre-decode image callback
308 } 305 }
309 306
310 // Create method for the new jitter buffer. 307 // Create method for the new jitter buffer.
311 VideoCodingModule* VideoCodingModule::Create( 308 VideoCodingModule* VideoCodingModule::Create(
312 Clock* clock, 309 Clock* clock,
313 VideoEncoderRateObserver* encoder_rate_observer, 310 VideoEncoderRateObserver* encoder_rate_observer,
314 VCMQMSettingsCallback* qm_settings_callback, 311 VCMQMSettingsCallback* qm_settings_callback,
315 NackSender* nack_sender, 312 NackSender* nack_sender,
316 KeyFrameRequestSender* keyframe_request_sender, 313 KeyFrameRequestSender* keyframe_request_sender,
317 EncodedImageCallback* pre_decode_image_callback) { 314 EncodedImageCallback* pre_decode_image_callback) {
318 return new VideoCodingModuleImpl(clock, new EventFactoryImpl, true, 315 return new VideoCodingModuleImpl(
319 encoder_rate_observer, qm_settings_callback, 316 clock, nullptr, encoder_rate_observer, qm_settings_callback, nack_sender,
320 nack_sender, keyframe_request_sender, 317 keyframe_request_sender, pre_decode_image_callback);
321 pre_decode_image_callback);
322 } 318 }
323 319
324 // Create method for current interface, will be removed when the 320 // Create method for current interface, will be removed when the
325 // new jitter buffer is in place. 321 // new jitter buffer is in place.
326 VideoCodingModule* VideoCodingModule::Create(Clock* clock, 322 VideoCodingModule* VideoCodingModule::Create(Clock* clock,
327 EventFactory* event_factory) { 323 EventFactory* event_factory) {
328 return VideoCodingModule::Create(clock, event_factory, 324 return VideoCodingModule::Create(clock, event_factory,
329 nullptr, // NackSender 325 nullptr, // NackSender
330 nullptr); // KeyframeRequestSender 326 nullptr); // KeyframeRequestSender
331 } 327 }
332 328
333 // Create method for the new jitter buffer. 329 // Create method for the new jitter buffer.
334 VideoCodingModule* VideoCodingModule::Create( 330 VideoCodingModule* VideoCodingModule::Create(
335 Clock* clock, 331 Clock* clock,
336 EventFactory* event_factory, 332 EventFactory* event_factory,
337 NackSender* nack_sender, 333 NackSender* nack_sender,
338 KeyFrameRequestSender* keyframe_request_sender) { 334 KeyFrameRequestSender* keyframe_request_sender) {
339 assert(clock); 335 assert(clock);
340 assert(event_factory); 336 assert(event_factory);
341 return new VideoCodingModuleImpl(clock, event_factory, false, nullptr, 337 return new VideoCodingModuleImpl(clock, event_factory, nullptr, nullptr,
342 nullptr, nack_sender, 338 nack_sender, keyframe_request_sender,
343 keyframe_request_sender, nullptr); 339 nullptr);
344 } 340 }
345 341
346 } // namespace webrtc 342 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/video_coding_impl.h ('k') | webrtc/video/video_receive_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698