Update of /var/cvs/speeltuin/mihxil/streams/src/org/mmbase/streams/transcoders
In directory james.mmbase.org:/tmp/cvs-serv15555

Modified Files:
        CommandTranscoder.java FFMpeg2TheoraTranscoder.java 
Added Files:
        ChainedTranscoder.java 
Log Message:
Made the transcoders log to Logger in stead of stdin/stdout. Also added a 
ChainedTranscoder (unfinished)


See also: 
http://cvs.mmbase.org/viewcvs/speeltuin/mihxil/streams/src/org/mmbase/streams/transcoders


ChainedTranscoder.java is new



Index: CommandTranscoder.java
===================================================================
RCS file: 
/var/cvs/speeltuin/mihxil/streams/src/org/mmbase/streams/transcoders/CommandTranscoder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- CommandTranscoder.java      17 Apr 2009 10:06:18 -0000      1.1
+++ CommandTranscoder.java      24 Apr 2009 16:29:56 -0000      1.2
@@ -11,7 +11,12 @@
 
 
 import java.net.*;
+import java.io.*;
 import org.mmbase.util.externalprocess.*;
+import org.mmbase.util.WriterOutputStream;
+
+import org.mmbase.util.logging.*;
+
 
 /**
  * A trancoder base on an external command, like <code>ffmpeg</code> or 
<code>ffmpeg2theora</code>
@@ -19,7 +24,13 @@
  * @author Michiel Meeuwissen
  */
 
-public abstract class CommandTranscoder implements Transcoder {
+public abstract class CommandTranscoder implements Transcoder, LoggerAccepter {
+
+    private final ChainedLogger log = new ChainedLogger();
+
+    public void addLogger(Logger l) {
+        log.addLogger(l);
+    }
 
     protected abstract String getCommand();
 
@@ -28,10 +39,19 @@
     }
     protected abstract String[] getArguments(URI in, URI out);
 
+    protected Level getOutputLevel() {
+        return Level.SERVICE;
+    }
+    protected Level getErrorLevel() {
+        return Level.ERROR;
+    }
+
     public void transcode(final URI in, final URI out) throws Exception {
         CommandLauncher cl = new CommandLauncher("Transcoding " + in + " to " 
+ out);
         cl.execute(getCommand(), getArguments(in, out), getEnvironment());
-        cl.waitAndRead(System.out, System.err);
+        OutputStream outStream = new WriterOutputStream(new LoggerWriter(log, 
getOutputLevel()), System.getProperty("file.encoding"));
+        OutputStream errStream = new WriterOutputStream(new LoggerWriter(log, 
getErrorLevel()), System.getProperty("file.encoding"));
+        cl.waitAndRead(outStream, errStream);
     }
 
 }


Index: FFMpeg2TheoraTranscoder.java
===================================================================
RCS file: 
/var/cvs/speeltuin/mihxil/streams/src/org/mmbase/streams/transcoders/FFMpeg2TheoraTranscoder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- FFMpeg2TheoraTranscoder.java        17 Apr 2009 10:06:18 -0000      1.1
+++ FFMpeg2TheoraTranscoder.java        24 Apr 2009 16:29:56 -0000      1.2
@@ -12,6 +12,9 @@
 
 import java.net.*;
 import java.io.*;
+import org.mmbase.util.logging.*;
+
+
 
 /**
  * A trancoder base on an external command, like <code>ffmpeg</code> or 
<code>ffmpeg2theora</code>
@@ -34,11 +37,16 @@
 
         return new String[] { "-o", outFile.toString(), inFile.toString() };
     }
+    @Override
+    protected Level getErrorLevel() {
+        return Level.SERVICE;
+    }
 
 
     public static void main(String[] argv) throws Exception {
-
-        Transcoder transcoder = new FFMpeg2TheoraTranscoder();
+        CommandTranscoder transcoder = new FFMpeg2TheoraTranscoder();
+        Logging.getLoggerInstance("FFMPEG2THEORA").setLevel(Level.SERVICE);
+        transcoder.addLogger(Logging.getLoggerInstance("FFMPEG2THEORA"));
         transcoder.transcode(new File(argv[0]).toURI(), new 
File(argv[1]).toURI());
     }
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to