(Auto)update libjingle 62691533-> 62713454

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5653 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/media/webrtc/fakewebrtcvoiceengine.h b/talk/media/webrtc/fakewebrtcvoiceengine.h
index 36dcb78..bac5331 100644
--- a/talk/media/webrtc/fakewebrtcvoiceengine.h
+++ b/talk/media/webrtc/fakewebrtcvoiceengine.h
@@ -60,6 +60,15 @@
 #endif
 
 
+// Verify the header extension ID, if enabled, is within the bounds specified in
+// [RFC5285]: 1-14 inclusive.
+#define WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id) \
+  do { \
+    if (enable && (id < 1 || id > 14)) { \
+      return -1; \
+    } \
+  } while (0);
+
 class FakeWebRtcVoiceEngine
     : public webrtc::VoEAudioProcessing,
       public webrtc::VoEBase, public webrtc::VoECodec, public webrtc::VoEDtmf,
@@ -98,7 +107,9 @@
           fec_type(117),
           nack_max_packets(0),
           send_ssrc(0),
-          level_header_ext_(-1),
+          send_audio_level_ext_(-1),
+          send_absolute_sender_time_ext_(-1),
+          receive_absolute_sender_time_ext_(-1),
           using_experimental_acm(use_experimental_acm) {
       memset(&send_codec, 0, sizeof(send_codec));
       memset(&rx_agc_config, 0, sizeof(rx_agc_config));
@@ -123,7 +134,9 @@
     int fec_type;
     int nack_max_packets;
     uint32 send_ssrc;
-    int level_header_ext_;
+    int send_audio_level_ext_;
+    int send_absolute_sender_time_ext_;
+    int receive_absolute_sender_time_ext_;
     DtmfInfo dtmf_info;
     std::vector<webrtc::CodecInst> recv_codecs;
     webrtc::CodecInst send_codec;
@@ -274,6 +287,15 @@
     channels_[++last_channel_] = ch;
     return last_channel_;
   }
+  int GetSendAudioLevelId(int channel) {
+    return channels_[channel]->send_audio_level_ext_;
+  }
+  int GetSendAbsoluteSenderTimeId(int channel) {
+    return channels_[channel]->send_absolute_sender_time_ext_;
+  }
+  int GetReceiveAbsoluteSenderTimeId(int channel) {
+    return channels_[channel]->receive_absolute_sender_time_ext_;
+  }
 
   WEBRTC_STUB(Release, ());
 
@@ -489,7 +511,6 @@
   WEBRTC_STUB(SetDtmfPlayoutStatus, (int channel, bool enable));
   WEBRTC_STUB(GetDtmfPlayoutStatus, (int channel, bool& enabled));
 
-
   WEBRTC_FUNC(PlayDtmfTone,
       (int event_code, int length_ms = 200, int attenuation_db = 10)) {
     dtmf_info_.dtmf_event_code = event_code;
@@ -685,24 +706,41 @@
     return 0;
   }
   WEBRTC_STUB(GetRemoteSSRC, (int channel, unsigned int& ssrc));
+#ifndef USE_WEBRTC_DEV_BRANCH
   WEBRTC_FUNC(SetRTPAudioLevelIndicationStatus, (int channel, bool enable,
       unsigned char id)) {
     WEBRTC_CHECK_CHANNEL(channel);
-    if (enable && (id < 1 || id > 14)) {
-      // [RFC5285] The 4-bit ID is the local identifier of this element in
-      // the range 1-14 inclusive.
-      return -1;
-    }
-    channels_[channel]->level_header_ext_ = (enable) ? id : -1;
+    WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id);
+    channels_[channel]->send_audio_level_ext_ = (enable) ? id : -1;
     return 0;
   }
-  WEBRTC_FUNC(GetRTPAudioLevelIndicationStatus, (int channel, bool& enabled,
-      unsigned char& id)) {
+  WEBRTC_STUB(GetRTPAudioLevelIndicationStatus, (int channel, bool& enable,
+      unsigned char& id));
+#endif
+#ifdef USE_WEBRTC_DEV_BRANCH
+  WEBRTC_FUNC(SetSendAudioLevelIndicationStatus, (int channel, bool enable,
+      unsigned char id)) {
     WEBRTC_CHECK_CHANNEL(channel);
-    enabled = (channels_[channel]->level_header_ext_ != -1);
-    id = channels_[channel]->level_header_ext_;
+    WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id);
+    channels_[channel]->send_audio_level_ext_ = (enable) ? id : -1;
     return 0;
   }
+  WEBRTC_FUNC(SetSendAbsoluteSenderTimeStatus, (int channel, bool enable,
+      unsigned char id)) {
+    WEBRTC_CHECK_CHANNEL(channel);
+    WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id);
+    channels_[channel]->send_absolute_sender_time_ext_ = (enable) ? id : -1;
+    return 0;
+  }
+  WEBRTC_FUNC(SetReceiveAbsoluteSenderTimeStatus, (int channel, bool enable,
+      unsigned char id)) {
+    WEBRTC_CHECK_CHANNEL(channel);
+    WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id);
+    channels_[channel]->receive_absolute_sender_time_ext_ = (enable) ? id : -1;
+    return 0;
+  }
+#endif
+
   WEBRTC_STUB(GetRemoteCSRCs, (int channel, unsigned int arrCSRC[15]));
   WEBRTC_STUB(SetRTCPStatus, (int channel, bool enable));
   WEBRTC_STUB(GetRTCPStatus, (int channel, bool& enabled));
@@ -1068,6 +1106,8 @@
   webrtc::VoEMediaProcess* media_processor_;
 };
 
+#undef WEBRTC_CHECK_HEADER_EXTENSION_ID
+
 }  // namespace cricket
 
 #endif  // TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_