/* * Copyright (c) 2017 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 MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_ #define MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_ #include namespace webrtc { class ReceiveStatisticsProvider; class Transport; struct RtcpTransceiverConfig { RtcpTransceiverConfig(); RtcpTransceiverConfig(const RtcpTransceiverConfig&); RtcpTransceiverConfig& operator=(const RtcpTransceiverConfig&); ~RtcpTransceiverConfig(); // Logs the error and returns false if configuration miss key objects or // is inconsistant. May log warnings. bool Validate() const; // Used to prepend all log messages. Can be empty. std::string debug_id; // Ssrc to use as default sender ssrc, e.g. for transport-wide feedbacks. uint32_t feedback_ssrc = 1; // Canonical End-Point Identifier of the local particiapnt. // Defined in rfc3550 section 6 note 2 and section 6.5.1. std::string cname; // Maximum packet size outgoing transport accepts. size_t max_packet_size = 1200; // Transport to send rtcp packets to. Should be set. Transport* outgoing_transport = nullptr; // Minimum period to send receiver reports and attached messages. int min_periodic_report_ms = 1000; // Rtcp report block generator for outgoing receiver reports. ReceiveStatisticsProvider* receive_statistics = nullptr; }; } // namespace webrtc #endif // MODULES_RTP_RTCP_SOURCE_RTCP_TRANSCEIVER_CONFIG_H_