]> git.parisson.com Git - telemeta.git/commitdiff
Fix flac metadata teansport during encoding, Change 'length' analyzer to 'duration'
authoryomguy <>
Tue, 16 Dec 2008 01:02:27 +0000 (01:02 +0000)
committeryomguy <>
Tue, 16 Dec 2008 01:02:27 +0000 (01:02 +0000)
telemeta/analysis/__init__.py
telemeta/analysis/duration.py [new file with mode: 0644]
telemeta/analysis/length.py [deleted file]
telemeta/export/flac.py

index f3b7d83227c9bee5b11aaeb921e16cd302865d54..748879eed381e397c9cb86b6a744d6af4f8759de 100644 (file)
@@ -5,7 +5,7 @@ from telemeta.analysis.format import *
 from telemeta.analysis.encoding import *
 from telemeta.analysis.resolution import *
 from telemeta.analysis.samplerate import *
-from telemeta.analysis.length import *
+from telemeta.analysis.duration import *
 from telemeta.analysis.max_level import *
 from telemeta.analysis.mean_level import *
 
diff --git a/telemeta/analysis/duration.py b/telemeta/analysis/duration.py
new file mode 100644 (file)
index 0000000..a215b78
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright (C) 2008 Parisson SARL
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://svn.parisson.org/telemeta/TelemetaLicense.
+#
+# Author: Guillaume Pellerin <yomguy@parisson.com>
+
+from telemeta.analysis.core import *
+from telemeta.analysis.api import IMediaItemAnalyzer
+import numpy
+import datetime
+
+class DurationAnalyzer(AudioProcessor):
+    """Media item analyzer driver interface"""
+
+    implements(IMediaItemAnalyzer)
+
+    def get_id(self):
+        return "duration"
+
+    def get_name(self):
+        return "Duration"
+
+    def get_unit(self):
+        return "h:m:s"
+
+    def render(self, media_item, options=None):
+        self.pre_process(media_item)
+        media_time = numpy.round(float(self.frames)/(float(self.samplerate)*float(self.channels)),0)
+        return datetime.timedelta(0,media_time)
diff --git a/telemeta/analysis/length.py b/telemeta/analysis/length.py
deleted file mode 100644 (file)
index 83ce842..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2008 Parisson SARL
-# All rights reserved.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at http://svn.parisson.org/telemeta/TelemetaLicense.
-#
-# Author: Guillaume Pellerin <yomguy@parisson.com>
-
-from telemeta.analysis.core import *
-from telemeta.analysis.api import IMediaItemAnalyzer
-import numpy
-import datetime
-
-class LengthAnalyzer(AudioProcessor):
-    """Media item analyzer driver interface"""
-
-    implements(IMediaItemAnalyzer)
-
-    def get_id(self):
-        return "length"
-
-    def get_name(self):
-        return "Length"
-
-    def get_unit(self):
-        return "h:m:s"
-
-    def render(self, media_item, options=None):
-        self.pre_process(media_item)
-        media_time = numpy.round(float(self.frames)/(float(self.samplerate)*float(self.channels)),0)
-        #return str(media_time)
-        return datetime.timedelta(0,media_time)
-        
\ No newline at end of file
index c7ff2ea91f7f6e1e9f7135b76c6a7eacec823a7e..116878bb186e43907b2a4d3e1be5f83946785abf 100644 (file)
@@ -31,7 +31,7 @@ class FlacExporter(ExporterCore):
         self.options = {}
         self.description = ''
         self.dest = ''
-        self.quality_default = '5'
+        self.quality_default = '-5'
         self.info = []
         self.buffer_size = 0xFFFF
 
@@ -116,9 +116,8 @@ class FlacExporter(ExporterCore):
         self.args = self.get_args(options)
         self.ext = self.get_file_extension()
         self.args = ' '.join(self.args)
-        self.command = 'sox "%s" -s -q -r 44100 -t wav -c2 - | flac %s -c -' % (self.source, self.args)
-        tmp_file_name = NamedTemporaryFile(suffix = '.' + self.ext).name
-        tmp_file = open(tmp_file_name, 'w')
+        self.command = 'sox "%s" -s -q -r 44100 -t wav -c2 - | flac -c %s - ' \
+                        % (self.source, self.args)
         
         # Pre-proccessing
         self.dest = self.pre_process(self.item_id,
@@ -130,20 +129,20 @@ class FlacExporter(ExporterCore):
 
         # Processing (streaming + cache writing)
         stream = self.core_process(self.command, self.buffer_size, self.dest)
+
         for chunk in stream:
-            tmp_file.write(chunk)
-            
-        tmp_file.close()
-        self.write_tags(tmp_file)
-        tmp_file = open(tmp_file_name.name, 'r')
+            pass
 
+        self.write_tags(self.dest)
+        file = open(self.dest,'r')
+        
         while True:
-            chunk = tmp_file.read(self.buffer_size)
+            chunk = file.read(self.buffer_size)
             if len(chunk) == 0:
                 break
             yield chunk
 
-        tmp_file.close()
+        file.close()
 
         # Post-proccessing
         #self.post_process(self.item_id,