RtpSender's RtpParameters were invalidated in a call to SLD/SRD.
RtpSender uses a transactional model when getting and setting RtpParameters. One must call GetParameters() and then can use the returned object in a subsequent call to SetParameters(). PeerConnection was calling GetParameters() and SetParameters() during negotiation in SetLocalDescription and SetRemoteDescription effectively invalidating any parameters that the client previously held. This change introduces an internal way for the platform to modify parameters without invalidating the transactional model, provided that the modification is not severe. Ex. removing simulcast layers is a severe modification and will invalidate any outstanding parameters. Bug: webrtc:10339 Change-Id: I362e8ca4d9556e04a1aa7a3e74e2c275f8d16fbc Reviewed-on: https://webrtc-review.googlesource.com/c/124504 Reviewed-by: Seth Hampson <shampson@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Commit-Queue: Amit Hilbuch <amithi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26864}
This commit is contained in:
@ -34,7 +34,9 @@ class MockRtpSenderInternal : public RtpSenderInternal {
|
||||
MOCK_CONST_METHOD0(init_send_encodings, std::vector<RtpEncodingParameters>());
|
||||
MOCK_METHOD1(set_transport, void(rtc::scoped_refptr<DtlsTransportInterface>));
|
||||
MOCK_CONST_METHOD0(GetParameters, RtpParameters());
|
||||
MOCK_CONST_METHOD0(GetParametersInternal, RtpParameters());
|
||||
MOCK_METHOD1(SetParameters, RTCError(const RtpParameters&));
|
||||
MOCK_METHOD1(SetParametersInternal, RTCError(const RtpParameters&));
|
||||
MOCK_CONST_METHOD0(GetDtmfSender, rtc::scoped_refptr<DtmfSenderInterface>());
|
||||
MOCK_METHOD1(SetFrameEncryptor,
|
||||
void(rtc::scoped_refptr<FrameEncryptorInterface>));
|
||||
|
||||
Reference in New Issue
Block a user