Clean up implementation in stream_params

Bug: None
Change-Id: I49c8a4b09c7d01e7b2e6a1cdcc2c90b83cfeddb8
Reviewed-on: https://webrtc-review.googlesource.com/c/121602
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26722}
diff --git a/media/base/stream_params.cc b/media/base/stream_params.cc
index 2e96798..0466a64 100644
--- a/media/base/stream_params.cc
+++ b/media/base/stream_params.cc
@@ -20,32 +20,46 @@
 namespace cricket {
 namespace {
 
-std::string SsrcsToString(const std::vector<uint32_t>& ssrcs) {
-  char buf[1024];
-  rtc::SimpleStringBuilder sb(buf);
-  sb << "ssrcs:[";
-  for (std::vector<uint32_t>::const_iterator it = ssrcs.begin();
-       it != ssrcs.end(); ++it) {
-    if (it != ssrcs.begin()) {
-      sb << ",";
-    }
-    sb << *it;
-  }
-  sb << "]";
-  return sb.str();
-}
-
-std::string RidsToString(const std::vector<RidDescription>& rids) {
-  char buf[1024];
-  rtc::SimpleStringBuilder sb(buf);
-  sb << "rids:[";
+void AppendSsrcs(rtc::ArrayView<const uint32_t> ssrcs,
+                 rtc::SimpleStringBuilder* sb) {
+  *sb << "ssrcs:[";
   const char* delimiter = "";
-  for (const RidDescription& rid : rids) {
-    sb << delimiter << rid.rid;
+  for (uint32_t ssrc : ssrcs) {
+    *sb << delimiter << ssrc;
     delimiter = ",";
   }
-  sb << "]";
-  return sb.str();
+  *sb << "]";
+}
+
+void AppendSsrcGroups(rtc::ArrayView<const SsrcGroup> ssrc_groups,
+                      rtc::SimpleStringBuilder* sb) {
+  *sb << "ssrc_groups:";
+  const char* delimiter = "";
+  for (const SsrcGroup& ssrc_group : ssrc_groups) {
+    *sb << delimiter << ssrc_group.ToString();
+    delimiter = ",";
+  }
+}
+
+void AppendStreamIds(rtc::ArrayView<const std::string> stream_ids,
+                     rtc::SimpleStringBuilder* sb) {
+  *sb << "stream_ids:";
+  const char* delimiter = "";
+  for (const std::string& stream_id : stream_ids) {
+    *sb << delimiter << stream_id;
+    delimiter = ",";
+  }
+}
+
+void AppendRids(rtc::ArrayView<const RidDescription> rids,
+                rtc::SimpleStringBuilder* sb) {
+  *sb << "rids:[";
+  const char* delimiter = "";
+  for (const RidDescription& rid : rids) {
+    *sb << delimiter << rid.rid;
+    delimiter = ",";
+  }
+  *sb << "]";
 }
 
 }  // namespace
@@ -83,7 +97,7 @@
   rtc::SimpleStringBuilder sb(buf);
   sb << "{";
   sb << "semantics:" << semantics << ";";
-  sb << SsrcsToString(ssrcs);
+  AppendSsrcs(ssrcs, &sb);
   sb << "}";
   return sb.str();
 }
@@ -113,30 +127,18 @@
   if (!id.empty()) {
     sb << "id:" << id << ";";
   }
-  sb << SsrcsToString(ssrcs) << ";";
-  sb << "ssrc_groups:";
-  for (std::vector<SsrcGroup>::const_iterator it = ssrc_groups.begin();
-       it != ssrc_groups.end(); ++it) {
-    if (it != ssrc_groups.begin()) {
-      sb << ",";
-    }
-    sb << it->ToString();
-  }
+  AppendSsrcs(ssrcs, &sb);
+  sb << ";";
+  AppendSsrcGroups(ssrc_groups, &sb);
   sb << ";";
   if (!cname.empty()) {
     sb << "cname:" << cname << ";";
   }
-  sb << "stream_ids:";
-  for (std::vector<std::string>::const_iterator it = stream_ids_.begin();
-       it != stream_ids_.end(); ++it) {
-    if (it != stream_ids_.begin()) {
-      sb << ",";
-    }
-    sb << *it;
-  }
+  AppendStreamIds(stream_ids_, &sb);
   sb << ";";
   if (!rids_.empty()) {
-    sb << RidsToString(rids_) << ";";
+    AppendRids(rids_, &sb);
+    sb << ";";
   }
   sb << "}";
   return sb.str();
@@ -178,17 +180,16 @@
   if (sim_group == NULL) {
     ssrcs->push_back(first_ssrc());
   } else {
-    for (size_t i = 0; i < sim_group->ssrcs.size(); ++i) {
-      ssrcs->push_back(sim_group->ssrcs[i]);
-    }
+    ssrcs->insert(ssrcs->end(), sim_group->ssrcs.begin(),
+                  sim_group->ssrcs.end());
   }
 }
 
 void StreamParams::GetFidSsrcs(const std::vector<uint32_t>& primary_ssrcs,
                                std::vector<uint32_t>* fid_ssrcs) const {
-  for (size_t i = 0; i < primary_ssrcs.size(); ++i) {
+  for (uint32_t primary_ssrc : primary_ssrcs) {
     uint32_t fid_ssrc;
-    if (GetFidSsrc(primary_ssrcs[i], &fid_ssrc)) {
+    if (GetFidSsrc(primary_ssrc, &fid_ssrc)) {
       fid_ssrcs->push_back(fid_ssrc);
     }
   }
@@ -202,22 +203,17 @@
   }
 
   ssrcs.push_back(secondary_ssrc);
-  std::vector<uint32_t> ssrc_vector;
-  ssrc_vector.push_back(primary_ssrc);
-  ssrc_vector.push_back(secondary_ssrc);
-  SsrcGroup ssrc_group = SsrcGroup(semantics, ssrc_vector);
-  ssrc_groups.push_back(ssrc_group);
+  ssrc_groups.push_back(SsrcGroup(semantics, {primary_ssrc, secondary_ssrc}));
   return true;
 }
 
 bool StreamParams::GetSecondarySsrc(const std::string& semantics,
                                     uint32_t primary_ssrc,
                                     uint32_t* secondary_ssrc) const {
-  for (std::vector<SsrcGroup>::const_iterator it = ssrc_groups.begin();
-       it != ssrc_groups.end(); ++it) {
-    if (it->has_semantics(semantics) && it->ssrcs.size() >= 2 &&
-        it->ssrcs[0] == primary_ssrc) {
-      *secondary_ssrc = it->ssrcs[1];
+  for (const SsrcGroup& ssrc_group : ssrc_groups) {
+    if (ssrc_group.has_semantics(semantics) && ssrc_group.ssrcs.size() >= 2 &&
+        ssrc_group.ssrcs[0] == primary_ssrc) {
+      *secondary_ssrc = ssrc_group.ssrcs[1];
       return true;
     }
   }
diff --git a/media/base/stream_params.h b/media/base/stream_params.h
index 42f1912..80a3a39 100644
--- a/media/base/stream_params.h
+++ b/media/base/stream_params.h
@@ -122,10 +122,9 @@
     return (get_ssrc_group(semantics) != NULL);
   }
   const SsrcGroup* get_ssrc_group(const std::string& semantics) const {
-    for (std::vector<SsrcGroup>::const_iterator it = ssrc_groups.begin();
-         it != ssrc_groups.end(); ++it) {
-      if (it->has_semantics(semantics)) {
-        return &(*it);
+    for (const SsrcGroup& ssrc_group : ssrc_groups) {
+      if (ssrc_group.has_semantics(semantics)) {
+        return &ssrc_group;
       }
     }
     return NULL;