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
diff --git a/talk/base/asyncpacketsocket.h b/talk/base/asyncpacketsocket.h
index 4fcc271..b1d5a4a 100644
--- a/talk/base/asyncpacketsocket.h
+++ b/talk/base/asyncpacketsocket.h
@@ -45,10 +45,12 @@
         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<char> 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 1a84704..7c42b70 100644
--- a/talk/media/base/mediachannel.h
+++ b/talk/media/base/mediachannel.h
@@ -539,6 +539,10 @@
       const std::vector<RtpHeaderExtension>& extensions) = 0;
   virtual bool SetSendRtpHeaderExtensions(
       const std::vector<RtpHeaderExtension>& 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 9a94b88..3e6f928 100644
--- a/talk/media/webrtc/webrtcvideoengine.cc
+++ b/talk/media/webrtc/webrtcvideoengine.cc
@@ -2467,7 +2467,7 @@
     // 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 @@
   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 cb19142..668d760 100644
--- a/talk/media/webrtc/webrtcvideoengine.h
+++ b/talk/media/webrtc/webrtcvideoengine.h
@@ -273,6 +273,7 @@
       const std::vector<RtpHeaderExtension>& extensions);
   virtual bool SetSendRtpHeaderExtensions(
       const std::vector<RtpHeaderExtension>& 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 f2af10a..f5622ef 100644
--- a/talk/media/webrtc/webrtcvideoengine_unittest.cc
+++ b/talk/media/webrtc/webrtcvideoengine_unittest.cc
@@ -1886,6 +1886,18 @@
   EXPECT_FALSE(channel_->SetRecvCodecs(codecs));
 }
 
+TEST_F(WebRtcVideoMediaChannelTest, GetRtpSendTimeExtension) {
+  // Enable RTP timestamp extension.
+  const int id = 12;
+  std::vector<cricket::RtpHeaderExtension> 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();
 }