| /* |
| * 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 |