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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 VideoEncoderRateObserver* encoder_rate_observer, | 76 VideoEncoderRateObserver* encoder_rate_observer, |
77 VCMQMSettingsCallback* qm_settings_callback, | |
78 NackSender* nack_sender, | 77 NackSender* nack_sender, |
79 KeyFrameRequestSender* keyframe_request_sender, | 78 KeyFrameRequestSender* keyframe_request_sender, |
80 EncodedImageCallback* pre_decode_image_callback) | 79 EncodedImageCallback* pre_decode_image_callback) |
81 : VideoCodingModule(), | 80 : VideoCodingModule(), |
82 sender_(clock, | 81 sender_(clock, &post_encode_callback_, encoder_rate_observer, nullptr), |
83 &post_encode_callback_, | |
84 encoder_rate_observer, | |
85 qm_settings_callback, | |
86 nullptr), | |
87 receiver_(clock, | 82 receiver_(clock, |
88 event_factory, | 83 event_factory, |
89 pre_decode_image_callback, | 84 pre_decode_image_callback, |
90 nack_sender, | 85 nack_sender, |
91 keyframe_request_sender) {} | 86 keyframe_request_sender) {} |
92 | 87 |
93 virtual ~VideoCodingModuleImpl() {} | 88 virtual ~VideoCodingModuleImpl() {} |
94 | 89 |
95 int64_t TimeUntilNextProcess() override { | 90 int64_t TimeUntilNextProcess() override { |
96 int64_t sender_time = sender_.TimeUntilNextProcess(); | 91 int64_t sender_time = sender_.TimeUntilNextProcess(); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 | 135 |
141 int32_t SetVideoProtection(VCMVideoProtection videoProtection, | 136 int32_t SetVideoProtection(VCMVideoProtection videoProtection, |
142 bool enable) override { | 137 bool enable) override { |
143 // TODO(pbos): Remove enable from receive-side protection modes as well. | 138 // TODO(pbos): Remove enable from receive-side protection modes as well. |
144 if (enable) | 139 if (enable) |
145 sender_.SetVideoProtection(videoProtection); | 140 sender_.SetVideoProtection(videoProtection); |
146 return receiver_.SetVideoProtection(videoProtection, enable); | 141 return receiver_.SetVideoProtection(videoProtection, enable); |
147 } | 142 } |
148 | 143 |
149 int32_t AddVideoFrame(const VideoFrame& videoFrame, | 144 int32_t AddVideoFrame(const VideoFrame& videoFrame, |
150 const VideoContentMetrics* contentMetrics, | |
151 const CodecSpecificInfo* codecSpecificInfo) override { | 145 const CodecSpecificInfo* codecSpecificInfo) override { |
152 return sender_.AddVideoFrame(videoFrame, contentMetrics, codecSpecificInfo); | 146 return sender_.AddVideoFrame(videoFrame, codecSpecificInfo); |
153 } | 147 } |
154 | 148 |
155 int32_t IntraFrameRequest(size_t stream_index) override { | 149 int32_t IntraFrameRequest(size_t stream_index) override { |
156 return sender_.IntraFrameRequest(stream_index); | 150 return sender_.IntraFrameRequest(stream_index); |
157 } | 151 } |
158 | 152 |
159 int32_t EnableFrameDropper(bool enable) override { | 153 int32_t EnableFrameDropper(bool enable) override { |
160 return sender_.EnableFrameDropper(enable); | 154 return sender_.EnableFrameDropper(enable); |
161 } | 155 } |
162 | 156 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 } | 285 } |
292 | 286 |
293 // Create method for the new jitter buffer. | 287 // Create method for the new jitter buffer. |
294 VideoCodingModule* VideoCodingModule::Create( | 288 VideoCodingModule* VideoCodingModule::Create( |
295 Clock* clock, | 289 Clock* clock, |
296 VideoEncoderRateObserver* encoder_rate_observer, | 290 VideoEncoderRateObserver* encoder_rate_observer, |
297 VCMQMSettingsCallback* qm_settings_callback, | 291 VCMQMSettingsCallback* qm_settings_callback, |
298 NackSender* nack_sender, | 292 NackSender* nack_sender, |
299 KeyFrameRequestSender* keyframe_request_sender, | 293 KeyFrameRequestSender* keyframe_request_sender, |
300 EncodedImageCallback* pre_decode_image_callback) { | 294 EncodedImageCallback* pre_decode_image_callback) { |
301 return new VideoCodingModuleImpl( | 295 return new VideoCodingModuleImpl(clock, nullptr, encoder_rate_observer, |
302 clock, nullptr, encoder_rate_observer, qm_settings_callback, nack_sender, | 296 nack_sender, keyframe_request_sender, |
303 keyframe_request_sender, pre_decode_image_callback); | 297 pre_decode_image_callback); |
304 } | 298 } |
305 | 299 |
306 // Create method for current interface, will be removed when the | 300 // Create method for current interface, will be removed when the |
307 // new jitter buffer is in place. | 301 // new jitter buffer is in place. |
308 VideoCodingModule* VideoCodingModule::Create(Clock* clock, | 302 VideoCodingModule* VideoCodingModule::Create(Clock* clock, |
309 EventFactory* event_factory) { | 303 EventFactory* event_factory) { |
310 return VideoCodingModule::Create(clock, event_factory, | 304 return VideoCodingModule::Create(clock, event_factory, |
311 nullptr, // NackSender | 305 nullptr, // NackSender |
312 nullptr); // KeyframeRequestSender | 306 nullptr); // KeyframeRequestSender |
313 } | 307 } |
314 | 308 |
315 // Create method for the new jitter buffer. | 309 // Create method for the new jitter buffer. |
316 VideoCodingModule* VideoCodingModule::Create( | 310 VideoCodingModule* VideoCodingModule::Create( |
317 Clock* clock, | 311 Clock* clock, |
318 EventFactory* event_factory, | 312 EventFactory* event_factory, |
319 NackSender* nack_sender, | 313 NackSender* nack_sender, |
320 KeyFrameRequestSender* keyframe_request_sender) { | 314 KeyFrameRequestSender* keyframe_request_sender) { |
321 assert(clock); | 315 assert(clock); |
322 assert(event_factory); | 316 assert(event_factory); |
323 return new VideoCodingModuleImpl(clock, event_factory, nullptr, nullptr, | 317 return new VideoCodingModuleImpl(clock, event_factory, nullptr, nack_sender, |
324 nack_sender, keyframe_request_sender, | 318 keyframe_request_sender, nullptr); |
325 nullptr); | |
326 } | 319 } |
327 | 320 |
328 } // namespace webrtc | 321 } // namespace webrtc |
OLD | NEW |