From c2c72ae864e7581b102379dd6fa617745aff46ae Mon Sep 17 00:00:00 2001
From: Boris Grozev <boris@jitsi.org>
Date: Fri, 16 Jan 2015 20:15:06 +0200
Subject: [PATCH] Removes the separate methods for configuring abs-send-time
 and uses RTP extensions.

---
 .../jitsi/impl/neomedia/MediaStreamImpl.java  | 29 ++++++++++---------
 .../neomedia/transform/AbsSendTimeEngine.java |  1 -
 .../jitsi/service/neomedia/MediaStream.java   | 15 ----------
 .../jitsi/service/neomedia/RTPExtension.java  |  8 +++++
 4 files changed, 24 insertions(+), 29 deletions(-)

diff --git a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
index b9e06dd1..1a4c6346 100644
--- a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
@@ -535,12 +535,25 @@ protected void addRemoteSourceID(long remoteSourceID)
     @Override
     public void addRTPExtension(byte extensionID, RTPExtension rtpExtension)
     {
+        boolean active
+                = !MediaDirection.INACTIVE.equals(rtpExtension.getDirection());
         synchronized (activeRTPExtensions)
         {
-            if (MediaDirection.INACTIVE.equals(rtpExtension.getDirection()))
-                activeRTPExtensions.remove(extensionID);
-            else
+            if (active)
                 activeRTPExtensions.put(extensionID, rtpExtension);
+            else
+                activeRTPExtensions.remove(extensionID);
+        }
+
+        if (RTPExtension.ABS_SEND_TIME_URN
+                .equals(rtpExtension.getURI().toString()))
+        {
+            AbsSendTimeEngine absSendTimeEngine = getAbsSendTimeEngine();
+            if (absSendTimeEngine != null)
+            {
+                absSendTimeEngine.setExtensionID(
+                        active ? extensionID : -1);
+            }
         }
     }
 
@@ -2186,16 +2199,6 @@ else if (t instanceof ThreadDeath)
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setAbsSendTimeExtensionID(int id)
-    {
-        if (absSendTimeEngine != null)
-            absSendTimeEngine.setExtensionID(id);
-    }
-
     /**
      * Sets the <tt>StreamConnector</tt> to be used by this instance for sending
      * and receiving media.
diff --git a/src/org/jitsi/impl/neomedia/transform/AbsSendTimeEngine.java b/src/org/jitsi/impl/neomedia/transform/AbsSendTimeEngine.java
index b43e4ca1..861d4583 100644
--- a/src/org/jitsi/impl/neomedia/transform/AbsSendTimeEngine.java
+++ b/src/org/jitsi/impl/neomedia/transform/AbsSendTimeEngine.java
@@ -31,7 +31,6 @@ public class AbsSendTimeEngine
      */
     private int extensionID = -1;
 
-
     /**
      * Implements {@link SinglePacketTransformer#reverseTransform(RawPacket)}.
      */
diff --git a/src/org/jitsi/service/neomedia/MediaStream.java b/src/org/jitsi/service/neomedia/MediaStream.java
index c30b095d..b1788c17 100644
--- a/src/org/jitsi/service/neomedia/MediaStream.java
+++ b/src/org/jitsi/service/neomedia/MediaStream.java
@@ -424,19 +424,4 @@ public void addDynamicRTPPayloadTypeOverride(byte originalPt,
      * effect on an already closed stream and is simply ignored.
      */
     public void stop();
-
-    /**
-     * Sets the ID of the abs-send-time RTP header extension to be used by
-     * this <tt>MediaStream</tt>.
-     *
-     * If set to a value different than -1, any outgoing RTP packets that
-     * already contain an RTP extension with this ID will have the timestamp
-     * in said extension replaced with one generated locally at (close to) the
-     * time of transmission.
-     *
-     * See http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
-     *
-     * @param id the ID to set.
-     */
-    public void setAbsSendTimeExtensionID(int id);
 }
diff --git a/src/org/jitsi/service/neomedia/RTPExtension.java b/src/org/jitsi/service/neomedia/RTPExtension.java
index 7aa2fac7..ef6762c1 100644
--- a/src/org/jitsi/service/neomedia/RTPExtension.java
+++ b/src/org/jitsi/service/neomedia/RTPExtension.java
@@ -34,6 +34,14 @@ public class RTPExtension
     public static final String SSRC_AUDIO_LEVEL_URN
             = "urn:ietf:params:rtp-hdrext:ssrc-audio-level";
 
+    /**
+     * The URN identifying the abs-send-time RTP extension.
+     * Defined at
+     * {@link "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}
+     */
+    public static final String ABS_SEND_TIME_URN
+            = "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
+
     /**
      * The direction that this extension will be transmitted in.
      */
-- 
GitLab