/* * 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. */ #ifndef PC_SIMULCAST_DESCRIPTION_H_ #define PC_SIMULCAST_DESCRIPTION_H_ #include <stddef.h> #include <string> #include <vector> #include "absl/strings/string_view.h" namespace cricket { // Describes a Simulcast Layer. // Each simulcast layer has a rid as the identifier and a paused flag. // See also: https://tools.ietf.org/html/draft-ietf-mmusic-rid-15 for // an explanation about rids. struct SimulcastLayer final { … }; // Describes a list of Simulcast layers. // Simulcast layers are specified in order of preference. // Each layer can have a list of alternatives (in order of preference). // https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-13#section-5.1 // Example Usage: // To populate a list that specifies the following: // 1. Layer 1 or Layer 2 // 2. Layer 3 // 3. Layer 4 or Layer 5 // Use the following code: // SimulcastLayerList list; // list.AddLayerWithAlternatives( // {SimulcastLayer("1", false), SimulcastLayer("2", false}); // list.AddLayer("3"); // list.AddLayerWithAlternatives( // {SimulcastLayer("4", false), SimulcastLayer("5", false}); class SimulcastLayerList final { … }; // Describes the simulcast options of a video media section. // This will list the send and receive layers (along with their alternatives). // Each simulcast layer has an identifier (rid) and can optionally be paused. // The order of the layers (as well as alternates) indicates user preference // from first to last (most preferred to least preferred). // https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-13#section-5.1 class SimulcastDescription final { … }; } // namespace cricket #endif // PC_SIMULCAST_DESCRIPTION_H_