OLD | NEW |
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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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, | 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 ProcessThread* module_process_thread, |
| 80 NackSender* nack_sender, |
| 81 KeyFrameRequestSender* keyframe_request_sender) |
79 : VideoCodingModule(), | 82 : VideoCodingModule(), |
80 sender_(clock, | 83 sender_(clock, |
81 &post_encode_callback_, | 84 &post_encode_callback_, |
82 encoder_rate_observer, | 85 encoder_rate_observer, |
83 qm_settings_callback), | 86 qm_settings_callback), |
84 receiver_(clock, event_factory), | 87 receiver_(clock, |
| 88 event_factory, |
| 89 module_process_thread, |
| 90 nack_sender, |
| 91 keyframe_request_sender), |
85 own_event_factory_(owns_event_factory ? event_factory : NULL) {} | 92 own_event_factory_(owns_event_factory ? event_factory : NULL) {} |
86 | 93 |
87 virtual ~VideoCodingModuleImpl() { own_event_factory_.reset(); } | 94 virtual ~VideoCodingModuleImpl() { own_event_factory_.reset(); } |
88 | 95 |
89 int64_t TimeUntilNextProcess() override { | 96 int64_t TimeUntilNextProcess() override { |
90 int64_t sender_time = sender_.TimeUntilNextProcess(); | 97 int64_t sender_time = sender_.TimeUntilNextProcess(); |
91 int64_t receiver_time = receiver_.TimeUntilNextProcess(); | 98 int64_t receiver_time = receiver_.TimeUntilNextProcess(); |
92 assert(sender_time >= 0); | 99 assert(sender_time >= 0); |
93 assert(receiver_time >= 0); | 100 assert(receiver_time >= 0); |
94 return VCM_MIN(sender_time, receiver_time); | 101 return VCM_MIN(sender_time, receiver_time); |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 vcm::VideoSender sender_; | 291 vcm::VideoSender sender_; |
285 vcm::VideoReceiver receiver_; | 292 vcm::VideoReceiver receiver_; |
286 std::unique_ptr<EventFactory> own_event_factory_; | 293 std::unique_ptr<EventFactory> own_event_factory_; |
287 }; | 294 }; |
288 } // namespace | 295 } // namespace |
289 | 296 |
290 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) { | 297 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) { |
291 VCMCodecDataBase::Codec(codecType, codec); | 298 VCMCodecDataBase::Codec(codecType, codec); |
292 } | 299 } |
293 | 300 |
| 301 // Create method for current interface, will be removed when the |
| 302 // new jitter buffer is in place. |
294 VideoCodingModule* VideoCodingModule::Create( | 303 VideoCodingModule* VideoCodingModule::Create( |
295 Clock* clock, | 304 Clock* clock, |
296 VideoEncoderRateObserver* encoder_rate_observer, | 305 VideoEncoderRateObserver* encoder_rate_observer, |
297 VCMQMSettingsCallback* qm_settings_callback) { | 306 VCMQMSettingsCallback* qm_settings_callback) { |
298 return new VideoCodingModuleImpl(clock, new EventFactoryImpl, true, | 307 return VideoCodingModule::Create(clock, encoder_rate_observer, |
299 encoder_rate_observer, qm_settings_callback); | 308 qm_settings_callback, |
| 309 nullptr, // ProcessThread |
| 310 nullptr, // NackSender |
| 311 nullptr); // KeyframeRequestSender |
300 } | 312 } |
301 | 313 |
| 314 // Create method for the new jitter buffer. |
| 315 VideoCodingModule* VideoCodingModule::Create( |
| 316 Clock* clock, |
| 317 VideoEncoderRateObserver* encoder_rate_observer, |
| 318 VCMQMSettingsCallback* qm_settings_callback, |
| 319 ProcessThread* module_process_thread, |
| 320 NackSender* nack_sender, |
| 321 KeyFrameRequestSender* keyframe_request_sender) { |
| 322 return new VideoCodingModuleImpl(clock, new EventFactoryImpl, true, |
| 323 encoder_rate_observer, qm_settings_callback, |
| 324 module_process_thread, nack_sender, |
| 325 keyframe_request_sender); |
| 326 } |
| 327 |
| 328 // Create method for current interface, will be removed when the |
| 329 // new jitter buffer is in place. |
302 VideoCodingModule* VideoCodingModule::Create(Clock* clock, | 330 VideoCodingModule* VideoCodingModule::Create(Clock* clock, |
303 EventFactory* event_factory) { | 331 EventFactory* event_factory) { |
| 332 return VideoCodingModule::Create(clock, event_factory, |
| 333 nullptr, // ProcessThread |
| 334 nullptr, // NackSender |
| 335 nullptr); // KeyframeRequestSender |
| 336 } |
| 337 |
| 338 // Create method for the new jitter buffer. |
| 339 VideoCodingModule* VideoCodingModule::Create( |
| 340 Clock* clock, |
| 341 EventFactory* event_factory, |
| 342 ProcessThread* module_process_thread, |
| 343 NackSender* nack_sender, |
| 344 KeyFrameRequestSender* keyframe_request_sender) { |
304 assert(clock); | 345 assert(clock); |
305 assert(event_factory); | 346 assert(event_factory); |
306 return new VideoCodingModuleImpl(clock, event_factory, false, nullptr, | 347 return new VideoCodingModuleImpl(clock, event_factory, false, nullptr, |
307 nullptr); | 348 nullptr, module_process_thread, nack_sender, |
| 349 keyframe_request_sender); |
308 } | 350 } |
309 | 351 |
310 } // namespace webrtc | 352 } // namespace webrtc |
OLD | NEW |