]> git.parisson.com Git - telemeta.git/commitdiff
add Mean DC shift analyzer, fix duration analysis, cleanup
authoryomguy <>
Wed, 31 Dec 2008 17:29:04 +0000 (17:29 +0000)
committeryomguy <>
Wed, 31 Dec 2008 17:29:04 +0000 (17:29 +0000)
telemeta/analysis/__init__.py
telemeta/analysis/dc.py [new file with mode: 0644]
telemeta/analysis/duration.py
telemeta/analysis/mean_level.py

index 748879eed381e397c9cb86b6a744d6af4f8759de..080b2749518bfa57d42b120e2bae0d6a464713d0 100644 (file)
@@ -8,5 +8,6 @@ from telemeta.analysis.samplerate import *
 from telemeta.analysis.duration import *
 from telemeta.analysis.max_level import *
 from telemeta.analysis.mean_level import *
+from telemeta.analysis.dc import *
 
 
diff --git a/telemeta/analysis/dc.py b/telemeta/analysis/dc.py
new file mode 100644 (file)
index 0000000..9f3c083
--- /dev/null
@@ -0,0 +1,31 @@
+# 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
+
+class MeanDCShiftAnalyser(AudioProcessor):
+    """Media item analyzer driver interface"""
+
+    implements(IMediaItemAnalyzer)
+
+    def get_id(self):
+        return "dc"
+
+    def get_name(self):
+        return "Mean DC shift"
+
+    def get_unit(self):
+        return "%"
+
+    def render(self, media_item, options=None):
+        self.pre_process(media_item)
+        samples = self.get_mono_samples()
+        return numpy.round(100*numpy.mean(samples),4)
index a215b78a3dc4bcdd8141738b7851eabc33f4bed8..41c1eb89459f536f520185e2438ed9d1a9d9097e 100644 (file)
@@ -28,5 +28,5 @@ class DurationAnalyzer(AudioProcessor):
 
     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)
+        media_time = numpy.round(float(self.frames)/float(self.samplerate),0)
         return datetime.timedelta(0,media_time)
index 630080d98f7d835a357a201b585799a70aa81707..aeb5e16dc2c5e63d97e3124375cf45098557e3ae 100644 (file)
@@ -28,5 +28,4 @@ class MeanLevelAnalyser(AudioProcessor):
     def render(self, media_item, options=None):
         self.pre_process(media_item)
         samples = self.get_mono_samples()
-        size = numpy.size(samples)
         return numpy.round(20*numpy.log10(numpy.mean(numpy.sqrt(numpy.square(samples)))),2)