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}
This commit is contained in:
Steve Anton 2019-02-15 10:50:44 -08:00 committed by Commit Bot
parent ca890ee582
commit c6643141f9
2 changed files with 56 additions and 61 deletions

View File

@ -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 @@ std::string SsrcGroup::ToString() const {
rtc::SimpleStringBuilder sb(buf);
sb << "{";
sb << "semantics:" << semantics << ";";
sb << SsrcsToString(ssrcs);
AppendSsrcs(ssrcs, &sb);
sb << "}";
return sb.str();
}
@ -113,30 +127,18 @@ std::string StreamParams::ToString() const {
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 @@ void StreamParams::GetPrimarySsrcs(std::vector<uint32_t>* ssrcs) const {
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 @@ bool StreamParams::AddSecondarySsrc(const std::string& semantics,
}
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;
}
}

View File

@ -122,10 +122,9 @@ struct StreamParams {
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;