| Index: webrtc/api/ortc/rtptransportinterface.h
|
| diff --git a/webrtc/api/ortc/rtptransportinterface.h b/webrtc/api/ortc/rtptransportinterface.h
|
| index 119d662edde283815170dbab234103ea8c763f7b..b992b864dc15c7f28f45d677bb1f13970cdc7f00 100644
|
| --- a/webrtc/api/ortc/rtptransportinterface.h
|
| +++ b/webrtc/api/ortc/rtptransportinterface.h
|
| @@ -15,13 +15,14 @@
|
|
|
| #include "webrtc/api/ortc/packettransportinterface.h"
|
| #include "webrtc/api/rtcerror.h"
|
| +#include "webrtc/common_types.h"
|
| #include "webrtc/rtc_base/optional.h"
|
|
|
| namespace webrtc {
|
|
|
| class RtpTransportAdapter;
|
|
|
| -struct RtcpParameters {
|
| +struct RtcpParameters final {
|
| // The SSRC to be used in the "SSRC of packet sender" field. If not set, one
|
| // will be chosen by the implementation.
|
| // TODO(deadbeef): Not implemented.
|
| @@ -34,7 +35,7 @@ struct RtcpParameters {
|
| // RtpTransports created by the same OrtcFactory will use the same generated
|
| // CNAME.
|
| //
|
| - // If empty when passed into SetRtcpParameters, the CNAME simply won't be
|
| + // If empty when passed into SetParameters, the CNAME simply won't be
|
| // modified.
|
| std::string cname;
|
|
|
| @@ -51,6 +52,21 @@ struct RtcpParameters {
|
| bool operator!=(const RtcpParameters& o) const { return !(*this == o); }
|
| };
|
|
|
| +struct RtpTransportParameters final {
|
| + RtcpParameters rtcp;
|
| +
|
| + // Enabled periodic sending of keep-alive packets, that help prevent timeouts
|
| + // on the network level, such as NAT bindings. See RFC6263 section 4.6.
|
| + RtpKeepAliveConfig keepalive;
|
| +
|
| + bool operator==(const RtpTransportParameters& o) const {
|
| + return rtcp == o.rtcp && keepalive == o.keepalive;
|
| + }
|
| + bool operator!=(const RtpTransportParameters& o) const {
|
| + return !(*this == o);
|
| + }
|
| +};
|
| +
|
| // Base class for different types of RTP transports that can be created by an
|
| // OrtcFactory. Used by RtpSenders/RtpReceivers.
|
| //
|
| @@ -74,16 +90,19 @@ class RtpTransportInterface {
|
| // RTCP multiplexing is being used, returns null.
|
| virtual PacketTransportInterface* GetRtcpPacketTransport() const = 0;
|
|
|
| - // Set/get RTCP params. Can be used to enable RTCP muxing or reduced-size
|
| - // RTCP if initially not enabled.
|
| + // Set/get RTP/RTCP transport params. Can be used to enable RTCP muxing or
|
| + // reduced-size RTCP if initially not enabled.
|
| //
|
| // Changing |mux| from "true" to "false" is not allowed, and changing the
|
| // CNAME is currently unsupported.
|
| - virtual RTCError SetRtcpParameters(const RtcpParameters& parameters) = 0;
|
| + // RTP keep-alive settings need to be set before creating any send-streams,
|
| + // altering the payload type or timeout interval after this point is not
|
| + // supported.
|
| + virtual RTCError SetParameters(const RtpTransportParameters& parameters) = 0;
|
| // Returns last set or constructed-with parameters. If |cname| was empty in
|
| // construction, the generated CNAME will be present in the returned
|
| // parameters (see above).
|
| - virtual RtcpParameters GetRtcpParameters() const = 0;
|
| + virtual RtpTransportParameters GetParameters() const = 0;
|
|
|
| protected:
|
| // Only for internal use. Returns a pointer to an internal interface, for use
|
|
|