Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
error_strs += [
'Error: OpenCV dependency %s not found.' % dll_name,
'Ensure that you installed the Python OpenCV module, and that the',
'%s file can be found to enable video support.' % dll_name]
logging.debug('\n'.join(error_strs[1:]))
if not dll_okay:
click.echo(click.style(
'\nOpenCV dependency missing, video input/decoding not available.\n', fg='red'))
raise click.BadParameter('\n'.join(error_strs), param_hint='input video')
except VideoFramerateUnavailable as ex:
error_strs = ['could not get framerate from video(s)',
'Failed to obtain framerate for video file %s.' % ex.file_name]
error_strs.append('Specify framerate manually with the -f / --framerate option.')
logging.debug('\n'.join(error_strs))
raise click.BadParameter('\n'.join(error_strs), param_hint='input video')
except VideoParameterMismatch as ex:
error_strs = ['video parameters do not match.', 'List of mismatched parameters:']
for param in ex.file_list:
if param[0] == cv2.CAP_PROP_FPS:
param_name = 'FPS'
if param[0] == cv2.CAP_PROP_FRAME_WIDTH:
param_name = 'Frame width'
if param[0] == cv2.CAP_PROP_FRAME_HEIGHT:
param_name = 'Frame height'
error_strs.append(' %s mismatch in video %s (got %.2f, expected %.2f)' % (
param_name, param[3], param[1], param[2]))
error_strs.append(
'Multiple videos may only be specified if they have the same framerate and'
' resolution. -f / --framerate may be specified to override the framerate.')
logging.debug('\n'.join(error_strs))
raise click.BadParameter('\n'.join(error_strs), param_hint='input videos')
except InvalidDownscaleFactor as ex:
bad_params += [(cv2.CAP_PROP_FRAME_WIDTH, frame_size[0],
cap_frame_sizes[0][0], video_names[i][0], video_names[i][1]) for
i, frame_size in enumerate(cap_frame_sizes)
if abs(frame_size[0] - cap_frame_sizes[0][0]) > 0]
bad_params += [(cv2.CAP_PROP_FRAME_HEIGHT, frame_size[1],
cap_frame_sizes[0][1], video_names[i][0], video_names[i][1]) for
i, frame_size in enumerate(cap_frame_sizes)
if abs(frame_size[1] - cap_frame_sizes[0][1]) > 0]
# Check framerates if required.
if check_framerate:
bad_params += [(cv2.CAP_PROP_FPS, fps, cap_framerates[0], video_names[i][0],
video_names[i][1]) for i, fps in enumerate(cap_framerates)
if math.fabs(fps - cap_framerates[0]) > max_framerate_delta]
if bad_params:
raise VideoParameterMismatch(bad_params)
error_strs += [
'Error: OpenCV dependency %s not found.' % dll_name,
'Ensure that you installed the Python OpenCV module, and that the',
'%s file can be found to enable video support.' % dll_name]
logging.debug('\n'.join(error_strs[1:]))
if not dll_okay:
click.echo(click.style(
'\nOpenCV dependency missing, video input/decoding not available.\n', fg='red'))
raise click.BadParameter('\n'.join(error_strs), param_hint='input video')
except VideoFramerateUnavailable as ex:
error_strs = ['could not get framerate from video(s)',
'Failed to obtain framerate for video file %s.' % ex.file_name]
error_strs.append('Specify framerate manually with the -f / --framerate option.')
logging.debug('\n'.join(error_strs))
raise click.BadParameter('\n'.join(error_strs), param_hint='input video')
except VideoParameterMismatch as ex:
error_strs = ['video parameters do not match.', 'List of mismatched parameters:']
for param in ex.file_list:
if param[0] == cv2.CAP_PROP_FPS:
param_name = 'FPS'
if param[0] == cv2.CAP_PROP_FRAME_WIDTH:
param_name = 'Frame width'
if param[0] == cv2.CAP_PROP_FRAME_HEIGHT:
param_name = 'Frame height'
error_strs.append(' %s mismatch in video %s (got %.2f, expected %.2f)' % (
param_name, param[3], param[1], param[2]))
error_strs.append(
'Multiple videos may only be specified if they have the same framerate and'
' resolution. -f / --framerate may be specified to override the framerate.')
logging.debug('\n'.join(error_strs))
raise click.BadParameter('\n'.join(error_strs), param_hint='input videos')
except InvalidDownscaleFactor as ex:
def __init__(self, file_list=None, message=
"OpenCV VideoCapture object parameters do not match."):
# type: (Iterable[Tuple[int, float, float, str, str]], str)
# Pass message string to base Exception class.
super(VideoParameterMismatch, self).__init__(message)
# list of (param_mismatch_type: int, parameter value, expected value,
# filename: str, filepath: str)
# where param_mismatch_type is an OpenCV CAP_PROP (e.g. CAP_PROP_FPS).
self.file_list = file_list