blob: d95c8359ece829f70527ba418cb2348c9e576e88 [file] [log] [blame]
eladalon4bb3b9c2017-09-11 07:25:26 -07001/*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_
12#define LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_
eladalon4bb3b9c2017-09-11 07:25:26 -070013
14#include <string>
15#include <vector>
16
Patrik Höglund3e113432017-12-15 14:40:10 +010017#include "api/rtp_headers.h"
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020018#include "api/rtpparameters.h"
Mirko Bonadei71207422017-09-15 13:58:09 +020019#include "common_types.h" // NOLINT(build/include)
eladalon4bb3b9c2017-09-11 07:25:26 -070020
21namespace webrtc {
22namespace rtclog {
23
24struct StreamConfig {
25 StreamConfig();
Bjorn Tereliusf4db5422018-06-26 11:41:27 +020026 StreamConfig(const StreamConfig& other);
eladalon4bb3b9c2017-09-11 07:25:26 -070027 ~StreamConfig();
28
Elad Alon1d87b0e2017-10-03 15:01:03 +020029 bool operator==(const StreamConfig& other) const;
Bjorn Tereliusf4db5422018-06-26 11:41:27 +020030 bool operator!=(const StreamConfig& other) const;
Elad Alon1d87b0e2017-10-03 15:01:03 +020031
eladalon4bb3b9c2017-09-11 07:25:26 -070032 uint32_t local_ssrc = 0;
33 uint32_t remote_ssrc = 0;
34 uint32_t rtx_ssrc = 0;
35 std::string rsid;
36
37 bool remb = false;
38 std::vector<RtpExtension> rtp_extensions;
39
40 RtcpMode rtcp_mode = RtcpMode::kReducedSize;
41
42 struct Codec {
43 Codec(const std::string& payload_name,
44 int payload_type,
45 int rtx_payload_type);
46
Elad Alon1d87b0e2017-10-03 15:01:03 +020047 bool operator==(const Codec& other) const;
48
eladalon4bb3b9c2017-09-11 07:25:26 -070049 std::string payload_name;
50 int payload_type;
51 int rtx_payload_type;
52 };
53
54 std::vector<Codec> codecs;
55};
56
57} // namespace rtclog
58} // namespace webrtc
59
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020060#endif // LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_