1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2024-11-23 00:54:31 +01:00

Fixed duration calculation and moved checks to __init__

Signed-off-by: Marcos Alfredo Núñez <mnunez@fleni.org.ar>
This commit is contained in:
Marcos Alfredo Núñez 2018-03-12 17:01:14 -03:00
parent afc763ee2e
commit d2fdec2f09

View File

@ -221,6 +221,11 @@ class FFmpegCutVideoPP(FFmpegPostProcessor):
self._startTime = startTime self._startTime = startTime
self._endTime = endTime self._endTime = endTime
if self._endTime and self._endTime <= self._startTime:
raise PostProcessingError("end time smaller or equal to the start time")
if self._endTime == 0:
raise PostProcessingError("end time can't be zero")
def toTime(self, seconds): def toTime(self, seconds):
m, s = divmod(seconds, 60) m, s = divmod(seconds, 60)
h, m = divmod(m, 60) h, m = divmod(m, 60)
@ -231,16 +236,10 @@ class FFmpegCutVideoPP(FFmpegPostProcessor):
self._downloader.to_screen('[ffmpeg] No start time or end time. Keeping original') self._downloader.to_screen('[ffmpeg] No start time or end time. Keeping original')
return [], information return [], information
if self._endTime and self._endTime <= self._startTime:
raise PostProcessingError("end time smaller or equal to the start time")
if self._endTime == 0:
raise PostProcessingError("end time can't be zero")
duration = information.get('duration') duration = information.get('duration')
if self._endTime and duration and self._endTime >= duration: if self._endTime and duration and self._endTime >= duration:
self._downloader.to_screen('WARNING: end time greater than video duration') self._downloader.to_screen('WARNING: end time greater or equal to duration')
self._endTime = None self._endTime = None
options = ['-c', 'copy'] options = ['-c', 'copy']
@ -258,7 +257,7 @@ class FFmpegCutVideoPP(FFmpegPostProcessor):
options.extend(['-to', end]) options.extend(['-to', end])
message += 'to %s' % (end) message += 'to %s' % (end)
if duration: if duration:
duration -= self._endTime duration = self._endTime - (duration - self._endTime)
if '-to' not in options and '-ss' not in options: if '-to' not in options and '-ss' not in options:
self._downloader.to_screen('[ffmpeg] Nothing to cut. Keeping original') self._downloader.to_screen('[ffmpeg] Nothing to cut. Keeping original')