From: Guillaume Pellerin Date: Mon, 8 Jul 2013 21:57:55 +0000 (+0200) Subject: rename scripts and cleanup old ones X-Git-Tag: 0.4.4~1^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0db8c428ada207e43e26c67e4c3c9f301d4563dc;p=timeside.git rename scripts and cleanup old ones --- diff --git a/scripts/old/telemeta_preprocess_batch.py b/scripts/old/telemeta_preprocess_batch.py deleted file mode 100644 index 81986a2..0000000 --- a/scripts/old/telemeta_preprocess_batch.py +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (c) 2009-2010 Guillaume Pellerin - -# This file is part of TimeSide. - -# TimeSide is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. - -# TimeSide is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with TimeSide. If not, see . - -# Author: Guillaume Pellerin - -version = '0.4' - -import os -import sys -import time -import datetime -import timeside -from logger import Logger -import Queue -from threading import Thread -from cache import Cache -from django.core.management import setup_environ -from django.core.files.base import ContentFile - - -class GrapherScheme: - - def __init__(self): - self.color = 255 - self.color_scheme = { - 'waveform': [ # Four (R,G,B) tuples for three main color channels for the spectral centroid method - (self.color,self.color,self.color) -# (0, 0, 0), (0, 0, 0), (0, 0, 0), (0,0,0) - ], - 'spectrogram': [ - (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), (90,180,100), (224,224,44), (255,60,30), (255,255,255) - ]} - - # Grapher id - self.id = 'waveform_awdio' - - # Width of the image - self.width = 1800 - - # Height of the image - self.height = 233 - - # Background color - self.bg_color = None - - # Force computation. By default, the class doesn't overwrite existing image files. - self.force = False - - # Nb of threads - # FIXME: memory leak for > 1 ! - self.threads = 1 - - -class TelemetaPreprocessImport(object): - - def __init__(self, media_dir, dest_dir, log_file): - self.root_dir = media_dir - self.dest_dir = dest_dir - self.threads = 1 - self.logger = Logger(log_file) - self.counter = 0 - self.force = 0 - self.cache = Cache(self.dest_dir) - - self.scheme = GrapherScheme() - self.width = self.scheme.width - self.height = self.scheme.height - self.bg_color = self.scheme.bg_color - self.color_scheme = self.scheme.color_scheme - self.force = self.scheme.force - self.threads = self.scheme.threads - self.logger = Logger(log_file) - self.counter = 0 - - self.analyzers = timeside.core.processors(timeside.api.IAnalyzer) - self.grapher = timeside.grapher.WaveformAwdio(width=self.width, - height=self.height, - bg_color=self.bg_color, - color_scheme=self.color_scheme) - - self.media_list = self.get_media_list() - if not os.path.exists(self.dest_dir): - os.makedirs(self.dest_dir) - - def get_media_list(self): - media_list = [] - for root, dirs, files in os.walk(self.root_dir): - if root: - for file in files: - if file[0] != '.': - ext = file.split('.')[-1] - media_list.append(root+os.sep+file) - return media_list - - def process(self): - for media in self.media_list: - filename = media.split(os.sep)[-1] - name, ext = os.path.splitext(filename) - size = str(self.width) + '_' + str(self.height) - image = self.dest_dir + os.sep + name + '.' + self.scheme.id + '.' + size + '.png' - xml = name + '.xml' - - if not self.cache.exists(image) or not self.cache.exists(xml): - mess = 'Processing ' + media - self.logger.write_info(mess) - decoder = timeside.decoder.FileDecoder(media) - pipe = decoder | self.grapher - analyzers = [] - analyzers_sub = [] - for analyzer in self.analyzers: - subpipe = analyzer() - analyzers_sub.append(subpipe) - pipe = pipe | subpipe - pipe.run() - - mess = 'Rendering ' + image - self.logger.write_info(mess) - self.grapher.render(output=image) - - mess = 'Frames / Pixel = ' + str(self.grapher.graph.samples_per_pixel) - self.logger.write_info(mess) - - for analyzer in analyzers_sub: - value = analyzer.result() - if analyzer.id() == 'duration': - value = datetime.timedelta(0,value) - analyzers.append({'name':analyzer.name(), - 'id':analyzer.id(), - 'unit':analyzer.unit(), - 'value':str(value)}) - - self.cache.write_analyzer_xml(analyzers, xml) - - filename = name - data = name.split('.') - date = data[0] - collection_name = data[1] - other = '' - if len(data) > 2: - other = '.'.join(data[2:]) - - item = telemeta.models.media.MediaItem.objects.filter(code=filename) - collections = telemeta.models.media.MediaCollection.objects.filter(code=collection_name) - - if not collections: - c = telemeta.models.media.MediaCollection(code=collection_name) - c.title = collection_name - c.save() - msg = 'added' - self.logger.write_info(collection_name, msg) - collection = c - else: - collection = collections[0] - - if not item: - item = telemeta.models.media.MediaItem(collection=collection, code=filename) - item.title = filename - item.file = self.media_dir + os.sep + media - item.save() - msg = 'added item : ' + filename - self.logger.write_info(collection_name, msg) - - - -if __name__ == '__main__': - if len(sys.argv) <= 2: - print """ - Usage : python telemeta_preprocess_batch.py /path/to/project /path/to/media_dir /path/to/dest_dir /path/to/log - - Dependencies : timeside, python, python-numpy, python-gst0.10, gstreamer0.10-plugins-base - See http://code.google.com/p/timeside/ for more information. - """ - else: - project_dir = sys.argv[-2] - log_file = sys.argv[-1] - sys.path.append(project_dir) - import settings - setup_environ(settings) - media_dir = settings.MEDIA_ROOT - data_dir = settings.TELEMETA_DATA_CACHE_DIR - print media_dir, data_dir - t = TelemetaPreprocessImport(media_dir, data_dir, log_file) - t.process() diff --git a/scripts/old/telemeta_preprocess_cgi.py b/scripts/old/telemeta_preprocess_cgi.py deleted file mode 100755 index 317878b..0000000 --- a/scripts/old/telemeta_preprocess_cgi.py +++ /dev/null @@ -1,222 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (c) 2009-2010 Guillaume Pellerin - -# This file is part of TimeSide. - -# TimeSide is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. - -# TimeSide is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with TimeSide. If not, see . - -# Author: Guillaume Pellerin - -# for python2.5 - -version = '0.5' - - -import os -import sys -import time -import shutil -import datetime -import timeside - -# soon with python2.6 -#from multiprocessing import Process - -from django.core.management import setup_environ -from django.core.files.base import ContentFile -import cgi -fs = cgi.FieldStorage() - - -orig_media_dir = '/mnt/awdiomusic/musicbase' -project_dir = '/mnt/awdio' -log_file = project_dir + '/logs/process.log' -sys.path.append('/home/awdio/apps/telemeta-awdio') - - -class GrapherScheme: - - def __init__(self): - self.color = 255 - self.color_scheme = { - 'waveform': [ # Four (R,G,B) tuples for three main color channels for the spectral centroid method - (self.color,self.color,self.color) -# (0, 0, 0), (0, 0, 0), (0, 0, 0), (0,0,0) - ], - 'spectrogram': [ - (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), (90,180,100), (224,224,44), (255,60,30), (255,255,255) - ]} - - # Grapher id - self.id = 'waveform_awdio' - - # Width of the image - self.width = 1800 - - # Height of the image - self.height = 233 - - # Background color - self.bg_color = None - - # Force computation. By default, the class doesn't overwrite existing image files. - self.force = False - - # Nb of threads - # FIXME: memory leak for > 1 ! - self.threads = 1 - - -class TelemetaPreprocessImport(object): - - def __init__(self, root_dir, dest_dir, log_file): - from telemeta.cache import TelemetaCache as Cache - from telemeta.util.logger import Logger - self.media_item_dir = 'items' - self.root_dir = root_dir + 'items' - self.dest_dir = dest_dir - self.threads = 1 - self.logger = Logger(log_file) - self.counter = 0 - self.force = 0 - self.cache = Cache(self.dest_dir) - - self.scheme = GrapherScheme() - self.width = self.scheme.width - self.height = self.scheme.height - self.bg_color = self.scheme.bg_color - self.color_scheme = self.scheme.color_scheme - self.force = self.scheme.force - self.threads = self.scheme.threads - self.logger = Logger(log_file) - self.counter = 0 - self.collection_name = 'awdio' - self.collection = self.set_collection(self.collection_name) - - self.analyzers = timeside.core.processors(timeside.api.IAnalyzer) - self.grapher = timeside.grapher.WaveformAwdio(width=self.width, - height=self.height, - bg_color=self.bg_color, - color_scheme=self.color_scheme) - - - def set_collection(self, collection_name): - import telemeta.models - collections = telemeta.models.media.MediaCollection.objects.filter(code=collection_name) - if not collections: - c = telemeta.models.media.MediaCollection(code=collection_name) - c.title = collection_name - c.save() - msg = 'added' - self.logger.logger.info(collection_name, msg) - collection = c - else: - collection = collections[0] - return collection - - def process(self): - import telemeta.models - keys = fs.keys() - if keys[0] == 'file': - filename = fs['file'].value - media_orig = orig_media_dir + os.sep + filename - media = self.root_dir + os.sep + filename - - if not os.path.exists(media): - shutil.copy(media_orig, media) - os.system('chmod 644 ' + media) - - name, ext = os.path.splitext(filename) - size = str(self.width) + '_' + str(self.height) - image_name = name + '.' + self.scheme.id + '.' + size + '.png' - image = self.dest_dir + os.sep + image_name - xml = name + '.xml' - - if not self.cache.exists(image_name) or not self.cache.exists(xml): - mess = 'Processing ' + media - self.logger.logger.info(mess) - - print "Content-type: text/plain\n" - print mess - decoder = timeside.decoder.FileDecoder(media) - pipe = decoder | self.grapher - analyzers = [] - analyzers_sub = [] - for analyzer in self.analyzers: - subpipe = analyzer() - analyzers_sub.append(subpipe) - pipe = pipe | subpipe - pipe.run() - - mess = 'Rendering ' + image - self.logger.logger.info(mess) - self.grapher.render(output=image) - - mess = 'Frames / Pixel = ' + str(self.grapher.graph.samples_per_pixel) - self.logger.logger.info(mess) - - for analyzer in analyzers_sub: - value = analyzer.result() - if analyzer.id() == 'duration': - value = datetime.timedelta(0,value) - analyzers.append({'name':analyzer.name(), - 'id':analyzer.id(), - 'unit':analyzer.unit(), - 'value':str(value)}) - - self.cache.write_analyzer_xml(analyzers, xml) - - item = telemeta.models.media.MediaItem.objects.filter(code=name) - - if not item: - item = telemeta.models.media.MediaItem(collection=self.collection, code=name) - item.title = name - item.file = self.media_item_dir + os.sep + filename - item.save() - msg = 'added item : ' + filename - self.logger.logger.info(self.collection_name, msg) - - pipe = 0 - decoder = 0 - - print "OK" - - #except: - #pipe = 0 - #decoder = 0 - #mess = 'Could NOT process : ' + media - #self.logger.logger.error(mess) - #print mess - - else: - mess = "Nothing to do with file : " + media - self.logger.logger.info(mess) - print "Content-type: text/plain\n" - print mess - - else: - print "Content-type: text/plain\n" - print "No file given !" - - -if __name__ == '__main__': - sys.path.append(project_dir) - import settings - setup_environ(settings) - media_dir = settings.MEDIA_ROOT - data_dir = settings.TELEMETA_DATA_CACHE_DIR - t = TelemetaPreprocessImport(media_dir, data_dir, log_file) - t.process() diff --git a/scripts/old/waveform_batch_awdio.py b/scripts/old/waveform_batch_awdio.py deleted file mode 100644 index 8083c92..0000000 --- a/scripts/old/waveform_batch_awdio.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (c) 2009-2010 Guillaume Pellerin - -# This file is part of TimeSide. - -# TimeSide is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. - -# TimeSide is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with TimeSide. If not, see . - -# Author: Guillaume Pellerin - -version = '0.3' - -import os -import sys -import time -import timeside -from logger import Logger -import Queue -from threading import Thread - -class GrapherScheme: - - def __init__(self): - self.color = 255 - self.color_scheme = { - 'waveform': [ # Four (R,G,B) tuples for three main color channels for the spectral centroid method - (self.color,self.color,self.color) -# (0, 0, 0), (0, 0, 0), (0, 0, 0), (0,0,0) - ], - 'spectrogram': [ - (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), (90,180,100), (224,224,44), (255,60,30), (255,255,255) - ]} - - # Grapher id - self.id = 'waveform_awdio' - - # Width of the image - self.width = 1800 - - # Height of the image - self.height = 233 - - # Background color - self.bg_color = None - - # Force computation. By default, the class doesn't overwrite existing image files. - self.force = False - - # Nb of threads - # FIXME: memory leak for > 1 ! - self.threads = 1 - - -class Media2Waveform(object): - - def __init__(self, media_dir, img_dir, log_file): - self.root_dir = os.path.join(os.path.dirname(__file__), media_dir) - self.img_dir = os.path.join(os.path.dirname(__file__), img_dir) - self.scheme = GrapherScheme() - self.width = self.scheme.width - self.height = self.scheme.height - self.bg_color = self.scheme.bg_color - self.color_scheme = self.scheme.color_scheme - self.force = self.scheme.force - self.threads = self.scheme.threads - self.logger = Logger(log_file) - self.counter = 0 - - self.media_list = self.get_media_list() - if not os.path.exists(self.img_dir): - os.makedirs(self.img_dir) - self.path_dict = self.get_path_dict() - - def get_media_list(self): - media_list = [] - for root, dirs, files in os.walk(self.root_dir): - if root: - for file in files: - if file[0] != '.': - ext = file.split('.')[-1] - media_list.append(root+os.sep+file) - return media_list - - def get_path_dict(self): - path_dict = {} - for media in self.media_list: - filename = media.split(os.sep)[-1] - name, ext = os.path.splitext(filename) - size = str(self.width) + '_' + str(self.height) - image = self.img_dir + os.sep + name + '.' + self.scheme.id + '.' + size + '.png' - if not os.path.exists(image) or self.force: - path_dict[media] = image - return path_dict - - def process(self): - q = Queue.Queue() - for i in range(0, self.threads): - worker = Thread(target=Worker, args=(self.width, self.height, self.bg_color, self.color_scheme, q, self.logger)) - worker.setDaemon(True) - worker.start() - - mess = str(self.threads) + ' thread(s) started' - self.logger.write_info(mess) - - for media, image in self.path_dict.iteritems(): - q.put((media, image)) - q.join() - - -def Worker(width, height, bg_color, color_scheme, q, logger): - while True: - media, image = q.get() - mess = 'Processing ' + media - logger.write_info(mess) - decoder = timeside.decoder.FileDecoder(media) - grapher = timeside.grapher.WaveformAwdio(width=width, height=height, bg_color=bg_color, color_scheme=color_scheme) - (decoder | grapher).run() - mess = 'Rendering ' + image - logger.write_info(mess) - grapher.render(output=image) - mess = 'Frames / Pixel = ' + str(grapher.graph.samples_per_pixel) - logger.write_info(mess) - grapher.release() - q.task_done() - -if __name__ == '__main__': - if len(sys.argv) <= 2: - print """ - Usage : python waveform_batch /path/to/media_dir /path/to/img_dir - - Dependencies : timeside, python, python-numpy, python-gst0.10, gstreamer0.10-plugins-base - See http://code.google.com/p/timeside/ for more information. - """ - else: - media_dir = sys.argv[-3] - img_dir = sys.argv[-2] - log_file = sys.argv[-1] - m = Media2Waveform(media_dir, img_dir, log_file) - m.process() diff --git a/scripts/timeside-waveforms b/scripts/timeside-waveforms new file mode 100755 index 0000000..55f55eb --- /dev/null +++ b/scripts/timeside-waveforms @@ -0,0 +1,125 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (c) 2009-2010 Guillaume Pellerin + +# This file is part of TimeSide. + +# TimeSide is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. + +# TimeSide is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with TimeSide. If not, see . + +# Author: Guillaume Pellerin + +version = '0.3' + +import os +import sys +import timeside + + +class GrapherScheme: + + def __init__(self): + + self.color_scheme = { + 'waveform': [ + # Four (R,G,B) tuples for three main color channels for the spectral centroid method + (30,144,255), (30,144,255), (30,144,255), (30,144,255) + ], + 'spectrogram': [ + (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), + (90,180,100), (224,224,44), (255,60,30), (255,255,255) + ]} + + # Width of the image + self.width = 925 + + # Height of the image + self.height = 67 + + # Background color + self.bg_color = (-1, -1, -1, -1) + + # Force computation. By default, the class doesn't overwrite existing image files. + self.force = True + + +class Media2Waveform(object): + + def __init__(self, media_dir, img_dir): + self.root_dir = os.path.join(os.path.dirname(__file__), media_dir) + self.img_dir = os.path.join(os.path.dirname(__file__), img_dir) + self.scheme = GrapherScheme() + self.width = self.scheme.width + self.height = self.scheme.height + self.bg_color = self.scheme.bg_color + self.color_scheme = self.scheme.color_scheme + self.force = self.scheme.force + + self.media_list = self.get_media_list() + if not os.path.exists(self.img_dir): + os.makedirs(self.img_dir) + self.path_dict = self.get_path_dict() + + def get_media_list(self): + media_list = [] + for root, dirs, files in os.walk(self.root_dir): + if root: + for file in files: + ext = file.split('.')[-1] + if not file[0] == '.': + media_list.append(root+os.sep+file) + return media_list + + def get_path_dict(self): + path_dict = {} + for media in self.media_list: + filename = media.split(os.sep)[-1] + name, ext = os.path.splitext(filename) + path_dict[media] = self.img_dir + os.sep + filename.replace('.', '_') + '.png' + return path_dict + + def process(self): + waveform = timeside.grapher.Waveform(width=self.width, height=self.height, + bg_color=self.bg_color, color_scheme=self.color_scheme) + for source, image in self.path_dict.iteritems(): + if not os.path.exists(image) or self.force: + print 'Processing ', source + audio = os.path.join(os.path.dirname(__file__), source) + decoder = timeside.decoder.FileDecoder(audio) + duration = decoder.duration + (decoder | waveform).run() + img_name = os.path.split(image)[1] + image = os.path.split(image)[0]+os.sep+os.path.splitext(img_name)[0] + '_' +\ + '_'.join([str(self.width), str(self.height), + str(int(duration))])+os.path.splitext(img_name)[1] + waveform.graph.filename = image + print 'Rendering ', waveform.graph.filename + #print 'frames per pixel = ', waveform.graph.samples_per_pixel + waveform.render(output=image) + + +if __name__ == '__main__': + if len(sys.argv) <= 1: + print """ + timeside-waveforms : TimeSide simple batch waveform generator + + usage : ./timeside-waveforms /path/to/media_dir /path/to/img_dir + infos : http://code.google.com/p/timeside/ + version : %s + """ % version + else: + media_dir = sys.argv[-2] + img_dir = sys.argv[-1] + m = Media2Waveform(media_dir, img_dir) + m.process() diff --git a/scripts/ts-waveforms b/scripts/ts-waveforms deleted file mode 100755 index 5be8e11..0000000 --- a/scripts/ts-waveforms +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (c) 2009-2010 Guillaume Pellerin - -# This file is part of TimeSide. - -# TimeSide is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. - -# TimeSide is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with TimeSide. If not, see . - -# Author: Guillaume Pellerin - -version = '0.2' - -import os -import sys -import timeside - - -class GrapherScheme: - - def __init__(self): - - self.color_scheme = { - 'waveform': [ - # Four (R,G,B) tuples for three main color channels for the spectral centroid method - (30,144,255), (30,144,255), (30,144,255), (30,144,255) - ], - 'spectrogram': [ - (0, 0, 0), (58/4,68/4,65/4), (80/2,100/2,153/2), - (90,180,100), (224,224,44), (255,60,30), (255,255,255) - ]} - - # Width of the image - self.width = 925 - - # Height of the image - self.height = 67 - - # Background color - self.bg_color = (-1, -1, -1, -1) - - # Force computation. By default, the class doesn't overwrite existing image files. - self.force = True - - -class Media2Waveform(object): - - def __init__(self, media_dir, img_dir): - self.root_dir = os.path.join(os.path.dirname(__file__), media_dir) - self.img_dir = os.path.join(os.path.dirname(__file__), img_dir) - self.scheme = GrapherScheme() - self.width = self.scheme.width - self.height = self.scheme.height - self.bg_color = self.scheme.bg_color - self.color_scheme = self.scheme.color_scheme - self.force = self.scheme.force - - self.media_list = self.get_media_list() - if not os.path.exists(self.img_dir): - os.makedirs(self.img_dir) - self.path_dict = self.get_path_dict() - - def get_media_list(self): - media_list = [] - for root, dirs, files in os.walk(self.root_dir): - if root: - for file in files: - ext = file.split('.')[-1] - if not file[0] == '.': - media_list.append(root+os.sep+file) - return media_list - - def get_path_dict(self): - path_dict = {} - for media in self.media_list: - filename = media.split(os.sep)[-1] - name, ext = os.path.splitext(filename) - path_dict[media] = self.img_dir + os.sep + filename.replace('.', '_') + '.png' - return path_dict - - def process(self): - waveform = timeside.grapher.Waveform(width=self.width, height=self.height, - bg_color=self.bg_color, color_scheme=self.color_scheme) - for source, image in self.path_dict.iteritems(): - if not os.path.exists(image) or self.force: - print 'Processing ', source - audio = os.path.join(os.path.dirname(__file__), source) - decoder = timeside.decoder.FileDecoder(audio) - duration = decoder.duration - (decoder | waveform).run() - img_name = os.path.split(image)[1] - image = os.path.split(image)[0]+os.sep+os.path.splitext(img_name)[0] + '_' +\ - '_'.join([str(self.width), str(self.height), - str(int(duration))])+os.path.splitext(img_name)[1] - waveform.graph.filename = image - print 'Rendering ', waveform.graph.filename - #print 'frames per pixel = ', waveform.graph.samples_per_pixel - waveform.render(output=image) - - -if __name__ == '__main__': - if len(sys.argv) <= 1: - print """ - TimeSide simple waveform generator - - Usage : python waveform_batch.py /path/to/media_dir /path/to/img_dir - - Dependencies : timeside, python, python-numpy, python-gst0.10, gstreamer0.10-plugins-base - See http://code.google.com/p/timeside/ for more information. - """ - else: - media_dir = sys.argv[-2] - img_dir = sys.argv[-1] - m = Media2Waveform(media_dir, img_dir) - m.process() diff --git a/setup.py b/setup.py index b46ba6f..d6a82b7 100644 --- a/setup.py +++ b/setup.py @@ -40,5 +40,5 @@ setup( packages = find_packages(), include_package_data = True, zip_safe = False, - scripts=['scripts/ts-waveforms'], + scripts=['scripts/timeside-waveforms'], )