diff options
author | vijeth-aradhya <vijthaaa@gmail.com> | 2017-08-10 19:32:29 +0530 |
---|---|---|
committer | vijeth-aradhya <vijthaaa@gmail.com> | 2017-08-10 19:55:00 +0530 |
commit | 3456abe90196d5894fc5f8aa0383d02b894b1f2d (patch) | |
tree | 120df01ac87d3dcba3b633fadeb37593e88e4a45 /mediagoblin/media_types | |
parent | a0fa4b4bb2d23df05052ab15a58fef3c3bebce90 (diff) | |
download | mediagoblin-3456abe90196d5894fc5f8aa0383d02b894b1f2d.tar.lz mediagoblin-3456abe90196d5894fc5f8aa0383d02b894b1f2d.tar.xz mediagoblin-3456abe90196d5894fc5f8aa0383d02b894b1f2d.zip |
Fix percentage reporting
Report transcoding_progress as the overall percent of all resolutions.
Modify Logging.
Closes #6
Diffstat (limited to 'mediagoblin/media_types')
-rw-r--r-- | mediagoblin/media_types/video/processing.py | 3 | ||||
-rw-r--r-- | mediagoblin/media_types/video/transcoders.py | 20 |
2 files changed, 20 insertions, 3 deletions
diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 66363476..dc7264fc 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -341,7 +341,8 @@ class CommonVideoProcessor(MediaProcessor): vp8_threads=vp8_threads, vorbis_quality=vorbis_quality, progress_callback=progress_callback, - dimensions=tuple(medium_size)) + dimensions=tuple(medium_size), + media_entry=self.entry) if self.transcoder.dst_data: # Push transcoded video to public storage _log.debug('Saving medium...') diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 2d3392f2..d94bf59f 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -21,8 +21,10 @@ import sys import logging import multiprocessing +from mediagoblin import mg_globals as mgg from mediagoblin.media_types.tools import discover from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ +from .util import ACCEPTED_RESOLUTIONS #os.environ['GST_DEBUG'] = '4,python:4' @@ -163,6 +165,9 @@ class VideoTranscoder(object): self.source_path = src self.destination_path = dst + # Get media entry + self.entry = kwargs.get('media_entry') or None + # vp8enc options self.destination_dimensions = kwargs.get('dimensions', (640, 640)) self.vp8_quality = kwargs.get('vp8_quality', 8) @@ -184,6 +189,11 @@ class VideoTranscoder(object): self._progress_callback = kwargs.get('progress_callback') or None + # Get number of resolutions available for the video + video_config = mgg.global_config['plugins']['mediagoblin.media_types.video'] + self.num_of_resolutions = len(video_config['available_resolutions']) + self.progress_percentage = 0 + if not type(self.destination_dimensions) == tuple: raise Exception('dimensions must be tuple: (width, height)') @@ -354,10 +364,16 @@ class VideoTranscoder(object): # Update progress state if it has changed (success, percent) = structure.get_int('percent') if self.progress_percentage != percent and success: + if self.progress_percentage > percent and percent == 0: + percent = 100 + percent_increment = percent - self.progress_percentage self.progress_percentage = percent if self._progress_callback: - self._progress_callback(percent) - _log.info('{percent}% done...'.format(percent=percent)) + self._progress_callback(percent_increment/self.num_of_resolutions) + _log.info('{percent}% of {dest} resolution done..' + '.'.format(percent=percent, dest=self.destination_dimensions)) + _log.info('{0:.2f}% of all resolutions done' + '...'.format(self.entry.transcoding_progress)) elif message.type == Gst.MessageType.ERROR: _log.error('Got error: {0}'.format(message.parse_error())) self.dst_data = None |