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

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

Issue 2744013002: Updates to VCMDecodedFrameCallback, VideoReceiver and a few related classes/tests. (Closed)
Patch Set: Address comments and replace a few assert calls with RTC_DCHECK Created 3 years, 9 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
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
11 #include "webrtc/modules/video_coding/video_coding_impl.h" 11 #include "webrtc/modules/video_coding/video_coding_impl.h"
12 12
13 #include <algorithm> 13 #include <algorithm>
14 #include <utility> 14 #include <utility>
15 15
16 #include "webrtc/base/criticalsection.h" 16 #include "webrtc/base/criticalsection.h"
17 #include "webrtc/base/thread_checker.h"
17 #include "webrtc/common_types.h" 18 #include "webrtc/common_types.h"
18 #include "webrtc/common_video/include/video_bitrate_allocator.h" 19 #include "webrtc/common_video/include/video_bitrate_allocator.h"
19 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" 20 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
20 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h" 21 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
21 #include "webrtc/modules/video_coding/encoded_frame.h" 22 #include "webrtc/modules/video_coding/encoded_frame.h"
22 #include "webrtc/modules/video_coding/include/video_codec_initializer.h" 23 #include "webrtc/modules/video_coding/include/video_codec_initializer.h"
23 #include "webrtc/modules/video_coding/include/video_codec_interface.h" 24 #include "webrtc/modules/video_coding/include/video_codec_interface.h"
24 #include "webrtc/modules/video_coding/jitter_buffer.h" 25 #include "webrtc/modules/video_coding/jitter_buffer.h"
25 #include "webrtc/modules/video_coding/packet.h" 26 #include "webrtc/modules/video_coding/packet.h"
26 #include "webrtc/modules/video_coding/timing.h" 27 #include "webrtc/modules/video_coding/timing.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 pre_decode_image_callback, 92 pre_decode_image_callback,
92 timing_.get(), 93 timing_.get(),
93 nack_sender, 94 nack_sender,
94 keyframe_request_sender) {} 95 keyframe_request_sender) {}
95 96
96 virtual ~VideoCodingModuleImpl() {} 97 virtual ~VideoCodingModuleImpl() {}
97 98
98 int64_t TimeUntilNextProcess() override { 99 int64_t TimeUntilNextProcess() override {
99 int64_t sender_time = sender_.TimeUntilNextProcess(); 100 int64_t sender_time = sender_.TimeUntilNextProcess();
100 int64_t receiver_time = receiver_.TimeUntilNextProcess(); 101 int64_t receiver_time = receiver_.TimeUntilNextProcess();
101 assert(sender_time >= 0); 102 RTC_DCHECK(sender_time >= 0);
102 assert(receiver_time >= 0); 103 RTC_DCHECK(receiver_time >= 0);
stefan-webrtc 2017/03/14 09:58:17 GE
tommi 2017/03/14 10:52:10 Done.
103 return VCM_MIN(sender_time, receiver_time); 104 return VCM_MIN(sender_time, receiver_time);
104 } 105 }
105 106
106 void Process() override { 107 void Process() override {
107 sender_.Process(); 108 sender_.Process();
108 receiver_.Process(); 109 receiver_.Process();
109 } 110 }
110 111
111 int32_t RegisterSendCodec(const VideoCodec* sendCodec, 112 int32_t RegisterSendCodec(const VideoCodec* sendCodec,
112 uint32_t numberOfCores, 113 uint32_t numberOfCores,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 requireKeyFrame); 184 requireKeyFrame);
184 } 185 }
185 186
186 void RegisterExternalDecoder(VideoDecoder* externalDecoder, 187 void RegisterExternalDecoder(VideoDecoder* externalDecoder,
187 uint8_t payloadType) override { 188 uint8_t payloadType) override {
188 receiver_.RegisterExternalDecoder(externalDecoder, payloadType); 189 receiver_.RegisterExternalDecoder(externalDecoder, payloadType);
189 } 190 }
190 191
191 int32_t RegisterReceiveCallback( 192 int32_t RegisterReceiveCallback(
192 VCMReceiveCallback* receiveCallback) override { 193 VCMReceiveCallback* receiveCallback) override {
194 RTC_DCHECK(construction_thread_.CalledOnValidThread());
193 return receiver_.RegisterReceiveCallback(receiveCallback); 195 return receiver_.RegisterReceiveCallback(receiveCallback);
194 } 196 }
195 197
196 int32_t RegisterReceiveStatisticsCallback( 198 int32_t RegisterReceiveStatisticsCallback(
197 VCMReceiveStatisticsCallback* receiveStats) override { 199 VCMReceiveStatisticsCallback* receiveStats) override {
198 return receiver_.RegisterReceiveStatisticsCallback(receiveStats); 200 return receiver_.RegisterReceiveStatisticsCallback(receiveStats);
199 } 201 }
200 202
201 int32_t RegisterDecoderTimingCallback( 203 int32_t RegisterDecoderTimingCallback(
202 VCMDecoderTimingCallback* decoderTiming) override { 204 VCMDecoderTimingCallback* decoderTiming) override {
203 return receiver_.RegisterDecoderTimingCallback(decoderTiming); 205 return receiver_.RegisterDecoderTimingCallback(decoderTiming);
204 } 206 }
205 207
206 int32_t RegisterFrameTypeCallback( 208 int32_t RegisterFrameTypeCallback(
207 VCMFrameTypeCallback* frameTypeCallback) override { 209 VCMFrameTypeCallback* frameTypeCallback) override {
208 return receiver_.RegisterFrameTypeCallback(frameTypeCallback); 210 return receiver_.RegisterFrameTypeCallback(frameTypeCallback);
209 } 211 }
210 212
211 int32_t RegisterPacketRequestCallback( 213 int32_t RegisterPacketRequestCallback(
212 VCMPacketRequestCallback* callback) override { 214 VCMPacketRequestCallback* callback) override {
215 RTC_DCHECK(construction_thread_.CalledOnValidThread());
213 return receiver_.RegisterPacketRequestCallback(callback); 216 return receiver_.RegisterPacketRequestCallback(callback);
214 } 217 }
215 218
216 int32_t Decode(uint16_t maxWaitTimeMs) override { 219 int32_t Decode(uint16_t maxWaitTimeMs) override {
217 return receiver_.Decode(maxWaitTimeMs); 220 return receiver_.Decode(maxWaitTimeMs);
218 } 221 }
219 222
220 int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const override { 223 int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const override {
221 return receiver_.ReceiveCodec(currentReceiveCodec); 224 return receiver_.ReceiveCodec(currentReceiveCodec);
222 } 225 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 } 273 }
271 274
272 void RegisterPostEncodeImageCallback( 275 void RegisterPostEncodeImageCallback(
273 EncodedImageCallback* observer) override { 276 EncodedImageCallback* observer) override {
274 post_encode_callback_.Register(observer); 277 post_encode_callback_.Register(observer);
275 } 278 }
276 279
277 void TriggerDecoderShutdown() override { receiver_.TriggerDecoderShutdown(); } 280 void TriggerDecoderShutdown() override { receiver_.TriggerDecoderShutdown(); }
278 281
279 private: 282 private:
283 rtc::ThreadChecker construction_thread_;
280 EncodedImageCallbackWrapper post_encode_callback_; 284 EncodedImageCallbackWrapper post_encode_callback_;
281 vcm::VideoSender sender_; 285 vcm::VideoSender sender_;
282 std::unique_ptr<VideoBitrateAllocator> rate_allocator_; 286 std::unique_ptr<VideoBitrateAllocator> rate_allocator_;
283 std::unique_ptr<VCMTiming> timing_; 287 std::unique_ptr<VCMTiming> timing_;
284 vcm::VideoReceiver receiver_; 288 vcm::VideoReceiver receiver_;
285 }; 289 };
286 } // namespace 290 } // namespace
287 291
288 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) { 292 void VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) {
289 VCMCodecDataBase::Codec(codecType, codec); 293 VCMCodecDataBase::Codec(codecType, codec);
(...skipping 19 matching lines...) Expand all
309 nullptr, // NackSender 313 nullptr, // NackSender
310 nullptr); // KeyframeRequestSender 314 nullptr); // KeyframeRequestSender
311 } 315 }
312 316
313 // Create method for the new jitter buffer. 317 // Create method for the new jitter buffer.
314 VideoCodingModule* VideoCodingModule::Create( 318 VideoCodingModule* VideoCodingModule::Create(
315 Clock* clock, 319 Clock* clock,
316 EventFactory* event_factory, 320 EventFactory* event_factory,
317 NackSender* nack_sender, 321 NackSender* nack_sender,
318 KeyFrameRequestSender* keyframe_request_sender) { 322 KeyFrameRequestSender* keyframe_request_sender) {
319 assert(clock); 323 RTC_DCHECK(clock);
320 assert(event_factory); 324 RTC_DCHECK(event_factory);
321 return new VideoCodingModuleImpl(clock, event_factory, nack_sender, 325 return new VideoCodingModuleImpl(clock, event_factory, nack_sender,
322 keyframe_request_sender, nullptr); 326 keyframe_request_sender, nullptr);
323 } 327 }
324 328
325 } // namespace webrtc 329 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/video_coding_impl.h ('k') | webrtc/modules/video_coding/video_coding_robustness_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698