summaryrefslogtreecommitdiff
path: root/libmat2/video.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmat2/video.py')
-rw-r--r--libmat2/video.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/libmat2/video.py b/libmat2/video.py
index 658affa..2fa65e8 100644
--- a/libmat2/video.py
+++ b/libmat2/video.py
@@ -1,5 +1,6 @@
1import os 1import os
2import subprocess 2import subprocess
3import logging
3 4
4from . import exiftool 5from . import exiftool
5 6
@@ -23,13 +24,10 @@ class AVIParser(exiftool.ExiftoolParser):
23 'SampleRate', 'AvgBytesPerSec', 'BitsPerSample', 24 'SampleRate', 'AvgBytesPerSec', 'BitsPerSample',
24 'Duration', 'ImageSize', 'Megapixels'} 25 'Duration', 'ImageSize', 'Megapixels'}
25 26
26 def remove_all(self) -> bool: 27
27 """ 28 def __remove_all_internal(self, filename: str):
28 TODO: handle problematic filenames starting with `-` and `--`,
29 check exiftool.py
30 """
31 cmd = [_get_ffmpeg_path(), 29 cmd = [_get_ffmpeg_path(),
32 '-i', self.filename, # input file 30 '-i', filename, # input file
33 '-y', # overwrite existing output file 31 '-y', # overwrite existing output file
34 '-loglevel', 'panic', # Don't show log 32 '-loglevel', 'panic', # Don't show log
35 '-hide_banner', # hide the banner 33 '-hide_banner', # hide the banner
@@ -40,10 +38,13 @@ class AVIParser(exiftool.ExiftoolParser):
40 '-flags:v', '+bitexact', # don't add any metadata 38 '-flags:v', '+bitexact', # don't add any metadata
41 '-flags:a', '+bitexact', # don't add any metadata 39 '-flags:a', '+bitexact', # don't add any metadata
42 self.output_filename] 40 self.output_filename]
41 subprocess.check_call(cmd)
43 42
43 def remove_all(self) -> bool:
44 try: 44 try:
45 subprocess.check_call(cmd) 45 self._handle_problematic_filename(self.__remove_all_internal)
46 except subprocess.CalledProcessError: 46 except subprocess.CalledProcessError as e:
47 logging.error("Something went wrong during the processing of %s: %s", self.filename, e)
47 return False 48 return False
48 return True 49 return True
49 50