[M116] Bail out early if the RTP send module for a SSRC was not found

since it might have been deregistered previously.

BUG=chromium:1454860,chromium:1459124

(cherry picked from commit c0ed83eac258032a2416b7e4200bd074a6455f4b)

Change-Id: I70ba43265361d040e568f83b6400ff8f3c2a8e98
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311800
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Original-Commit-Position: refs/heads/main@{#40431}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/312120
Cr-Commit-Position: refs/branch-heads/5845@{#6}
Cr-Branched-From: f80cf814353d11a9f22bef5ce5e8868f2c72f0d0-refs/heads/main@{#40319}
diff --git a/modules/pacing/packet_router.cc b/modules/pacing/packet_router.cc
index 135b618..ba133f3 100644
--- a/modules/pacing/packet_router.cc
+++ b/modules/pacing/packet_router.cc
@@ -88,7 +88,10 @@
 void PacketRouter::RemoveSendRtpModuleFromMap(uint32_t ssrc) {
   RTC_DCHECK_RUN_ON(&thread_checker_);
   auto it = send_modules_map_.find(ssrc);
-  RTC_DCHECK(it != send_modules_map_.end());
+  if (it == send_modules_map_.end()) {
+    RTC_LOG(LS_ERROR) << "No send module found for ssrc " << ssrc;
+    return;
+  }
   send_modules_list_.remove(it->second);
   RTC_CHECK(modules_used_in_current_batch_.empty());
   send_modules_map_.erase(it);
diff --git a/modules/pacing/packet_router_unittest.cc b/modules/pacing/packet_router_unittest.cc
index 7604de6..af85343 100644
--- a/modules/pacing/packet_router_unittest.cc
+++ b/modules/pacing/packet_router_unittest.cc
@@ -541,12 +541,6 @@
   packet_router_.RemoveReceiveRtpModule(&module);
 }
 
-TEST_F(PacketRouterDeathTest, RemovalOfNeverAddedSendModuleDisallowed) {
-  NiceMock<MockRtpRtcpInterface> module;
-
-  EXPECT_DEATH(packet_router_.RemoveSendRtpModule(&module), "");
-}
-
 TEST_F(PacketRouterDeathTest, RemovalOfNeverAddedReceiveModuleDisallowed) {
   NiceMock<MockRtpRtcpInterface> module;
 
@@ -554,6 +548,18 @@
 }
 #endif  // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
 
+TEST_F(PacketRouterTest, RemovalOfNeverAddedSendModuleIgnored) {
+  NiceMock<MockRtpRtcpInterface> module;
+  packet_router_.RemoveSendRtpModule(&module);
+}
+
+TEST_F(PacketRouterTest, DuplicateRemovalOfSendModuleIgnored) {
+  NiceMock<MockRtpRtcpInterface> module;
+  packet_router_.AddSendRtpModule(&module, false);
+  packet_router_.RemoveSendRtpModule(&module);
+  packet_router_.RemoveSendRtpModule(&module);
+}
+
 TEST(PacketRouterRembTest, ChangeSendRtpModuleChangeRembSender) {
   rtc::ScopedFakeClock clock;
   NiceMock<MockRtpRtcpInterface> rtp_send;