Skip to content

ffmpeg-filter-chains#3

Merged
marcus merged 3 commits intomainfrom
ffmpeg-filter-chains
Jan 20, 2026
Merged

ffmpeg-filter-chains#3
marcus merged 3 commits intomainfrom
ffmpeg-filter-chains

Conversation

@marcus
Copy link
Owner

@marcus marcus commented Jan 20, 2026

Created from worktree manager

marcus and others added 3 commits January 19, 2026 20:43
Allows users to speed up or slow down GIF playback without re-recording.
Speed multiplier range is 0.25x to 4.0x (default 1.0).

- Parse @set:speed:N directive in keys.sh
- Validate speed range in validate.sh
- Apply speed to FFmpeg filter chain via adjusted delay/frame rate
- Add 9 validation tests for speed directive
- Document in keys-file-format.md and gif-recording.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Security & validation fixes:
- Add _validate_hex_color() to prevent command injection via bg_color
- Add _validate_dimensions() for numeric bounds checking
- Apply validation in window bar generation (Pillow & ImageMagick)

FFmpeg pipeline fixes:
- Fix return type: List[str] -> Tuple[List[str], List[str]]
- Add format=rgba conversion before alphamerge (required for alpha)
- Add speed validation to prevent division by zero
- Bound effective_delay to reasonable range (1-1000)

Subprocess hardening:
- Add 5s timeout to ImageMagick version check
- Add 30s timeout to decoration image generation
- Add 10s timeout to ffprobe dimension detection
- Handle FileNotFoundError and TimeoutExpired exceptions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@marcus marcus merged commit 1c1196d into main Jan 20, 2026
1 check passed
@marcus marcus deleted the ffmpeg-filter-chains branch January 20, 2026 05:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant