From 04781021eb0babba85353ab77e57d645ece905ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tronel?= Date: Sun, 30 Aug 2026 17:34:42 +0200 Subject: [PATCH] Create a dedicated module for coarse cutting. --- src/tscut/coarse.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/tscut/coarse.py diff --git a/src/tscut/coarse.py b/src/tscut/coarse.py new file mode 100644 index 0000000..0e280a5 --- /dev/null +++ b/src/tscut/coarse.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Copyright (C) 2026 Frédéric Tronel + +import logging +from typing import IO + +from tscut.tools.mkvtoolnix import ( + extract_mkv_part, +) + +logger = logging.getLogger(__name__) + + + + + +# TODO: finish this procedure +def do_coarse_processing(ffmpeg_path:str, ffprobe_path:str, mkvmerge_path:str, + input_file: IO[bytes], begin, end, nb_frames, framerate, + files_prefix, streams, width, height, temporaries, dump_mem_fd) -> None: + # pylint: disable=W0613 + logger = logging.getLogger(__name__) + + # Internal video with all streams (video, audio and subtitles) + internal_mkv_name = f'{files_prefix}.mkv' + + try: + internal_mkv = open(internal_mkv_name, 'wb+') + except OSError: + logger.error('Impossible to create file: %s', internal_mkv_name) + exit(-1) + + # Extract internal part of MKV + extract_mkv_part(mkvmerge_path=mkvmerge_path, input_file=input_file, output_file=internal_mkv, + begin=begin, end=end) + + temporaries.append(internal_mkv)