aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/media_types/audio/processing.py15
-rw-r--r--mediagoblin/media_types/pdf/processing.py2
-rw-r--r--mediagoblin/media_types/video/processing.py16
3 files changed, 30 insertions, 3 deletions
diff --git a/mediagoblin/media_types/audio/processing.py b/mediagoblin/media_types/audio/processing.py
index 42855265..6a506741 100644
--- a/mediagoblin/media_types/audio/processing.py
+++ b/mediagoblin/media_types/audio/processing.py
@@ -52,7 +52,7 @@ class CommonAudioProcessor(MediaProcessor):
"""
Provides a base for various audio processing steps
"""
- acceptable_files = ['original', 'webm_audio']
+ acceptable_files = ['original', 'best_quality', 'webm_audio']
def common_setup(self):
"""
@@ -76,6 +76,17 @@ class CommonAudioProcessor(MediaProcessor):
self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}'))
+ def _keep_best(self):
+ """
+ If there is no original, keep the best file that we have
+ """
+ if not self.entry.media_files.get('best_quality'):
+ # Save the best quality file if no original?
+ if not self.entry.media_files.get('original') and \
+ self.entry.media_files.get('webm_audio'):
+ self.entry.media_files['best_quality'] = self.entry \
+ .media_files['webm_audio']
+
def transcode(self, quality=None):
if not quality:
quality = self.audio_config['quality']
@@ -93,6 +104,8 @@ class CommonAudioProcessor(MediaProcessor):
self.transcoder.discover(webm_audio_tmp)
+ self._keep_best()
+
_log.debug('Saving medium...')
store_public(self.entry, 'webm_audio', webm_audio_tmp,
self.name_builder.fill('{basename}.medium.webm'))
diff --git a/mediagoblin/media_types/pdf/processing.py b/mediagoblin/media_types/pdf/processing.py
index 6ef95a72..549def69 100644
--- a/mediagoblin/media_types/pdf/processing.py
+++ b/mediagoblin/media_types/pdf/processing.py
@@ -253,7 +253,7 @@ class CommonPdfProcessor(MediaProcessor):
self._set_pdf_filename()
def _set_pdf_filename(self):
- if self.name_builder.ext == 'pdf':
+ if self.name_builder.ext == '.pdf':
self.pdf_filename = self.process_filename
elif self.entry.media_files.get('pdf'):
self.pdf_filename = self.workbench.localized_file(
diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py
index bb854ffb..a3aa9bcf 100644
--- a/mediagoblin/media_types/video/processing.py
+++ b/mediagoblin/media_types/video/processing.py
@@ -122,7 +122,7 @@ class CommonVideoProcessor(MediaProcessor):
"""
Provides a base for various video processing steps
"""
- acceptable_files = ['original', 'webm_640']
+ acceptable_files = ['original', 'best_quality', 'webm_640']
def common_setup(self):
self.video_config = mgg \
@@ -144,6 +144,18 @@ class CommonVideoProcessor(MediaProcessor):
self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}'))
+ def _keep_best(self):
+ """
+ If there is no original, keep the best file that we have
+ """
+ if not self.entry.media_files.get('best_quality'):
+ # Save the best quality file if no original?
+ if not self.entry.media_files.get('original') and \
+ self.entry.media_files.get('webm_640'):
+ self.entry.media_files['best_quality'] = self.entry \
+ .media_files['webm_640']
+
+
def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None,
vorbis_quality=None):
progress_callback = ProgressCallback(self.entry)
@@ -189,6 +201,8 @@ class CommonVideoProcessor(MediaProcessor):
dst_dimensions = self.transcoder.dst_data.videowidth,\
self.transcoder.dst_data.videoheight
+ self._keep_best()
+
# Push transcoded video to public storage
_log.debug('Saving medium...')
store_public(self.entry, 'webm_640', tmp_dst,