Reland: Remove dead code from stream_params.h

Bug: None
Change-Id: I257b09416b2328601beb3f3807b85d3065f63d43
Reviewed-on: https://webrtc-review.googlesource.com/c/121660
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26579}
diff --git a/media/base/stream_params.cc b/media/base/stream_params.cc
index 0545f75..2e96798 100644
--- a/media/base/stream_params.cc
+++ b/media/base/stream_params.cc
@@ -19,11 +19,6 @@
 
 namespace cricket {
 namespace {
-// NOTE: There is no check here for duplicate streams, so check before
-// adding.
-void AddStream(std::vector<StreamParams>* streams, const StreamParams& stream) {
-  streams->push_back(stream);
-}
 
 std::string SsrcsToString(const std::vector<uint32_t>& ssrcs) {
   char buf[1024];
@@ -69,54 +64,6 @@
   return found != nullptr;
 }
 
-MediaStreams::MediaStreams() = default;
-MediaStreams::~MediaStreams() = default;
-
-bool MediaStreams::GetAudioStream(const StreamSelector& selector,
-                                  StreamParams* stream) {
-  return GetStream(audio_, selector, stream);
-}
-
-bool MediaStreams::GetVideoStream(const StreamSelector& selector,
-                                  StreamParams* stream) {
-  return GetStream(video_, selector, stream);
-}
-
-bool MediaStreams::GetDataStream(const StreamSelector& selector,
-                                 StreamParams* stream) {
-  return GetStream(data_, selector, stream);
-}
-
-void MediaStreams::CopyFrom(const MediaStreams& streams) {
-  audio_ = streams.audio_;
-  video_ = streams.video_;
-  data_ = streams.data_;
-}
-
-void MediaStreams::AddAudioStream(const StreamParams& stream) {
-  AddStream(&audio_, stream);
-}
-
-void MediaStreams::AddVideoStream(const StreamParams& stream) {
-  AddStream(&video_, stream);
-}
-
-void MediaStreams::AddDataStream(const StreamParams& stream) {
-  AddStream(&data_, stream);
-}
-
-bool MediaStreams::RemoveAudioStream(const StreamSelector& selector) {
-  return RemoveStream(&audio_, selector);
-}
-
-bool MediaStreams::RemoveVideoStream(const StreamSelector& selector) {
-  return RemoveStream(&video_, selector);
-}
-
-bool MediaStreams::RemoveDataStream(const StreamSelector& selector) {
-  return RemoveStream(&data_, selector);
-}
-
 SsrcGroup::SsrcGroup(const std::string& usage,
                      const std::vector<uint32_t>& ssrcs)
     : semantics(usage), ssrcs(ssrcs) {}
@@ -289,78 +236,4 @@
   return stream_ids_.empty() ? "" : stream_ids_[0];
 }
 
-bool IsOneSsrcStream(const StreamParams& sp) {
-  if (sp.ssrcs.size() == 1 && sp.ssrc_groups.empty()) {
-    return true;
-  }
-  const SsrcGroup* fid_group = sp.get_ssrc_group(kFidSsrcGroupSemantics);
-  const SsrcGroup* fecfr_group = sp.get_ssrc_group(kFecFrSsrcGroupSemantics);
-  if (sp.ssrcs.size() == 2) {
-    if (fid_group != nullptr && sp.ssrcs == fid_group->ssrcs) {
-      return true;
-    }
-    if (fecfr_group != nullptr && sp.ssrcs == fecfr_group->ssrcs) {
-      return true;
-    }
-  }
-  if (sp.ssrcs.size() == 3) {
-    if (fid_group == nullptr || fecfr_group == nullptr) {
-      return false;
-    }
-    if (sp.ssrcs[0] != fid_group->ssrcs[0] ||
-        sp.ssrcs[0] != fecfr_group->ssrcs[0]) {
-      return false;
-    }
-    // We do not check for FlexFEC over RTX,
-    // as this combination is not supported.
-    if (sp.ssrcs[1] == fid_group->ssrcs[1] &&
-        sp.ssrcs[2] == fecfr_group->ssrcs[1]) {
-      return true;
-    }
-    if (sp.ssrcs[1] == fecfr_group->ssrcs[1] &&
-        sp.ssrcs[2] == fid_group->ssrcs[1]) {
-      return true;
-    }
-  }
-  return false;
-}
-
-namespace {
-void RemoveFirst(std::list<uint32_t>* ssrcs, uint32_t value) {
-  auto it = absl::c_find(*ssrcs, value);
-  if (it != ssrcs->end()) {
-    ssrcs->erase(it);
-  }
-}
-}  // namespace
-
-bool IsSimulcastStream(const StreamParams& sp) {
-  // Check for spec-compliant Simulcast using rids.
-  if (sp.rids().size() > 1) {
-    return true;
-  }
-
-  const SsrcGroup* const sg = sp.get_ssrc_group(kSimSsrcGroupSemantics);
-  if (sg == NULL || sg->ssrcs.size() < 2) {
-    return false;
-  }
-  // Start with all StreamParams SSRCs. Remove simulcast SSRCs (from sg) and
-  // RTX SSRCs. If we still have SSRCs left, we don't know what they're for.
-  // Also we remove first-found SSRCs only. So duplicates should lead to errors.
-  std::list<uint32_t> sp_ssrcs(sp.ssrcs.begin(), sp.ssrcs.end());
-  for (size_t i = 0; i < sg->ssrcs.size(); ++i) {
-    RemoveFirst(&sp_ssrcs, sg->ssrcs[i]);
-  }
-  for (size_t i = 0; i < sp.ssrc_groups.size(); ++i) {
-    const SsrcGroup& group = sp.ssrc_groups[i];
-    if (group.semantics.compare(kFidSsrcGroupSemantics) != 0 ||
-        group.ssrcs.size() != 2) {
-      continue;
-    }
-    RemoveFirst(&sp_ssrcs, group.ssrcs[1]);
-  }
-  // If there's SSRCs left that we don't know how to handle, we bail out.
-  return sp_ssrcs.size() == 0;
-}
-
 }  // namespace cricket
