from telemeta.export.api import *
from telemeta.export.core import *
-from telemeta.export.ogg import *
-from telemeta.export.flac import *
-from telemeta.export.wav import *
+#from telemeta.export.ogg import *
+#from telemeta.export.flac import *
+#from telemeta.export.wav import *
from telemeta.export.mp3 import *
\ No newline at end of file
xml.dom.ext.PrettyPrint(doc, xml_file)
xml_file.close()
- def pre_process(self, item_id, source, metadata, ext,
+ def pre_process(self, item_id, source, metadata, ext, \
cache_dir, options=None):
""" Pre processing of the core. Prepare the export path and
return it"""
if not options is None:
self.options = options
+
if 'verbose' in self.options and self.options['verbose'] != '0':
args = args
else:
os.system('flac '+args+' -o "'+self.dest+'" "'+ \
self.source+'" > /dev/null')
- # Pre-proccessing (self)
+ # Post-proccessing (self)
self.write_tags()
self.post_process(self.item_id,
self.source,
import os
import string
+import subprocess
from telemeta.export.core import *
from telemeta.export.api import IExporter
self.dest = ''
self.options = {}
self.bitrate_default = '192'
+ self.buffer_size = 0xFFFF
self.dub2id3_dict = {'title': 'TIT2', #title2
'creator': 'TCOM', #composer
'creator': 'TPE1', #lead
self.options = {}
args = ''
- if not options is None:
+ if not options is None:
self.options = options
if 'verbose' in self.options and self.options['verbose'] != '0':
if 'mp3_bitrate' in self.options:
args = args+'-b '+self.options['mp3_bitrate']
else:
- args = args+'-b '+self.bitrate_default
-
- #Copyrights, etc..
+ args = args+'-b '+self.bitrate_default
+ #Copyrights, etc..
args = args + ' -c -o '
else:
args = args + ' -S -c -o '
self.cache_dir,
self.options)
+ # Initializing
+ chunk = 0
+ file_out = open(self.dest,'w')
+
+ proc = subprocess.Popen( \
+ #'sox "'+self.source+'" -w -r 44100 -t wav -c2 - '+
+ #'| lame '+args+' --tc "default" -',
+ 'lame '+args+' --tc "default" "'+self.source+'" -',
+ shell=True,
+ bufsize=self.buffer_size,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ close_fds=True)
+
+ chunk = proc.stdout.read(self.buffer_size)
+ yield chunk
+ file_out.write(chunk)
+
+ # Processing
+ while chunk:
+ chunk = proc.stdout.read(self.buffer_size)
+ yield chunk
+ file_out.write(chunk)
+
+ #file_in.close()
+ file_out.close()
+
# Encoding
- os.system('lame '+args+' --tc "default" "'+self.source+
- '" "'+self.dest+'"')
+ # os.system('lame '+args+' --tc "default" "'+self.source+
+ # '" "'+self.dest+'"')
- # Pre-proccessing (self)
+ # Post-proccessing (self)
self.write_tags()
self.post_process(self.item_id,
self.source,
self.options)
# Output
- return self.dest
+ # return self.dest
except IOError:
- return 'ExporterError [3]: source file does not exist.'
+ yield 'ExporterError [3]: source file does not exist.'
import os
import string
+import subprocess
from telemeta.export.core import *
from telemeta.export.api import IExporter
self.dest = ''
self.options = {}
self.bitrate_default = '192'
-
+ self.buffer_size = 0xFFFF
+
def get_format(self):
return 'OGG'
for tag in self.metadata.keys():
media[tag] = str(self.metadata[tag])
media.save()
-
+
+
def process(self, item_id, source, metadata, options=None):
self.item_id = item_id
self.source = source
else:
args = ' -Q -b '+self.bitrate_default
- if os.path.exists(self.source) and not iswav16(self.source):
- self.source = self.decode()
-
+ #if os.path.exists(self.source) and not iswav16(self.source):
+ # self.source = self.decode()
+
+ # Pre-processing
+ self.ext = self.get_file_extension()
+ self.dest = self.pre_process(self.item_id,
+ self.source,
+ self.metadata,
+ self.ext,
+ self.cache_dir,
+ self.options)
+
try:
- # Pre-proccessing (core)
- self.ext = self.get_file_extension()
- self.dest = self.pre_process(self.item_id,
+ # Initializing
+ chunk = 0
+ file_out = open(self.dest,'w')
+
+ proc = subprocess.Popen( \
+ 'sox "'+self.source+'" -w -r 44100 -t wav -c2 - '+
+ '| oggenc '+args+' -',
+ shell=True,
+ bufsize=self.buffer_size,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ close_fds=True)
+
+ chunk = proc.stdout.read(self.buffer_size)
+ yield chunk
+ file_out.write(chunk)
+
+ # Processing
+ while chunk:
+ chunk = proc.stdout.read(self.buffer_size)
+ yield chunk
+ file_out.write(chunk)
+
+ #file_in.close()
+ file_out.close()
+
+ # Post-proccessing
+ #os.system('sox "'+self.source+'" -w -r 44100 -t wav -c2 - \
+ # | oggenc '+args+' -o "'+self.dest+'" -')
+
+ self.write_tags()
+ self.post_process(self.item_id,
self.source,
self.metadata,
self.ext,
self.cache_dir,
self.options)
-
- # Encoding
- os.system('oggenc '+args+' -o "'+self.dest+
- '" "'+self.source+'"')
-
- # Pre-proccessing (self)
- self.write_tags()
- self.post_process(self.item_id,
- self.source,
- self.metadata,
- self.ext,
- self.cache_dir,
- self.options)
-
- # Output
- return self.dest
-
+
except IOError:
- return 'ExporterError [3]: source file does not exist.'
-
+ yield 'ExporterError [3]: source file does not exist.'
(r'^images/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': './telemeta/htdocs/images'}),
)
-
-
from telemeta.core import ComponentManager
cache_dir = 'cache/'
-source = 'samples/wav/Cellar - Show Me - 02.wav'
-item_id = '1'
+source = 'samples/wav/The Chicken-James Brown.wav'
+#source = 'samples/wav/Cellar - Show Me - 02.wav'
+item_id = '10'
metadata = {'identifier': 'Test', #collection
'title': 'Show Me',
'creator': 'Cellar',
'date': '2004',
'publisher': 'PArISs0n',
}
-options = {'verbose': '0'}
-
+options = {'verbose': '1'}
class ExportTest(Component):
+
exporters = ExtensionPoint(IExporter)
def run(self):
print '| Testing exporter format: ' + format
print "+------------------------------------------"
exporter.set_cache_dir(cache_dir)
- exporter.process(item_id,source,metadata,options)
- #exporter.process(item_id,source,metadata)
-
+ stream = exporter.process(item_id,source,metadata,options)
+ for chunk in stream:
+ pass
+
compmgr = ComponentManager()
test = ExportTest(compmgr)
test.run()