Skip to content

v0.2.0

Choose a tag to compare

@abhiTronix abhiTronix released this 21 Mar 12:36
· 304 commits to master since this release

πŸ““ Complete Release Notes can be found here ↗️


πŸš€ All available stable python 3.7+ versions are now officially supported by DeFFcode. πŸŽ‰

New Features ✨

  • Sourcer API:
    • Added a new source_audio_samplerate metadata parameter.
    • Added new -force_validate_source attribute to Sourcer API's sourcer_params dictionary parameter for special cases.
    • Added metadata extraction support:
      • Added retrieve_metadata class method to Sourcer API for extracting source metadata as python dictionary.
  • FFdecoder API:
    • Added metadata extraction and updation support:
      • Added metadata property object function to FFdecoder API for retrieving source metadata form Sourcer API as dict and return it as JSON dump for pretty printing.
      • Added metadata property object with setter() method for updating source metadata with user-defined dictionary.
  • Tests:
    • Added DeFFcode unit tests with pytest.
  • Continuous Integration:
    • Automated CI support for different environments:
      • Implemented auto-handling of dependencies installation, unit testing, and coverage report uploading.
      • Added GitHub Action workflow for Linux envs.
      • Added Appveyor workflow for Windows envs.
      • Added Azure-Pipelines workflow for MacOS envs.
    • Implement new automated Docs Building and Deployment on gh-pages through GitHub Actions workflow.
    • Added new Automated Docs Versioning.
    • Added Skip Duplicate Actions Workflow to DeFFcode Docs Deployer.
  • Maintenance:
    • New DeFFcode project issue and PR templates.
    • Added new FUNDING.yml with ko-fi donation link.
    • Added .gitattributes for DeFFcode, that set the default behavior, in case people don't have core.autocrlf set.
    • Imported Codecov config(codecov.yml) from vidgear to modify coverage parameters.
  • Docs:
    • Added new comprehensive documentation with mkdocs and mkdocs-material theme.

Updates/Improvements ⚑️

  • FFdecoder API:
    • Removed redundant forcing -r FFmpeg parameter for image sequences as source.
    • Removed redundant checks on -vf FFmpeg parameter.
    • FFmpeg parameter -s will be discarded in favor of -custom_resolution attribute.
    • Replaced -constant_framerate with FFmpeg -framerate attribute.
    • Replaced -custom_source_params with correct -custom_sourcer_params attribute.
    • Renamed operational_mode metadata parameter to ffdecoder_operational_mode.
  • Sourcer API:
    • Converted all Sourcer API's public variables into private ones.
    • Moved FFmpeg path validation and handling to Sourcer from FFdecoder API.
      • Moved -ffmpeg_download_path dictionary attribute to Sourcer API's sourcer_params parameter.
  • Continuous Integration:
    • Excluded dev branch from triggering workflow on any environment.
  • Maintenance:
    • Updated LICENSE notice to add vidgear notice.
    • Bumped version to 0.2.0

Breaking Updates/Changes πŸ’₯

  • ⚠️ Sourcer API will now raises Assertion error if probe_stream() not called before calling retrieve_metadata().
  • ⚠️ Only -framerate values greater than 0.0 are now valid.
  • ⚠️ Renamed decode_stream to probe_stream in Sourcer API.
  • ⚠️ Any of video bitrate or video framerate are sufficient to validate if source contains valid video stream(s).
  • ⚠️ Any of audio bitrate or audio samplerate are sufficient to validate if source contains valid audio stream(s).

Bug-fixes πŸ›

  • APIs:
    • Added missing delete_file_safe function in utils.py
    • Fixed forward slash bugs in regex patterns.
    • Fixed IndexError when no bitrate was discovered in given source.
    • Fixed FFmpeg subprocess pipeline not terminating gracefully in FFdecoder API.
    • Fixed __version__ not defined in DeFFcode's __init__.py that throws AttributeError on any query.

Related PRs πŸ’‘