]> git.parisson.com Git - timeside.git/commitdiff
get first encoder test
authoryomguy <yomguy@parisson.com>
Fri, 9 Oct 2009 13:39:09 +0000 (13:39 +0000)
committeryomguy <yomguy@parisson.com>
Fri, 9 Oct 2009 13:39:09 +0000 (13:39 +0000)
decode/core.py
encode/core.py
encode/flac.py
encode/mp3.py
encode/ogg.py
tests/test.py

index da895f43a8bb5c4b987710649cbe35ceb9cee600..6065a402882b7ba3ece2dfd128771f6cc28b62e9 100644 (file)
@@ -65,16 +65,18 @@ class DecoderCore(Component):
     def process(self, source, options=None):
         """Encode and stream audio data through a generator"""
 
-        proc = SubProcessPipe(self.command) % source
-
-        while True:
-            __chunk = proc.output.read(self.proc.buffer_size)
-            status = proc.poll()
-            if status != None and status != 0:
-                raise ExportProcessError('Command failure:', command, proc)
-            if len(__chunk) == 0:
-                break
-            yield __chunk
+        command = self.command % source
+        proc = SubProcessPipe(command)
+        return proc.output
+
+        #while True:
+            #__chunk = proc.output.read(self.proc.buffer_size)
+            #status = proc.poll()
+            #if status != None and status != 0:
+                #raise ExportProcessError('Command failure:', command, proc)
+            #if len(__chunk) == 0:
+                #break
+            #yield __chunk
 
 
 
index 7988279b7f0826fa32d53aef6548a4d608645a27..31a031dfefc74852ef19b101fe1bffe77d86829c 100644 (file)
@@ -63,10 +63,10 @@ class EncoderCore(Component):
         proc = SubProcessPipe(command, stdin)
 
         while True:
-            __chunk = proc.output.read(self.proc.buffer_size)
-            status = proc.poll()
-            if status != None and status != 0:
-                raise EncodeProcessError('Command failure:', command, proc)
+            __chunk = proc.output.read(proc.buffer_size)
+            #status = proc.poll()
+            #if status != None and status != 0:
+                #raise EncodeProcessError('Command failure:', command, proc)
             if len(__chunk) == 0:
                 break
             yield __chunk
index 60bf3569d50b5aa513721983c2fb378af50f5d30..8ab2f1f503b7408fdc55e403967aaac2dfc534ad 100644 (file)
@@ -105,18 +105,19 @@ class FlacEncoder(EncoderCore):
 
     def process(self, source, metadata, options=None):
         buffer_size = 0xFFFF
-        args = self.get_args(options)
+        self.options = options
+        args = self.get_args()
         args = ' '.join(args)
-        ext = self.get_file_extension()
+        ext = self.file_extension()
         command = 'flac -c %s -' % args
 
         stream = self.core_process(command, source)
-        temp_file = NamedTemporaryFile(delete=False)
+        temp_file = NamedTemporaryFile()
         for __chunk in stream:
             temp_file.write(__chunk)
             temp_file.flush()
 
-        self.write_tags(temp_file)
+        #self.write_tags(temp_file)
 
         while True:
             __chunk = temp_file.read(buffer_size)
index 3360f6dfcd36a414efd943afbfbfebc976b4c09d..2bde51f1126e27d2eb7534dd10a16049ef3cdefd 100644 (file)
@@ -127,7 +127,7 @@ class Mp3Encoder(EncoderCore):
     def process(self, source, metadata, options=None):
         self.metadata = metadata
         self.options = options
-        args = get_args(options)
+        args = self.get_args()
         args = ' '.join(args)
         command = 'lame %s - -' % args
 
index b04f22fba2b89d6f7fb411c5928ffc735548e7c4..84dd8c7d25cc6dfb710d88f5d2cd33b71bb1a2de 100644 (file)
@@ -101,7 +101,7 @@ class OggVorbisEncoder(EncoderCore):
     def process(self, source, metadata, options=None):
         self.metadata = metadata
         self.options = options
-        args = self.get_args(options)
+        args = self.get_args()
         args = ' '.join(args)
         command = 'oggenc %s -' % args
 
index d069edd8a1ae74e44cad76d6ba87720a0414b90c..c00ad0ae9dd606abbc8c41fb44571ef96237be6f 100755 (executable)
@@ -24,6 +24,7 @@ class TestAnalyzers(Component):
             value = analyzer.render(media)
             print id + ' = ' + str(value) + ' ' + analyzer.unit()
 
+
 class TestDecoders(Component):
     decoders = ExtensionPoint(timeside.decode.IDecoder)
 
@@ -35,6 +36,12 @@ class TestDecoders(Component):
                             })
         print decoders
 
+    def run(self, media, format):
+        for decoder in self.decoders:
+            if decoder.format() == format:
+                break
+        return decoder.process(media)
+
 
 class TestEncoders(Component):
     encoders = ExtensionPoint(timeside.encode.IEncoder)
@@ -47,6 +54,20 @@ class TestEncoders(Component):
                             })
         print encoders
 
+    def run(self, source, metadata):
+        print '\n=== Encoder testing ===\n'
+        for encoder in self.encoders:
+            format = encoder.format()
+            ext = encoder.file_extension()
+            stream = encoder.process(source, metadata)
+            file_path = 'results/sweep' + '.' + ext
+            file = open(file_path, 'w')
+            for chunk in stream:
+                file.write(chunk)
+            print 'Sound exported to :' + file_path
+            file.close()
+
+
 class TestGraphers(Component):
     graphers = ExtensionPoint(timeside.graph.IGrapher)
 
@@ -70,20 +91,23 @@ class TestGraphers(Component):
             print 'Image exported to :' + file_path
             file.close()
 
+
+
 if __name__ == '__main__':
     sample = 'samples/sweep.wav'
+    metadata = {'creator': 'yomguy', 'date': '2009', 'name': 'test'}
     comp_mgr = ComponentManager()
     a = TestAnalyzers(comp_mgr)
     d = TestDecoders(comp_mgr)
     e = TestEncoders(comp_mgr)
     g = TestGraphers(comp_mgr)
-    a.list()
-    d.list()
-    e.list()
-    g.list()
-    a.run(sample)
-    #d.run()
-    #e.run()
-    g.run(sample)
+    #a.list()
+    #d.list()
+    #e.list()
+    #g.list()
+    #a.run(sample)
+    #g.run(sample)
+    audio = d.run(sample, 'WAV')
+    e.run(audio, metadata)