| Index: webrtc/api/rtpparameters.h | 
| diff --git a/webrtc/api/rtpparameters.h b/webrtc/api/rtpparameters.h | 
| index f506c4031c3eacf6e923f3cea67d6f2f9586c4ee..d35615b4b504da00c483660a60d175cb6a9bb354 100644 | 
| --- a/webrtc/api/rtpparameters.h | 
| +++ b/webrtc/api/rtpparameters.h | 
| @@ -84,6 +84,12 @@ struct RtcpFeedback { | 
| //    rather than an unset "parameter" value. | 
| rtc::Optional<RtcpFeedbackMessageType> message_type; | 
|  | 
| +  // Constructors for convenience. | 
| +  RtcpFeedback() {} | 
| +  explicit RtcpFeedback(RtcpFeedbackType type) : type(type) {} | 
| +  RtcpFeedback(RtcpFeedbackType type, RtcpFeedbackMessageType message_type) | 
| +      : type(type), message_type(message_type) {} | 
| + | 
| bool operator==(const RtcpFeedback& o) const { | 
| return type == o.type && message_type == o.message_type; | 
| } | 
| @@ -184,6 +190,12 @@ struct RtpHeaderExtensionCapability { | 
| // TODO(deadbeef): Not implemented. | 
| bool preferred_encrypt = false; | 
|  | 
| +  // Constructors for convenience. | 
| +  RtpHeaderExtensionCapability() {} | 
| +  explicit RtpHeaderExtensionCapability(const std::string& uri) : uri(uri) {} | 
| +  RtpHeaderExtensionCapability(const std::string& uri, int preferred_id) | 
| +      : uri(uri), preferred_id(preferred_id) {} | 
| + | 
| bool operator==(const RtpHeaderExtensionCapability& o) const { | 
| return uri == o.uri && preferred_id == o.preferred_id && | 
| preferred_encrypt == o.preferred_encrypt; | 
| @@ -216,6 +228,7 @@ struct RtpHeaderExtensionParameters { | 
|  | 
| struct RtpFecParameters { | 
| // If unset, a value is chosen by the implementation. | 
| +  // Works just like RtpEncodingParameters.ssrc. | 
| rtc::Optional<uint32_t> ssrc; | 
|  | 
| FecMechanism mechanism = FecMechanism::RED; | 
| @@ -228,6 +241,7 @@ struct RtpFecParameters { | 
|  | 
| struct RtpRtxParameters { | 
| // If unset, a value is chosen by the implementation. | 
| +  // Works just like RtpEncodingParameters.ssrc. | 
| rtc::Optional<uint32_t> ssrc; | 
|  | 
| bool operator==(const RtpRtxParameters& o) const { return ssrc == o.ssrc; } | 
| @@ -236,6 +250,9 @@ struct RtpRtxParameters { | 
|  | 
| struct RtpEncodingParameters { | 
| // If unset, a value is chosen by the implementation. | 
| +  // Note that the chosen value is NOT returned by GetParameters, because it | 
| +  // may change due to an SSRC conflict, in which case the conflict is handled | 
| +  // internally without any event. | 
| rtc::Optional<uint32_t> ssrc; | 
|  | 
| // Can be used to reference a codec in the |codecs| member of the | 
| @@ -249,12 +266,13 @@ struct RtpEncodingParameters { | 
| rtc::Optional<RtpFecParameters> fec; | 
|  | 
| // Specifies the RTX parameters, if set. | 
| -  // TODO(deadbeef): Not implemented. | 
| +  // TODO(deadbeef): Not implemented with PeerConnection senders/receivers. | 
| rtc::Optional<RtpRtxParameters> rtx; | 
|  | 
| // Only used for audio. If set, determines whether or not discontinuous | 
| // transmission will be used, if an available codec supports it. If not | 
| // set, the implementation default setting will be used. | 
| +  // TODO(deadbeef): Not implemented. | 
| rtc::Optional<DtxStatus> dtx; | 
|  | 
| // The relative priority of this encoding. | 
| @@ -397,7 +415,7 @@ struct RtpParameters { | 
|  | 
| std::vector<RtpCodecParameters> codecs; | 
|  | 
| -  // TODO(deadbeef): Not implemented. | 
| +  // TODO(deadbeef): Not implemented with PeerConnection senders/receivers. | 
| std::vector<RtpHeaderExtensionParameters> header_extensions; | 
|  | 
| std::vector<RtpEncodingParameters> encodings; | 
|  |