/* * Copyright 2018 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/simulcast_description.h" #include "rtc_base/checks.h" namespace cricket { SimulcastLayer::SimulcastLayer(const std::string& rid, bool is_paused) : rid{rid}, is_paused{is_paused} { RTC_DCHECK(!rid.empty()); } bool SimulcastLayer::operator==(const SimulcastLayer& other) const { return rid == other.rid && is_paused == other.is_paused; } void SimulcastLayerList::AddLayer(const SimulcastLayer& layer) { list_.push_back({layer}); } void SimulcastLayerList::AddLayerWithAlternatives( const std::vector& rids) { RTC_DCHECK(!rids.empty()); list_.push_back(rids); } const std::vector& SimulcastLayerList::operator[]( size_t index) const { RTC_DCHECK_LT(index, list_.size()); return list_[index]; } bool SimulcastDescription::empty() const { return send_layers_.empty() && receive_layers_.empty(); } std::vector SimulcastLayerList::GetAllLayers() const { std::vector result; for (auto groupIt = begin(); groupIt != end(); groupIt++) { for (auto it = groupIt->begin(); it != groupIt->end(); it++) { result.push_back(*it); } } return result; } } // namespace cricket