Skip to content

v0.2.7

Latest

Choose a tag to compare

@abhiTronix abhiTronix released this 20 Apr 05:56
5162649

Summary: Multi-input FFdecoder support, async per-frame metadata extraction, and high-performance luma-only YUV decoding. 🎉

Full Changelog: https://abhitronix.github.io/deffcode/latest/changelog/#v027-2026-04-20


What's Changed

✨ New Features

  • Added multi-input source list support in FFdecoder and Sourcer, enabling simultaneous decoding from multiple input streams (e.g., multiple RTSP sources).
  • Added async per-frame metadata extraction via FFmpeg's showinfo filter in FFdecoder, exposing frame number, PTS time, and keyframe info per decoded frame.
  • Added fast luma-only (-extract_luma) YUV decoding in FFdecoder — slices the Y-plane directly from YUV/NV bytestreams into a 2D uint8 ndarray, bypassing FFmpeg colorspace conversion for significant speed gains over frame_format="gray".

⚡️ Updates/Improvements

  • Migrated packaging from setup.py to pyproject.toml with Python 3.12/3.13 classifier support.
  • Adopted Ruff project-wide for linting and formatting, replacing flake8/black.
  • Added new documentation recipes for multi-input sources, per-frame metadata, YUV grayscale fast-path.
  • Restructured installation guide with dedicated Poetry support.

💥 Breaking Updates/Changes

  • ☠️ Minimum supported Python version raised to 3.10+; Python 3.8 and 3.9 are no longer supported.

🐛 Bug-fixes

  • Fixed StopIteration crash in get_supported_demuxers when FFmpeg -demuxers output lacks the expected -- separator — now returns an empty list with a warning.
  • Fixed regex expression bugs in FFhelper.get_supported_demuxers affecting multi-line output and demuxer names containing commas.

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

Thanks a million! 😊