return render_to_response(template, data, context_instance=RequestContext(request),
mimetype=mimetype)
-def stream_from_processor(decoder, proc, flag, metadata=None):
- if metadata:
- proc.set_metadata(metadata)
- eod = False
- while not eod:
- frames, eod = proc.process(*decoder.process())
- yield proc.chunk
+def stream_from_processor(decoder, encoder, flag):
+ pipe = decoder | encoder
+ for chunk in pipe.stream():
+ yield chunk
flag.value = True
flag.save()
- decoder.release()
- proc.release()
def stream_from_file(file):
chunk_size = 0x100000
proc = encoder(source, overwrite=True)
proc.set_metadata(metadata)
try:
+ #FIXME: should test if metadata writer is available
proc.write_metadata()
except:
pass
if not self.cache_export.exists(file) or not flag.value:
# source > encoder > stream
decoder = timeside.decoder.FileDecoder(source)
- decoder.setup()
proc = encoder(media, streaming=True, overwrite=True)
- proc.setup(channels=decoder.channels(), samplerate=decoder.samplerate(),
- blocksize=decoder.blocksize(), totalframes=decoder.totalframes())
if extension in mapping.unavailable_extensions:
metadata=None
- response = HttpResponse(stream_from_processor(decoder, proc, flag, metadata=metadata), mimetype = mime_type)
+ proc.set_metadata(metadata)
+
+ response = HttpResponse(stream_from_processor(decoder, proc, flag), mimetype = mime_type)
else:
# cache > stream
response = HttpResponse(self.cache_export.read_stream_bin(file), mimetype = mime_type)