diff --git a/media/base/stream_params.h b/media/base/stream_params.h
index c69f423..42f1912 100644
--- a/media/base/stream_params.h
+++ b/media/base/stream_params.h
@@ -249,50 +249,6 @@
 
 typedef std::vector<StreamParams> StreamParamsVec;
 
-// A collection of audio and video and data streams. Most of the
-// methods are merely for convenience. Many of these methods are keyed
-// by ssrc, which is the source identifier in the RTP spec
-// (http://tools.ietf.org/html/rfc3550).
-// TODO(pthatcher):  Add basic unit test for these.
-// See https://code.google.com/p/webrtc/issues/detail?id=4107
-struct MediaStreams {
- public:
-  MediaStreams();
-  ~MediaStreams();
-  void CopyFrom(const MediaStreams& sources);
-
-  bool empty() const {
-    return audio_.empty() && video_.empty() && data_.empty();
-  }
-
-  std::vector<StreamParams>* mutable_audio() { return &audio_; }
-  std::vector<StreamParams>* mutable_video() { return &video_; }
-  std::vector<StreamParams>* mutable_data() { return &data_; }
-  const std::vector<StreamParams>& audio() const { return audio_; }
-  const std::vector<StreamParams>& video() const { return video_; }
-  const std::vector<StreamParams>& data() const { return data_; }
-
-  // Gets a stream, returning true if found.
-  bool GetAudioStream(const StreamSelector& selector, StreamParams* stream);
-  bool GetVideoStream(const StreamSelector& selector, StreamParams* stream);
-  bool GetDataStream(const StreamSelector& selector, StreamParams* stream);
-  // Adds a stream.
-  void AddAudioStream(const StreamParams& stream);
-  void AddVideoStream(const StreamParams& stream);
-  void AddDataStream(const StreamParams& stream);
-  // Removes a stream, returning true if found and removed.
-  bool RemoveAudioStream(const StreamSelector& selector);
-  bool RemoveVideoStream(const StreamSelector& selector);
-  bool RemoveDataStream(const StreamSelector& selector);
-
- private:
-  std::vector<StreamParams> audio_;
-  std::vector<StreamParams> video_;
-  std::vector<StreamParams> data_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(MediaStreams);
-};
-
 template <class Condition>
 const StreamParams* GetStream(const StreamParamsVec& streams,
                               Condition condition) {
@@ -369,16 +325,6 @@
   });
 }
 
-// Checks if |sp| defines parameters for a single primary stream. There may
-// be an RTX stream or a FlexFEC stream (or both) associated with the primary
-// stream. Leaving as non-static so we can test this function.
-bool IsOneSsrcStream(const StreamParams& sp);
-
-// Checks if |sp| defines parameters for one Simulcast stream. There may be RTX
-// streams associated with the simulcast streams. Leaving as non-static so we
-// can test this function.
-bool IsSimulcastStream(const StreamParams& sp);
-
 }  // namespace cricket
 
 #endif  // MEDIA_BASE_STREAM_PARAMS_H_
diff --git a/media/base/stream_params_unittest.cc b/media/base/stream_params_unittest.cc
index 53d355a..7adf0f5 100644
--- a/media/base/stream_params_unittest.cc
+++ b/media/base/stream_params_unittest.cc
@@ -22,8 +22,6 @@
 
 static const uint32_t kSsrcs1[] = {1};
 static const uint32_t kSsrcs2[] = {1, 2};
-static const uint32_t kSsrcs3[] = {1, 2, 3};
-static const uint32_t kRtxSsrcs3[] = {4, 5, 6};
 
 static cricket::StreamParams CreateStreamParamsWithSsrcGroup(
     const std::string& semantics,
@@ -233,99 +231,6 @@
       sp.ToString().c_str());
 }
 
