Index: webrtc/pc/channel.cc |
diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc |
index f3c3211fdfbf2d5f5f42ba52f4dd2f26c81d72da..eb2f6340ea2482a6a6d455412864a7a91723be5f 100644 |
--- a/webrtc/pc/channel.cc |
+++ b/webrtc/pc/channel.cc |
@@ -727,10 +727,16 @@ bool BaseChannel::SendPacket(bool rtcp, |
// Update the length of the packet now that we've added the auth tag. |
packet->SetSize(len); |
} else if (secure_required_) { |
- // This is a double check for something that supposedly can't happen. |
- LOG(LS_ERROR) << "Can't send outgoing " << PacketType(rtcp) |
- << " packet when SRTP is inactive and crypto is required"; |
- |
+ // The audio/video engines may attempt to send RTCP packets as soon as the |
+ // streams are created, so don't treat this as an error for RTCP. |
+ // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=6809 |
+ if (rtcp) { |
+ return false; |
+ } |
+ // However, there shouldn't be any RTP packets sent before SRTP is set up |
+ // (and SetSend(true) is called). |
+ LOG(LS_ERROR) << "Can't send outgoing RTP packet when SRTP is inactive" |
+ << " and crypto is required"; |
RTC_DCHECK(false); |
return false; |
} |