From e08ece49b5a578129ee2949df267192732d4e6cb Mon Sep 17 00:00:00 2001 From: ayato <2044taiga@gmail.com> Date: Wed, 25 Jun 2025 17:46:04 +0900 Subject: [PATCH 1/2] refactor: eliminate magic numbers by introducing named constants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace hardcoded numbers with descriptive constants for better maintainability: - Add +gif-fps-divider+ (2.0) for GIF frame rate calculation - Add +min-file-size+ (1024) for incomplete file detection threshold - Export new constants in package.lisp - Update ffmpeg.lisp to use named constants instead of magic numbers Benefits: - Improved code readability and self-documentation - Easier maintenance and configuration changes - Clear intent behind numeric values - Consistent with existing constant naming conventions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/const.lisp | 6 ++++++ src/ffmpeg.lisp | 4 ++-- src/package.lisp | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/const.lisp b/src/const.lisp index 08eb7dc..7c61445 100644 --- a/src/const.lisp +++ b/src/const.lisp @@ -33,3 +33,9 @@ (defparameter +gif-scale+ "640:-1") +(defparameter +gif-fps-divider+ 2.0 + "Divider for GIF frame rate (output fps = source fps / divider)") + +(defparameter +min-file-size+ 1024 + "Minimum file size in bytes to consider a file valid (not corrupt/incomplete)") + diff --git a/src/ffmpeg.lisp b/src/ffmpeg.lisp index 2cb881d..0ffb943 100644 --- a/src/ffmpeg.lisp +++ b/src/ffmpeg.lisp @@ -24,7 +24,7 @@ :if-does-not-exist nil) (when stream (file-length stream))))) ;; Delete empty or very small files (header-only, etc.) - (when (and file-size (< file-size 1024)) + (when (and file-size (< file-size +min-file-size+)) (delete-file output) (format t "~a Cleaned up incomplete output file: ~a~%" (log-tag "info") output))))) @@ -55,7 +55,7 @@ "Construct the ffmpeg command list for GIF mode using input filename and target fps." (let* ((input (visp-options-input opts)) (cmd (list "ffmpeg" "-i" input)) - (half-fps (/ fps 2.0)) + (half-fps (/ fps +gif-fps-divider+)) (scale-str (format nil "scale=~a" +gif-scale+)) (fps-str (format nil "fps=~2,2f" half-fps)) (filter-complex diff --git a/src/package.lisp b/src/package.lisp index 00207a6..b71d74e 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -9,6 +9,8 @@ :+pixfmt-name-map+ :+allowed-input-extensions+ +gif-scale+ + +gif-fps-divider+ + +min-file-size+ ;; main.lisp :main From 18f938c18d10c1486909be27ad23b05f183b3653 Mon Sep 17 00:00:00 2001 From: ayato <2044taiga@gmail.com> Date: Wed, 25 Jun 2025 17:49:41 +0900 Subject: [PATCH 2/2] fix: increase minimum file size threshold to 4KB (4096 bytes) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change +min-file-size+ from 1024 to 4096 bytes for more reliable detection of incomplete/corrupted video files. Rationale: - 1KB was too small for video files (even minimal video headers are larger) - 4KB provides better safety margin while still catching truly incomplete files - More conservative approach to avoid accidentally deleting valid small files 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/const.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/const.lisp b/src/const.lisp index 7c61445..da7d535 100644 --- a/src/const.lisp +++ b/src/const.lisp @@ -36,6 +36,6 @@ (defparameter +gif-fps-divider+ 2.0 "Divider for GIF frame rate (output fps = source fps / divider)") -(defparameter +min-file-size+ 1024 +(defparameter +min-file-size+ 4096 "Minimum file size in bytes to consider a file valid (not corrupt/incomplete)")