From c614532258b3f7239370ceb11e0718d82dafcebe Mon Sep 17 00:00:00 2001 From: yomguy <> Date: Wed, 19 Nov 2008 11:09:23 +0000 Subject: [PATCH] Add resolution analyzer, fix length display fix rules and short description --- debian/control | 2 +- debian/rules | 4 ++-- telemeta/analysis/__init__.py | 1 + telemeta/analysis/channels.py | 9 ++++++-- telemeta/analysis/length.py | 8 +++++-- telemeta/analysis/resolution.py | 39 +++++++++++++++++++++++++++++++++ 6 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 telemeta/analysis/resolution.py diff --git a/debian/control b/debian/control index 9199f01b..60191786 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ Architecture: any Depends: ${python:Depends}, python-xml, python-mutagen, python-django (>= 1.0-1), python-imaging (>= 1.1.6), sox, vorbis-tools, flac, normalize-audio, python-mysqldb, mysql-server, octave2.9, python-tk, libgd2-xpm, libsndfile1 (>= 1.0.17), python-numpy, python-ctypes (>= 1.0.1), python-scikits-audiolab (>= 0.7) Recommends: lame, vamp-examples Suggests: ecasound, festival, par2 -Description: web frontend to backup, transcode and tag any audio content with metadata +Description: web frontend to backup, transcode and publish any audio content with metadata Telemeta is a global audio archiving program which introduces useful and secure indexing methods to backup digitalized audio files and metadata dictionnaries. It is dedicated to backup any digitized and documented sound diff --git a/debian/rules b/debian/rules index a37cc56d..05ba7905 100755 --- a/debian/rules +++ b/debian/rules @@ -6,6 +6,6 @@ include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/python-distutils.mk DEB_PYTHON_SETUP_CMD := setup.py -DEB_COMPRESS_EXCLUDE := .pyc /.svn -DEB_STRIP_EXCLUDE := .pyc /.svn +DEB_COMPRESS_EXCLUDE := .pyc +DEB_STRIP_EXCLUDE := .pyc diff --git a/telemeta/analysis/__init__.py b/telemeta/analysis/__init__.py index 306e3888..f3b7d832 100644 --- a/telemeta/analysis/__init__.py +++ b/telemeta/analysis/__init__.py @@ -3,6 +3,7 @@ from telemeta.analysis.core import * from telemeta.analysis.channels import * 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.max_level import * diff --git a/telemeta/analysis/channels.py b/telemeta/analysis/channels.py index 6adf3561..fadd4382 100644 --- a/telemeta/analysis/channels.py +++ b/telemeta/analysis/channels.py @@ -20,11 +20,16 @@ class ChannelAnalyser(AudioProcessor): return "nb_channels" def get_name(self): - return "Number of channels" + return "Channels" def get_unit(self): return "" def render(self, media_item, options=None): self.pre_process(media_item) - return self.channels + if self.channels == 1: + return 'mono' + if self.channels == 2: + return 'stereo' + else: + return self.channels diff --git a/telemeta/analysis/length.py b/telemeta/analysis/length.py index c1817fba..83ce8425 100644 --- a/telemeta/analysis/length.py +++ b/telemeta/analysis/length.py @@ -10,6 +10,7 @@ from telemeta.analysis.core import * from telemeta.analysis.api import IMediaItemAnalyzer import numpy +import datetime class LengthAnalyzer(AudioProcessor): """Media item analyzer driver interface""" @@ -23,8 +24,11 @@ class LengthAnalyzer(AudioProcessor): return "Length" def get_unit(self): - return "s" + return "h:m:s" def render(self, media_item, options=None): self.pre_process(media_item) - return numpy.round(float(self.frames)/float(self.samplerate),2) + 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 diff --git a/telemeta/analysis/resolution.py b/telemeta/analysis/resolution.py new file mode 100644 index 00000000..33508c32 --- /dev/null +++ b/telemeta/analysis/resolution.py @@ -0,0 +1,39 @@ +# 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 + +from telemeta.analysis.core import * +from telemeta.analysis.api import IMediaItemAnalyzer +import numpy + +class ResolutionAnalyser(AudioProcessor): + """Media item analyzer driver interface""" + + implements(IMediaItemAnalyzer) + + def get_id(self): + return "resolution" + + def get_name(self): + return "Resolution" + + def get_unit(self): + return "bits" + + def render(self, media_item, options=None): + self.pre_process(media_item) + if '8' in self.encoding: + return 8 + if '16' in self.encoding: + return 16 + if '24' in self.encoding: + return 24 + if '32' in self.encoding: + return 32 + else: + return '' \ No newline at end of file -- 2.39.5