From 92fdfebeddc5a1152d6c089df56a8ae4e9d9207c Mon Sep 17 00:00:00 2001 From: "mallinath@webrtc.org" Date: Mon, 17 Feb 2014 18:49:41 +0000 Subject: [PATCH] Update talk to 61699344. TBR=wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/8809004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5560 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/base/asyncpacketsocket.h | 10 ++++++---- talk/media/base/mediachannel.h | 4 ++++ talk/media/webrtc/webrtcvideoengine.cc | 11 ++++++++++- talk/media/webrtc/webrtcvideoengine.h | 1 + talk/media/webrtc/webrtcvideoengine_unittest.cc | 12 ++++++++++++ 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/talk/base/asyncpacketsocket.h b/talk/base/asyncpacketsocket.h index 4fcc27144..b1d5a4a15 100644 --- a/talk/base/asyncpacketsocket.h +++ b/talk/base/asyncpacketsocket.h @@ -45,10 +45,12 @@ struct PacketTimeUpdateParams { srtp_packet_index(-1) { } - int rtp_sendtime_extension_id; // extension header id present in packet. - Buffer srtp_auth_key; // Authentication key. - int srtp_auth_tag_len; // Authentication tag length. - int64 srtp_packet_index; // Required for Rtp Packet authentication. + int rtp_sendtime_extension_id; // extension header id present in packet. + std::vector srtp_auth_key; // Authentication key. + int srtp_auth_tag_len; // Authentication tag length. + int64 srtp_packet_index; // Required for Rtp Packet authentication. + int payload_len; // Raw payload length, before any wrapping + // like TURN/GTURN. }; // This structure holds meta information for the packet which is about to send diff --git a/talk/media/base/mediachannel.h b/talk/media/base/mediachannel.h index 1a84704c2..7c42b704f 100644 --- a/talk/media/base/mediachannel.h +++ b/talk/media/base/mediachannel.h @@ -539,6 +539,10 @@ class MediaChannel : public sigslot::has_slots<> { const std::vector& extensions) = 0; virtual bool SetSendRtpHeaderExtensions( const std::vector& extensions) = 0; + // Returns the absoulte sendtime extension id value from media channel. + virtual int GetRtpSendTimeExtnId() const { + return -1; + } // Sets the initial bandwidth to use when sending starts. virtual bool SetStartSendBandwidth(int bps) = 0; // Sets the maximum allowed bandwidth to use when sending data. diff --git a/talk/media/webrtc/webrtcvideoengine.cc b/talk/media/webrtc/webrtcvideoengine.cc index 9a94b882a..3e6f92808 100644 --- a/talk/media/webrtc/webrtcvideoengine.cc +++ b/talk/media/webrtc/webrtcvideoengine.cc @@ -2467,7 +2467,7 @@ bool WebRtcVideoMediaChannel::GetStats(const StatsOptions& options, // Only call for the default channel because the returned stats are // collected for all the channels using the same estimator. if (engine_->vie()->rtp()->GetReceiveBandwidthEstimatorStats( - recv_channels_[0]->channel_id(), &additional_stats)) { + recv_channels_[0]->channel_id(), &additional_stats) == 0) { bwe.total_received_propagation_delta_ms = additional_stats.total_propagation_time_delta_ms; bwe.recent_received_propagation_delta_ms.swap( @@ -2664,6 +2664,15 @@ bool WebRtcVideoMediaChannel::SetSendRtpHeaderExtensions( return true; } +int WebRtcVideoMediaChannel::GetRtpSendTimeExtnId() const { + const RtpHeaderExtension* send_time_extension = FindHeaderExtension( + send_extensions_, kRtpAbsoluteSendTimeHeaderExtension); + if (send_time_extension) { + return send_time_extension->id; + } + return -1; +} + bool WebRtcVideoMediaChannel::SetStartSendBandwidth(int bps) { LOG(LS_INFO) << "WebRtcVideoMediaChannel::SetStartSendBandwidth"; diff --git a/talk/media/webrtc/webrtcvideoengine.h b/talk/media/webrtc/webrtcvideoengine.h index cb191426b..668d760e6 100644 --- a/talk/media/webrtc/webrtcvideoengine.h +++ b/talk/media/webrtc/webrtcvideoengine.h @@ -273,6 +273,7 @@ class WebRtcVideoMediaChannel : public talk_base::MessageHandler, const std::vector& extensions); virtual bool SetSendRtpHeaderExtensions( const std::vector& extensions); + virtual int GetRtpSendTimeExtnId() const; virtual bool SetStartSendBandwidth(int bps); virtual bool SetMaxSendBandwidth(int bps); virtual bool SetOptions(const VideoOptions &options); diff --git a/talk/media/webrtc/webrtcvideoengine_unittest.cc b/talk/media/webrtc/webrtcvideoengine_unittest.cc index f2af10a25..f5622ef76 100644 --- a/talk/media/webrtc/webrtcvideoengine_unittest.cc +++ b/talk/media/webrtc/webrtcvideoengine_unittest.cc @@ -1886,6 +1886,18 @@ TEST_F(WebRtcVideoMediaChannelTest, SetRecvCodecsUnsupportedCodec) { EXPECT_FALSE(channel_->SetRecvCodecs(codecs)); } +TEST_F(WebRtcVideoMediaChannelTest, GetRtpSendTimeExtension) { + // Enable RTP timestamp extension. + const int id = 12; + std::vector extensions; + extensions.push_back(cricket::RtpHeaderExtension( + "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", id)); + + // Verify the send extension id. + EXPECT_TRUE(channel_->SetSendRtpHeaderExtensions(extensions)); + EXPECT_EQ(id, channel_->GetRtpSendTimeExtnId()); +} + TEST_F(WebRtcVideoMediaChannelTest, SetSend) { Base::SetSend(); }