Add ctor to RtpDemuxerCriteria to allow supplying 'mid' and 'rsid'.

Since another CL [1] grew a bit in scope, this CL needs to land first,
coupled with downstream updates.

[1]: https://webrtc-review.googlesource.com/c/src/+/244083

Bug: webrtc:12517, webrtc:11993
Change-Id: I80d826a0d3f3240a2cecf8cbe09842cba0902b16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244085
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35611}
diff --git a/call/BUILD.gn b/call/BUILD.gn
index b5002e4..53d3193 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -150,7 +150,10 @@
     "../rtc_base/containers:flat_map",
     "../rtc_base/containers:flat_set",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
 }
 
 rtc_library("rtp_sender") {
diff --git a/call/rtp_demuxer.cc b/call/rtp_demuxer.cc
index 28962fd..c839e9f 100644
--- a/call/rtp_demuxer.cc
+++ b/call/rtp_demuxer.cc
@@ -41,6 +41,11 @@
 
 }  // namespace
 
+RtpDemuxerCriteria::RtpDemuxerCriteria(
+    absl::string_view mid,
+    absl::string_view rsid /*= absl::string_view()*/)
+    : mid(mid), rsid(rsid) {}
+
 RtpDemuxerCriteria::RtpDemuxerCriteria() = default;
 RtpDemuxerCriteria::~RtpDemuxerCriteria() = default;
 
diff --git a/call/rtp_demuxer.h b/call/rtp_demuxer.h
index fb65fce..931dac2 100644
--- a/call/rtp_demuxer.h
+++ b/call/rtp_demuxer.h
@@ -16,6 +16,7 @@
 #include <utility>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "rtc_base/containers/flat_map.h"
 #include "rtc_base/containers/flat_set.h"
 
@@ -27,6 +28,8 @@
 // This struct describes the criteria that will be used to match packets to a
 // specific sink.
 struct RtpDemuxerCriteria {
+  explicit RtpDemuxerCriteria(absl::string_view mid,
+                              absl::string_view rsid = absl::string_view());
   RtpDemuxerCriteria();
   ~RtpDemuxerCriteria();
 
diff --git a/call/rtp_demuxer_unittest.cc b/call/rtp_demuxer_unittest.cc
index 0c50b81..ddb151f 100644
--- a/call/rtp_demuxer_unittest.cc
+++ b/call/rtp_demuxer_unittest.cc
@@ -61,23 +61,19 @@
   }
 
   bool AddSinkOnlyRsid(const std::string& rsid, RtpPacketSinkInterface* sink) {
-    RtpDemuxerCriteria criteria;
-    criteria.rsid = rsid;
+    RtpDemuxerCriteria criteria(absl::string_view(), rsid);
     return AddSink(criteria, sink);
   }
 
   bool AddSinkOnlyMid(const std::string& mid, RtpPacketSinkInterface* sink) {
-    RtpDemuxerCriteria criteria;
-    criteria.mid = mid;
+    RtpDemuxerCriteria criteria(mid);
     return AddSink(criteria, sink);
   }
 
   bool AddSinkBothMidRsid(const std::string& mid,
                           const std::string& rsid,
                           RtpPacketSinkInterface* sink) {
-    RtpDemuxerCriteria criteria;
-    criteria.mid = mid;
-    criteria.rsid = rsid;
+    RtpDemuxerCriteria criteria(mid, rsid);
     return AddSink(criteria, sink);
   }