From b247da70e4d76b2d9699889e15d926b90f45a61f Mon Sep 17 00:00:00 2001
From: Boris Grozev <boris@jitsi.org>
Date: Tue, 17 Jun 2014 16:03:13 +0200
Subject: [PATCH] Adds RTPTranslatorImpl#setSSRCFactory.

---
 .../jitsi/impl/neomedia/MediaStreamImpl.java  |  4 ++++
 .../rtp/translator/RTPTranslatorImpl.java     | 20 +++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
index 6663033b..1acc13be 100644
--- a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
@@ -24,6 +24,7 @@
 import org.jitsi.impl.neomedia.format.*;
 import org.jitsi.impl.neomedia.protocol.*;
 import org.jitsi.impl.neomedia.rtp.*;
+import org.jitsi.impl.neomedia.rtp.translator.*;
 import org.jitsi.impl.neomedia.transform.*;
 import org.jitsi.impl.neomedia.transform.csrc.*;
 import org.jitsi.impl.neomedia.transform.dtmf.*;
@@ -3214,9 +3215,12 @@ public void setSSRCFactory(SSRCFactory ssrcFactory)
             this.ssrcFactory = ssrcFactory;
 
             StreamRTPManager rtpManager = this.rtpManager;
+            RTPTranslator translator = rtpTranslator;
 
             if (rtpManager != null)
                 rtpManager.setSSRCFactory(ssrcFactory);
+            else if (translator instanceof RTPTranslatorImpl)
+                ((RTPTranslatorImpl)translator).setSSRCFactory(ssrcFactory);
         }
     }
 
diff --git a/src/org/jitsi/impl/neomedia/rtp/translator/RTPTranslatorImpl.java b/src/org/jitsi/impl/neomedia/rtp/translator/RTPTranslatorImpl.java
index 036dbc5c..66d05ce0 100644
--- a/src/org/jitsi/impl/neomedia/rtp/translator/RTPTranslatorImpl.java
+++ b/src/org/jitsi/impl/neomedia/rtp/translator/RTPTranslatorImpl.java
@@ -1046,4 +1046,24 @@ public boolean writeRTCPFeedbackMessage(
                         rtcpFeedbackMessage,
                         destination);
     }
+
+    /**
+    * Sets the <tt>SSRCFactory</tt> which is to generate new synchronization
+    * source (SSRC) identifiers.
+    *
+    * @param ssrcFactory the <tt>SSRCFactory</tt> which is to generate new
+    * synchronization source (SSRC) identifiers or <tt>null</tt> if this
+    * <tt>MediaStream</tt> is to employ internal logic to generate new
+    * synchronization source (SSRC) identifiers
+    */
+    public void setSSRCFactory(SSRCFactory ssrcFactory)
+    {
+        RTPManager manager = this.manager;
+        if (manager instanceof
+            org.jitsi.impl.neomedia.jmfext.media.rtp.RTPSessionMgr)
+        {
+            ((org.jitsi.impl.neomedia.jmfext.media.rtp.RTPSessionMgr)manager)
+                  .setSSRCFactory(ssrcFactory);
+        }
+    }
 }
-- 
GitLab