]> git.parisson.com Git - telemeta.git/commitdiff
* Add analyzers (encoding, format)
authoryomguy <>
Sun, 14 Sep 2008 14:17:11 +0000 (14:17 +0000)
committeryomguy <>
Sun, 14 Sep 2008 14:17:11 +0000 (14:17 +0000)
telemeta/analysis/__init__.py
telemeta/analysis/core.py
telemeta/analysis/encoding.py [new file with mode: 0644]
telemeta/analysis/format.py [new file with mode: 0644]
telemeta/models/media.py

index 0336b26dcb1209056dee20158cbafe449985dbec..306e38882d6aa5f15f67c16892d05a05b11ca32f 100644 (file)
@@ -1,7 +1,11 @@
 from telemeta.analysis.api import *
 from telemeta.analysis.core import *
 from telemeta.analysis.channels import *
-from telemeta.analysis.length import *
+from telemeta.analysis.format import *
+from telemeta.analysis.encoding import *
 from telemeta.analysis.samplerate import *
+from telemeta.analysis.length import *
 from telemeta.analysis.max_level import *
 from telemeta.analysis.mean_level import *
+
+
index ffc673cce6643f10976ca83e5c0be189c429a488..fe76ed01c51116342afe1f7e1f5d5822c24881a8 100644 (file)
@@ -41,6 +41,8 @@ class AudioProcessor(Component):
         self.frames = self.audio_file.get_nframes()
         self.samplerate = self.audio_file.get_samplerate()
         self.channels = self.audio_file.get_channels()
+        self.format = self.audio_file.get_file_format()
+        self.encoding = self.audio_file.get_encoding()
 
     def post_process(self, audio_file):
         pass
diff --git a/telemeta/analysis/encoding.py b/telemeta/analysis/encoding.py
new file mode 100644 (file)
index 0000000..48ddbaa
--- /dev/null
@@ -0,0 +1,30 @@
+# 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 EncodingAnalyser(AudioProcessor):
+    """Media item analyzer driver interface"""
+
+    implements(IMediaItemAnalyzer)
+
+    def get_id(self):
+        return "encoding"
+
+    def get_name(self):
+        return "Encoding format"
+
+    def get_unit(self):
+        return ""
+
+    def render(self, media_item, options=None):
+        self.pre_process(media_item)
+        return self.encoding
diff --git a/telemeta/analysis/format.py b/telemeta/analysis/format.py
new file mode 100644 (file)
index 0000000..acb442a
--- /dev/null
@@ -0,0 +1,30 @@
+# 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 FormatAnalyser(AudioProcessor):
+    """Media item analyzer driver interface"""
+
+    implements(IMediaItemAnalyzer)
+
+    def get_id(self):
+        return "format"
+
+    def get_name(self):
+        return "File format"
+
+    def get_unit(self):
+        return ""
+
+    def render(self, media_item, options=None):
+        self.pre_process(media_item)
+        return self.format
index 7e8ddb8b620c44d9fbb401044e56abaced2c4a8c..1aed1d36aa6e3c23e8cf0a39f38e958289b14490 100644 (file)
@@ -73,7 +73,7 @@ class MediaCollection(Model, MediaCore):
 
     publisher_reference = CharField(maxlength=250, blank=True)
     physical_format     = CharField(maxlength=250, blank=True)
-    id                  = CharField(maxlength=250, primary_key=True, 
+    id                  = CharField(maxlength=250, primary_key=True,
                         verbose_name='identifier', validator_list=[id_validator])
     title               = CharField(maxlength=250)
     native_title        = CharField(maxlength=250, blank=True)