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

Unified Diff: webrtc/call/call.cc

Issue 2973323002: Call should allow pass through of keep-alive packets. (Closed)
Patch Set: Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/call/call.cc
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
index 41f53feee7c57ed5e42753ad9e2a78075eb8a22c..2440cd79c41c09afd81c445d2ecc18250e99e99f 100644
--- a/webrtc/call/call.cc
+++ b/webrtc/call/call.cc
@@ -236,10 +236,10 @@ class Call : public webrtc::Call,
MediaType media_type)
SHARED_LOCKS_REQUIRED(receive_crit_);
- rtc::Optional<RtpPacketReceived> ParseRtpPacket(const uint8_t* packet,
- size_t length,
- const PacketTime* packet_time)
- SHARED_LOCKS_REQUIRED(receive_crit_);
+ rtc::Optional<RtpPacketReceived> ParseRtpPacket(
+ const uint8_t* packet,
+ size_t length,
+ const PacketTime* packet_time) const;
void UpdateSendHistograms(int64_t first_sent_packet_ms)
EXCLUSIVE_LOCKS_REQUIRED(&bitrate_crit_);
@@ -485,7 +485,7 @@ Call::~Call() {
rtc::Optional<RtpPacketReceived> Call::ParseRtpPacket(
const uint8_t* packet,
size_t length,
- const PacketTime* packet_time) {
+ const PacketTime* packet_time) const {
RtpPacketReceived parsed_packet;
if (!parsed_packet.Parse(packet, length))
return rtc::Optional<RtpPacketReceived>();
@@ -1299,17 +1299,20 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type,
const PacketTime& packet_time) {
TRACE_EVENT0("webrtc", "Call::DeliverRtp");
- RTC_DCHECK(media_type == MediaType::AUDIO || media_type == MediaType::VIDEO);
-
- ReadLockScoped read_lock(*receive_crit_);
// TODO(nisse): We should parse the RTP header only here, and pass
// on parsed_packet to the receive streams.
rtc::Optional<RtpPacketReceived> parsed_packet =
ParseRtpPacket(packet, length, &packet_time);
+ const bool is_keep_alive_packet =
pbos-webrtc 2017/07/10 22:36:31 Can you put some reference to keepalive packets to
pbos-webrtc 2017/07/10 22:39:16 Reading the other CL, please check config_.rtp.kee
sprang_webrtc 2017/07/11 08:33:06 This is based on https://tools.ietf.org/html/rfc62
+ parsed_packet && parsed_packet->payload_size() == 0;
+
+ RTC_DCHECK(media_type == MediaType::AUDIO || media_type == MediaType::VIDEO ||
+ is_keep_alive_packet);
if (!parsed_packet)
return DELIVERY_PACKET_ERROR;
+ ReadLockScoped read_lock(*receive_crit_);
auto it = receive_rtp_config_.find(parsed_packet->Ssrc());
if (it == receive_rtp_config_.end()) {
LOG(LS_ERROR) << "receive_rtp_config_ lookup failed for ssrc "
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698