aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/media_types
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/media_types')
-rw-r--r--mediagoblin/media_types/audio/processing.py34
1 files changed, 24 insertions, 10 deletions
diff --git a/mediagoblin/media_types/audio/processing.py b/mediagoblin/media_types/audio/processing.py
index f0b8d0f9..ef98e533 100644
--- a/mediagoblin/media_types/audio/processing.py
+++ b/mediagoblin/media_types/audio/processing.py
@@ -19,10 +19,11 @@ import tempfile
import os
from mediagoblin import mg_globals as mgg
-from mediagoblin.processing import create_pub_filepath, BadMediaFail
+from mediagoblin.processing import (create_pub_filepath, BadMediaFail,
+ FilenameBuilder)
-from mediagoblin.media_types.audio.transcoders import AudioTranscoder, \
- AudioThumbnailer
+from mediagoblin.media_types.audio.transcoders import (AudioTranscoder,
+ AudioThumbnailer)
_log = logging.getLogger(__name__)
@@ -48,29 +49,42 @@ def process_audio(entry):
queued_filename = workbench.localized_file(
mgg.queue_store, queued_filepath,
'source')
+ name_builder = FilenameBuilder(queued_filename)
- ogg_filepath = create_pub_filepath(
+ webm_audio_filepath = create_pub_filepath(
entry,
'{original}.webm'.format(
original=os.path.splitext(
queued_filepath[-1])[0]))
+ if audio_config['keep_original']:
+ with open(queued_filename, 'rb') as queued_file:
+ original_filepath = create_pub_filepath(
+ entry, name_builder.fill('{basename}{ext}'))
+
+ with mgg.public_store.get_file(original_filepath, 'wb') as \
+ original_file:
+ _log.debug('Saving original...')
+ original_file.write(queued_file.read())
+
+ entry.media_files['original'] = original_filepath
+
transcoder = AudioTranscoder()
- with tempfile.NamedTemporaryFile() as ogg_tmp:
+ with tempfile.NamedTemporaryFile() as webm_audio_tmp:
transcoder.transcode(
queued_filename,
- ogg_tmp.name,
+ webm_audio_tmp.name,
quality=audio_config['quality'])
- data = transcoder.discover(ogg_tmp.name)
+ data = transcoder.discover(webm_audio_tmp.name)
_log.debug('Saving medium...')
- mgg.public_store.get_file(ogg_filepath, 'wb').write(
- ogg_tmp.read())
+ mgg.public_store.get_file(webm_audio_filepath, 'wb').write(
+ webm_audio_tmp.read())
- entry.media_files['ogg'] = ogg_filepath
+ entry.media_files['webm_audio'] = webm_audio_filepath
# entry.media_data_init(length=int(data.audiolength))