Chromium Code Reviews| Index: webrtc/api/ortc/rtptransportinterface.h |
| diff --git a/webrtc/api/ortc/rtptransportinterface.h b/webrtc/api/ortc/rtptransportinterface.h |
| index 119d662edde283815170dbab234103ea8c763f7b..775671f16bfa7f228ad2a7f1482090455b4d76d9 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 of timeout interval after this point is not |
|
pthatcher1
2017/07/17 22:43:27
of timeout => or timeout
ilnik
2017/07/21 12:21:19
Done.
|
| + // 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 |