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 *
--- /dev/null
+# 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)
+++ /dev/null
-# 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
self.options = {}
self.description = ''
self.dest = ''
- self.quality_default = '5'
+ self.quality_default = '-5'
self.info = []
self.buffer_size = 0xFFFF
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,
# 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,