Skip to content

v0.2.8

Choose a tag to compare

@abhiTronix abhiTronix released this 18 Oct 05:15
· 46 commits to master since this release

Summary:

This release introduces crucial stability enhancements, including configurable subprocess timeouts to prevent hangs on frozen FFmpeg streams, and brings official support for Python 3.14.x. It also includes major bug fixes for multi-input filtergraphs and raises the minimum required Python version to 3.11+.

Full Changelog: https://abhitronix.github.io/deffcode/latest/changelog/#v028-2026-10-18


What's Changed

✨ New Features

  • FFhelper: Added configurable subprocess timeout support to check_sp_output to prevent indefinite hangs on frozen FFmpeg streams, featuring a graceful two-step shutdown (SIGTERM then SIGKILL).
  • Core: Added official support for Python 3.14.x.
  • Docs: Added new multi-input -filter_complex recipes, including 2x2 video grids (mosaic) via xstack and crossfade transitions via xfade.

⚡️ Updates/Improvements

  • FFhelper: Applied the new subprocess timeout logic to all internal FFmpeg subprocess calls and download adapters.
  • Packaging: Modernized packaging by adding Poetry fields and poetry.lock to pyproject.toml.
  • Core: Bumped Ruff target-version to py311 and modernized internal typing using typing.Self.

💥 Breaking Updates/Changes

  • Core: Minimum Python version raised to 3.11+. Python 3.10 has reached EOL and is officially dropped.
  • FFhelper: The DEFAULT_TIMEOUT constant has been renamed to DEFAULT_TIMEOUT_REQUESTS.

🐛 Bug-fixes

  • Sourcer: Fixed multi-input filtergraph metadata probing that previously caused composite outputs (like hstack, xstack) to report incorrect frame resolutions and yield corrupted frames.
  • FFdecoder: Fixed multi-input pipelines (e.g., xfade) truncating to the first input's frame count; they now correctly decode until EOF.
  • FFhelper: Fixed an issue where check_sp_output would hang indefinitely on frozen FFmpeg streams.

You can become a sponsor via GitHub Sponsors by clicking the button below:

Thanks a million! 😊