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

Side by Side Diff: webrtc/video/call.cc

Issue 1333483002: Wire up PacketTime to ReceiveStreams. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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/video/audio_receive_stream.cc ('k') | webrtc/video/call_perf_tests.cc » ('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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 const VideoEncoderConfig& encoder_config) override; 86 const VideoEncoderConfig& encoder_config) override;
87 void DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) override; 87 void DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) override;
88 88
89 webrtc::VideoReceiveStream* CreateVideoReceiveStream( 89 webrtc::VideoReceiveStream* CreateVideoReceiveStream(
90 const webrtc::VideoReceiveStream::Config& config) override; 90 const webrtc::VideoReceiveStream::Config& config) override;
91 void DestroyVideoReceiveStream( 91 void DestroyVideoReceiveStream(
92 webrtc::VideoReceiveStream* receive_stream) override; 92 webrtc::VideoReceiveStream* receive_stream) override;
93 93
94 Stats GetStats() const override; 94 Stats GetStats() const override;
95 95
96 DeliveryStatus DeliverPacket(MediaType media_type, const uint8_t* packet, 96 DeliveryStatus DeliverPacket(MediaType media_type,
97 size_t length) override; 97 const uint8_t* packet,
98 size_t length,
99 const PacketTime& packet_time) override;
98 100
99 void SetBitrateConfig( 101 void SetBitrateConfig(
100 const webrtc::Call::Config::BitrateConfig& bitrate_config) override; 102 const webrtc::Call::Config::BitrateConfig& bitrate_config) override;
101 void SignalNetworkState(NetworkState state) override; 103 void SignalNetworkState(NetworkState state) override;
102 104
103 private: 105 private:
104 DeliveryStatus DeliverRtcp(MediaType media_type, const uint8_t* packet, 106 DeliveryStatus DeliverRtcp(MediaType media_type, const uint8_t* packet,
105 size_t length); 107 size_t length);
106 DeliveryStatus DeliverRtp(MediaType media_type, const uint8_t* packet, 108 DeliveryStatus DeliverRtp(MediaType media_type,
107 size_t length); 109 const uint8_t* packet,
110 size_t length,
111 const PacketTime& packet_time);
108 112
109 void SetBitrateControllerConfig( 113 void SetBitrateControllerConfig(
110 const webrtc::Call::Config::BitrateConfig& bitrate_config); 114 const webrtc::Call::Config::BitrateConfig& bitrate_config);
111 115
112 void ConfigureSync(const std::string& sync_group) 116 void ConfigureSync(const std::string& sync_group)
113 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_); 117 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_);
114 118
115 const int num_cpu_cores_; 119 const int num_cpu_cores_;
116 const rtc::scoped_ptr<ProcessThread> module_process_thread_; 120 const rtc::scoped_ptr<ProcessThread> module_process_thread_;
117 const rtc::scoped_ptr<ChannelGroup> channel_group_; 121 const rtc::scoped_ptr<ChannelGroup> channel_group_;
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 for (VideoSendStream* stream : video_send_streams_) { 504 for (VideoSendStream* stream : video_send_streams_) {
501 if (stream->DeliverRtcp(packet, length)) 505 if (stream->DeliverRtcp(packet, length))
502 rtcp_delivered = true; 506 rtcp_delivered = true;
503 } 507 }
504 } 508 }
505 return rtcp_delivered ? DELIVERY_OK : DELIVERY_PACKET_ERROR; 509 return rtcp_delivered ? DELIVERY_OK : DELIVERY_PACKET_ERROR;
506 } 510 }
507 511
508 PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, 512 PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type,
509 const uint8_t* packet, 513 const uint8_t* packet,
510 size_t length) { 514 size_t length,
515 const PacketTime& packet_time) {
511 // Minimum RTP header size. 516 // Minimum RTP header size.
512 if (length < 12) 517 if (length < 12)
513 return DELIVERY_PACKET_ERROR; 518 return DELIVERY_PACKET_ERROR;
514 519
515 uint32_t ssrc = ByteReader<uint32_t>::ReadBigEndian(&packet[8]); 520 uint32_t ssrc = ByteReader<uint32_t>::ReadBigEndian(&packet[8]);
516 521
517 ReadLockScoped read_lock(*receive_crit_); 522 ReadLockScoped read_lock(*receive_crit_);
518 if (media_type == MediaType::ANY || media_type == MediaType::AUDIO) { 523 if (media_type == MediaType::ANY || media_type == MediaType::AUDIO) {
519 auto it = audio_receive_ssrcs_.find(ssrc); 524 auto it = audio_receive_ssrcs_.find(ssrc);
520 if (it != audio_receive_ssrcs_.end()) { 525 if (it != audio_receive_ssrcs_.end()) {
521 return it->second->DeliverRtp(packet, length) ? DELIVERY_OK 526 return it->second->DeliverRtp(packet, length, packet_time)
522 : DELIVERY_PACKET_ERROR; 527 ? DELIVERY_OK
528 : DELIVERY_PACKET_ERROR;
523 } 529 }
524 } 530 }
525 if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) { 531 if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) {
526 auto it = video_receive_ssrcs_.find(ssrc); 532 auto it = video_receive_ssrcs_.find(ssrc);
527 if (it != video_receive_ssrcs_.end()) { 533 if (it != video_receive_ssrcs_.end()) {
528 return it->second->DeliverRtp(packet, length) ? DELIVERY_OK 534 return it->second->DeliverRtp(packet, length, packet_time)
529 : DELIVERY_PACKET_ERROR; 535 ? DELIVERY_OK
536 : DELIVERY_PACKET_ERROR;
530 } 537 }
531 } 538 }
532 return DELIVERY_UNKNOWN_SSRC; 539 return DELIVERY_UNKNOWN_SSRC;
533 } 540 }
534 541
535 PacketReceiver::DeliveryStatus Call::DeliverPacket(MediaType media_type, 542 PacketReceiver::DeliveryStatus Call::DeliverPacket(
536 const uint8_t* packet, 543 MediaType media_type,
537 size_t length) { 544 const uint8_t* packet,
545 size_t length,
546 const PacketTime& packet_time) {
538 if (RtpHeaderParser::IsRtcp(packet, length)) 547 if (RtpHeaderParser::IsRtcp(packet, length))
539 return DeliverRtcp(media_type, packet, length); 548 return DeliverRtcp(media_type, packet, length);
540 549
541 return DeliverRtp(media_type, packet, length); 550 return DeliverRtp(media_type, packet, length, packet_time);
542 } 551 }
543 552
544 } // namespace internal 553 } // namespace internal
545 } // namespace webrtc 554 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/audio_receive_stream.cc ('k') | webrtc/video/call_perf_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698