from timeside.encode.api import *
from timeside.encode.core import *
from timeside.encode.ogg import *
-from timeside.encode.flac import *
from timeside.encode.wav import *
-from timeside.encode.mp3 import *
\ No newline at end of file
+from timeside.encode.mp3 import *
+from timeside.encode.flac import *
\ No newline at end of file
break
yield __chunk
-
# External functions
def get_type(value):
def __init__(self):
self.quality_default = '-5'
+ self.dub2args_dict = {'creator': 'artist',
+ 'relation': 'album'
+ }
def format(self):
return 'FLAC'
for tag in self.metadata:
name = tag[0]
value = clean_word(tag[1])
- if name == 'COMMENT':
+ if name in self.dub2args_dict.keys():
+ name = self.dub2args_dict[name]
+ if name == 'comment':
media['DESCRIPTION'] = unicode(value)
else:
media[name] = unicode(value)
except:
raise IOError('EncoderError: cannot write tags.')
+
def get_args(self,options=None):
"""Get process options and return arguments for the encoder"""
args = []
def process(self, source, metadata, options=None):
buffer_size = 0xFFFF
+ self.metadata= metadata
self.options = options
args = self.get_args()
args = ' '.join(args)
ext = self.file_extension()
- command = 'flac -c %s -' % args
+ temp_file = NamedTemporaryFile()
+ command = 'flac %s - -o %s ' % (args, temp_file.name)
stream = self.core_process(command, source)
- temp_file = NamedTemporaryFile()
+
for __chunk in stream:
- temp_file.write(__chunk)
- temp_file.flush()
+ #temp_file.write(__chunk)
+ #temp_file.flush()
+ pass
- #self.write_tags(temp_file)
+ self.write_tags(temp_file.name)
while True:
__chunk = temp_file.read(buffer_size)
#Copyrights, etc..
args.append('-c -o')
else:
- args.append('-S -c -o')
+ args.append('-S -c --tt "unknown" -o')
for tag in self.metadata:
name = tag[0]
def process(self, source, metadata, options=None):
self.metadata = metadata
self.options = options
- command = 'sox - -s -q -b 16 -r 44100 -t wav -c2 -'
+ command = 'sox -t wav - -s -q -b 16 -r 44100 -t wav -c2 -'
stream = self.core_process(command, source)
for __chunk in stream:
def run(self, media, format):
for decoder in self.decoders:
if decoder.format() == format:
- break
- return decoder.process(media)
+ return decoder.process(media)
class TestEncoders(Component):
print '\n=== Encoder testing ===\n'
for encoder in self.encoders:
format = encoder.format()
+ decoders = TestDecoders(comp_mgr)
+ decoded = decoders.run(source, 'WAV')
ext = encoder.file_extension()
- stream = encoder.process(source, metadata)
+ stream = encoder.process(decoded, metadata)
file_path = 'results/sweep' + '.' + ext
file = open(file_path, 'w')
for chunk in stream:
if __name__ == '__main__':
sample = 'samples/sweep.wav'
- metadata = {'creator': 'yomguy', 'date': '2009', 'name': 'test'}
+ metadata = (('creator', 'yomguy'), ('date', '2009'), ('name', 'test'))
comp_mgr = ComponentManager()
a = TestAnalyzers(comp_mgr)
d = TestDecoders(comp_mgr)
g.list()
a.run(sample)
g.run(sample)
- audio = d.run(sample, 'WAV')
- e.run(audio, metadata)
+ e.run(sample, metadata)