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;