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 <minyue@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> 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 <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28086}
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 793a7dd..0404640 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -507,7 +507,11 @@
   // 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(