Source code

Revision control

Copy as Markdown

Other Tools

/*
* Copyright 2023 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "pc/test/simulcast_layer_util.h"
#include "absl/algorithm/container.h"
#include "rtc_base/checks.h"
namespace webrtc {
std::vector<cricket::SimulcastLayer> CreateLayers(
const std::vector<std::string>& rids,
const std::vector<bool>& active) {
RTC_DCHECK_EQ(rids.size(), active.size());
std::vector<cricket::SimulcastLayer> result;
absl::c_transform(rids, active, std::back_inserter(result),
[](const std::string& rid, bool is_active) {
return cricket::SimulcastLayer(rid, !is_active);
});
return result;
}
std::vector<cricket::SimulcastLayer> CreateLayers(
const std::vector<std::string>& rids,
bool active) {
return CreateLayers(rids, std::vector<bool>(rids.size(), active));
}
RtpTransceiverInit CreateTransceiverInit(
const std::vector<cricket::SimulcastLayer>& layers) {
RtpTransceiverInit init;
for (const cricket::SimulcastLayer& layer : layers) {
RtpEncodingParameters encoding;
encoding.rid = layer.rid;
encoding.active = !layer.is_paused;
init.send_encodings.push_back(encoding);
}
return init;
}
cricket::SimulcastDescription RemoveSimulcast(SessionDescriptionInterface* sd) {
auto mcd = sd->description()->contents()[0].media_description();
auto result = mcd->simulcast_description();
mcd->set_simulcast_description(cricket::SimulcastDescription());
return result;
}
} // namespace webrtc