From 9ab520e24bb960d360680ffd459256a99e51ff47 Mon Sep 17 00:00:00 2001 From: Minyue Li Date: Tue, 28 May 2019 13:27:40 +0200 Subject: [PATCH] Reland "Avoid encrypting empty audio packet." This is a reland of b0ac94307e1787f83de2b9a2dc3b58309ea8654b Original change's description: > Avoid encrypting empty audio packet. > > Bug: b/132861665 > Change-Id: I161ba8697ae88857927f27fa6d3914b7201fdeab > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137049 > Commit-Queue: Minyue Li > Reviewed-by: Rasmus Brandt > Reviewed-by: Karl Wiberg > Cr-Commit-Position: refs/heads/master@{#28006} Bug: b/132861665 Change-Id: Ia9be25116c7d10fee847ee25c484e6422be24b31 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138218 Commit-Queue: Minyue Li Reviewed-by: Karl Wiberg Cr-Commit-Position: refs/heads/master@{#28086} --- audio/channel_send.cc | 6 +++++- modules/rtp_rtcp/source/rtp_sender_audio.cc | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/audio/channel_send.cc b/audio/channel_send.cc index 793a7dd263..040464049a 100644 --- a/audio/channel_send.cc +++ b/audio/channel_send.cc @@ -507,7 +507,11 @@ int32_t ChannelSend::SendRtpAudio(AudioFrameType frameType, // E2EE Custom Audio Frame Encryption (This is optional). // Keep this buffer around for the lifetime of the send call. rtc::Buffer encrypted_audio_payload; - if (frame_encryptor_ != nullptr) { + // We don't invoke encryptor if payload is empty, which means we are to send + // DTMF, or the encoder entered DTX. + // TODO(minyue): see whether DTMF packets should be encrypted or not. In + // current implementation, they are not. + if (frame_encryptor_ != nullptr && !payload.empty()) { // TODO(benwright@webrtc.org) - Allocate enough to always encrypt inline. // Allocate a buffer to hold the maximum possible encrypted payload. size_t max_ciphertext_size = frame_encryptor_->GetMaxCiphertextByteSize( diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.cc b/modules/rtp_rtcp/source/rtp_sender_audio.cc index 86026ffd92..c54cb91cd8 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.cc +++ b/modules/rtp_rtcp/source/rtp_sender_audio.cc @@ -224,7 +224,8 @@ bool RTPSenderAudio::SendAudio(AudioFrameType frame_type, if (payload_size == 0 || payload_data == NULL) { if (frame_type == AudioFrameType::kEmptyFrame) { // we don't send empty audio RTP packets - // no error since we use it to drive DTMF when we use VAD + // no error since we use it to either drive DTMF when we use VAD, or + // enter DTX. return true; } return false;