blob: 187ad189d5ee754878d8d2c294c024d64c3ba2ab [file] [log] [blame]
Danil Chapovalov398a7c62017-10-24 17:07:05 +02001/*
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
11#ifndef MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_
12#define MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_
13
14#include <string>
15
16namespace webrtc {
17class ReceiveStatisticsProvider;
18class Transport;
19
20struct RtcpTransceiverConfig {
21 RtcpTransceiverConfig();
22 RtcpTransceiverConfig(const RtcpTransceiverConfig&);
23 RtcpTransceiverConfig& operator=(const RtcpTransceiverConfig&);
24 ~RtcpTransceiverConfig();
25
26 // Logs the error and returns false if configuration miss key objects or
27 // is inconsistant. May log warnings.
28 bool Validate() const;
29
30 // Used to prepend all log messages. Can be empty.
31 std::string debug_id;
32
33 // Ssrc to use as default sender ssrc, e.g. for transport-wide feedbacks.
34 uint32_t feedback_ssrc = 1;
35
Danil Chapovalov78161ca2017-10-26 12:09:41 +020036 // Canonical End-Point Identifier of the local particiapnt.
37 // Defined in rfc3550 section 6 note 2 and section 6.5.1.
Danil Chapovalov398a7c62017-10-24 17:07:05 +020038 std::string cname;
39
40 // Maximum packet size outgoing transport accepts.
41 size_t max_packet_size = 1200;
42
43 // Transport to send rtcp packets to. Should be set.
44 Transport* outgoing_transport = nullptr;
45
46 // Minimum period to send receiver reports and attached messages.
47 int min_periodic_report_ms = 1000;
48
49 // Rtcp report block generator for outgoing receiver reports.
50 ReceiveStatisticsProvider* receive_statistics = nullptr;
51};
52
53} // namespace webrtc
54
55#endif // MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_