-TEST(StreamParams, TestIsOneSsrcStream_LegacyStream) {
-  EXPECT_TRUE(
-      cricket::IsOneSsrcStream(cricket::StreamParams::CreateLegacy(13)));
-}
-
-TEST(StreamParams, TestIsOneSsrcStream_SingleRtxStream) {
-  cricket::StreamParams stream;
-  stream.add_ssrc(13);
-  EXPECT_TRUE(stream.AddFidSsrc(13, 14));
-  EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
-}
-
-TEST(StreamParams, TestIsOneSsrcStream_SingleFlexfecStream) {
-  cricket::StreamParams stream;
-  stream.add_ssrc(13);
-  EXPECT_TRUE(stream.AddFecFrSsrc(13, 14));
-  EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
-}
-
-TEST(StreamParams, TestIsOneSsrcStream_SingleFlexfecAndRtxStream) {
-  cricket::StreamParams stream;
-  stream.add_ssrc(13);
-  EXPECT_TRUE(stream.AddFecFrSsrc(13, 14));
-  EXPECT_TRUE(stream.AddFidSsrc(13, 15));
-  EXPECT_TRUE(cricket::IsOneSsrcStream(stream));
-}
-
-TEST(StreamParams, TestIsOneSsrcStream_SimulcastStream) {
-  EXPECT_FALSE(cricket::IsOneSsrcStream(
-      cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2))));
-  EXPECT_FALSE(cricket::IsOneSsrcStream(
-      cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs3))));
-}
-
-TEST(StreamParams, TestIsOneSsrcStream_SimRtxStream) {
-  cricket::StreamParams stream = cricket::CreateSimWithRtxStreamParams(
-      "cname", MAKE_VECTOR(kSsrcs3), MAKE_VECTOR(kRtxSsrcs3));
-  EXPECT_FALSE(cricket::IsOneSsrcStream(stream));
-}
-
-TEST(StreamParams, TestIsSimulcastStream_LegacyStream) {
-  EXPECT_FALSE(
-      cricket::IsSimulcastStream(cricket::StreamParams::CreateLegacy(13)));
-}
-
-TEST(StreamParams, TestIsSimulcastStream_SingleRtxStream) {
-  cricket::StreamParams stream;
-  stream.add_ssrc(13);
-  EXPECT_TRUE(stream.AddFidSsrc(13, 14));
-  EXPECT_FALSE(cricket::IsSimulcastStream(stream));
-}
-
-TEST(StreamParams, TestIsSimulcastStream_SimulcastStream) {
-  EXPECT_TRUE(cricket::IsSimulcastStream(
-      cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2))));
-  EXPECT_TRUE(cricket::IsSimulcastStream(
-      cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs3))));
-}
-
-TEST(StreamParams, TestIsSimulcastStream_SimRtxStream) {
-  cricket::StreamParams stream = cricket::CreateSimWithRtxStreamParams(
-      "cname", MAKE_VECTOR(kSsrcs3), MAKE_VECTOR(kRtxSsrcs3));
-  EXPECT_TRUE(cricket::IsSimulcastStream(stream));
-}
-
-TEST(StreamParams, TestIsSimulcastStream_InvalidStreams) {
-  // stream1 has extra non-sim, non-fid ssrc.
-  cricket::StreamParams stream1 = cricket::CreateSimWithRtxStreamParams(
-      "cname", MAKE_VECTOR(kSsrcs3), MAKE_VECTOR(kRtxSsrcs3));
-  stream1.add_ssrc(25);
-  EXPECT_FALSE(cricket::IsSimulcastStream(stream1));
-
-  // stream2 has invalid fid-group (no primary).
-  cricket::StreamParams stream2;
-  stream2.add_ssrc(13);
-  EXPECT_TRUE(stream2.AddFidSsrc(13, 14));
-  stream2.ssrcs.erase(
-      std::remove(stream2.ssrcs.begin(), stream2.ssrcs.end(), 13u),
-      stream2.ssrcs.end());
-  EXPECT_FALSE(cricket::IsSimulcastStream(stream2));
-
-  // stream3 has two SIM groups.
-  cricket::StreamParams stream3 =
-      cricket::CreateSimStreamParams("cname", MAKE_VECTOR(kSsrcs2));
-  std::vector<uint32_t> sim_ssrcs = MAKE_VECTOR(kRtxSsrcs3);
-  cricket::SsrcGroup sg(cricket::kSimSsrcGroupSemantics, sim_ssrcs);
-  for (size_t i = 0; i < sim_ssrcs.size(); i++) {
-    stream3.add_ssrc(sim_ssrcs[i]);
-  }
-  stream3.ssrc_groups.push_back(sg);
-  EXPECT_FALSE(cricket::IsSimulcastStream(stream3));
-}
-
 TEST(StreamParams, TestGenerateSsrcs_SingleStreamWithRtxAndFlex) {
   rtc::UniqueRandomIdGenerator generator;
   cricket::StreamParams stream;