From 0c3b9e838bd8797049685a48d8806f61688c9436 Mon Sep 17 00:00:00 2001
From: Boris Grozev <boris@jitsi.org>
Date: Fri, 20 Jun 2014 13:28:25 +0200
Subject: [PATCH] Adds methods to MediaService.

---
 .../jitsi/impl/neomedia/MediaServiceImpl.java | 20 ++++++++++++++++
 .../jitsi/service/neomedia/MediaService.java  | 24 +++++++++++++++++++
 2 files changed, 44 insertions(+)
 mode change 100644 => 100755 src/org/jitsi/impl/neomedia/MediaServiceImpl.java

diff --git a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
old mode 100644
new mode 100755
index 8ea44913..5053cb30
--- a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
@@ -863,6 +863,15 @@ public Recorder createRecorder(MediaDevice device)
             return null;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Recorder createRecorder(RTPTranslator translator)
+    {
+        return new RecorderRtpImpl(translator);
+    }
+
     /**
      * Returns a {@link Map} that binds indicates whatever preferences this
      * media service implementation may have for the RTP payload type numbers
@@ -1782,4 +1791,15 @@ public void windowClosing(WindowEvent event)
             }
         }
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public RecorderEventHandler createRecorderEventHandlerJson(String filename)
+            throws IOException
+    {
+        return new RecorderEventHandlerJSONImpl(filename);
+    }
+
 }
diff --git a/src/org/jitsi/service/neomedia/MediaService.java b/src/org/jitsi/service/neomedia/MediaService.java
index 4337bd40..d41ad218 100644
--- a/src/org/jitsi/service/neomedia/MediaService.java
+++ b/src/org/jitsi/service/neomedia/MediaService.java
@@ -7,6 +7,7 @@
 package org.jitsi.service.neomedia;
 
 import java.beans.*;
+import java.io.*;
 import java.util.*;
 
 import org.jitsi.service.neomedia.codec.*;
@@ -199,6 +200,16 @@ public MediaStream createMediaStream(
      */
     public Recorder createRecorder(MediaDevice device);
 
+    /**
+     * Creates a new <tt>Recorder</tt> instance that can be used to record media
+     * from a specific <tt>RTPTranslator</tt>.
+     * @param translator the <tt>RTPTranslator</tt> for which to create a
+     * <tt>Recorder</tt>
+     * @return a new <tt>Recorder</tt> instance that can be used to record media
+     * from a specific <tt>RTPTranslator</tt>.
+     */
+    public Recorder createRecorder(RTPTranslator translator);
+
     /**
      * Initializes a new <tt>RTPTranslator</tt> which is to forward RTP and RTCP
      * traffic between multiple <tt>MediaStream</tt>s.
@@ -391,4 +402,17 @@ public Object getVideoPreviewComponent(
      * libjitsi.
      */
     public String getRtpCname();
+
+    /**
+     * Creates a <tt>RecorderEventHandler</tt> instance that saves received
+     * events in JSON format.
+     * @param filename the filename into which the created
+     * <tt>RecorderEventHandler</tt> will save received events.
+     * @return a <tt>RecorderEventHandler</tt> instance that saves received
+     * events in JSON format.
+     * @throws IOException if a <tt>RecorderEventHandler</tt> could not be
+     * created for <tt>filename</tt>.
+     */
+    public RecorderEventHandler createRecorderEventHandlerJson(String filename)
+            throws IOException;
 }
-- 
GitLab