From 42a4891699d31148436305ba1b37bce3c6432fc0 Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Fri, 17 Aug 2012 14:44:21 +0000 Subject: [PATCH] Fixed issue for rtp extension. BUG= Review URL: https://webrtc-codereview.appspot.com/731012 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2629 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/video_engine/vie_channel.cc | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/video_engine/vie_channel.cc b/src/video_engine/vie_channel.cc index 0d6d2d9d7e..926c6fce43 100644 --- a/src/video_engine/vie_channel.cc +++ b/src/video_engine/vie_channel.cc @@ -679,15 +679,33 @@ bool ViEChannel::EnableRemb(bool enable) { } int ViEChannel::SetSendTimestampOffsetStatus(bool enable, int id) { + int error = 0; if (enable) { + // Enable the extension, but disable possible old id to avoid errors. send_timestamp_extension_id_ = id; - return rtp_rtcp_->RegisterSendRtpHeaderExtension( - kRtpExtensionTransmissionTimeOffset, id); - } else { - send_timestamp_extension_id_ = kInvalidRtpExtensionId; - return rtp_rtcp_->DeregisterSendRtpHeaderExtension( + rtp_rtcp_->DeregisterSendRtpHeaderExtension( kRtpExtensionTransmissionTimeOffset); + error = rtp_rtcp_->RegisterSendRtpHeaderExtension( + kRtpExtensionTransmissionTimeOffset, id); + for (std::list::iterator it = simulcast_rtp_rtcp_.begin(); + it != simulcast_rtp_rtcp_.end(); it++) { + (*it)->DeregisterSendRtpHeaderExtension( + kRtpExtensionTransmissionTimeOffset); + error |= (*it)->RegisterSendRtpHeaderExtension( + kRtpExtensionTransmissionTimeOffset, id); + } + } else { + // Disable the extension. + send_timestamp_extension_id_ = kInvalidRtpExtensionId; + rtp_rtcp_->DeregisterSendRtpHeaderExtension( + kRtpExtensionTransmissionTimeOffset); + for (std::list::iterator it = simulcast_rtp_rtcp_.begin(); + it != simulcast_rtp_rtcp_.end(); it++) { + (*it)->DeregisterSendRtpHeaderExtension( + kRtpExtensionTransmissionTimeOffset); + } } + return error; } int ViEChannel::SetReceiveTimestampOffsetStatus(bool enable, int id) {