Skip to content

v0.2.2

Compare
Choose a tag to compare
@abhiTronix abhiTronix released this 09 Aug 12:45
· 115 commits to master since this release
c51a53d

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


Summary: Major Docs and API Updates. πŸŽ‰

✨ New Features

  • Sourcer API:
    • Added support for -ffprefixes attribute through Sourcer API's sourcer_param dictionary parameter (similar to FFdecoder API).
  • FFdecoder API:
    • Added new output_frames_pixfmt metadata property to preview and handle output frames pixel-format.
  • Docs:
    • Added separate "Basic" and "Advanced" Recipes markdowns files with self-explanatory text, related usage code, asset (such as images, diagrams, GIFs, etc.), and UI upgrades for bringing standard quality to visual design.
    • Added separate index.md for Basic and Advanced Recipes with introductory text and curated hyperlinks for quick references to various recipes (separated with sub-categories "Decoding", "Transcoding", and "Extracting Video Metadata").
    • Added new Basic Decoding Recipes:
      • Added Decoding Video files with various pixel formats recipes.
      • Added Decoding Live Feed Devices recipes with source_demuxer FFdecoder API parameter.
      • Added Decoding Image sequences recipes supporting Sequential, Glob pattern , Single (looping) image.
      • Added Decoding Network Streams recipes.
    • Added new Basic Transcoding Recipes:
      • Added Transcoding Live frames recipes with OpenCV and WriteGear.
      • Added Transcoding Live Simple Filtergraphs recipes with OpenCV.
      • Added Saving Key-frames as Image recipes with different image processing libraries.
    • Added new Basic Extracting Video Metadata Recipes:
      • Added Extracting Video Metadata recipes with FFdecoder and Sourcer APIs.
    • Added new Advanced Decoding Recipes:
      • Added Hardware-Accelerated Video Decoding recipe using NVIDIA's H.264 CUVID Video-decoder(h264_cuvid).
      • Added Decoding Live Virtual Sources recipes with many test patterns using lavfi input virtual device.
    • Added new Advanced Decoding Recipes:
      • Added lossless Hardware-Accelerated Video Transcoding recipe with WriteGear API.
      • Added Transcoding Live Complex Filtergraphs recipes with WriteGear API.
      • Added Transcoding Video Art with Filtergraphs recipes with WriteGear API for creating real-time artistic generative video art using simple and complex filtergraphs.
    • Added new Advanced Updating Video Metadata Recipes:
      • Added Updating Video Metadata recipes with user-defined as well as source metadata in FFdecoder API.
    • Added new dark and light theme logo support.

⚑️ Updates/Improvements

  • Sourcer API:
    • Implemented new validation checks to ensure given source has usable video stream available by checking availability of either video bitrate or both frame-size and framerate_ properties in the source metadata.
    • Improved extract_resolution_framerate method for making framerate extraction more robust by falling back to extracting TBR value when no framerate value available in the source metadata.
  • FFdecoder API:
    • Updated metadata property object to validate and override source metadata properties directly by overloading same property object before formulating Frames Decoder Pipeline:
      • Implemented validation checks to verify each validate manually assigned source metadata property against specific datatype before overriding.
    • Updated metadata property object to handle and assign User-defined metadata directly by overloading the same property object:
      • FFdecoder API's metadata property object now returns User-defined metadata information merged with Source Video metadata.
  • Docs:
    • Reformatted all Core class and methods text descriptions:
      • Fixed missing class and methods parameter description.
      • Reformatted code comments.
    • Rewritten Introduction(index.md) with recent Information, redefined context, UI changes, updated recipe codes, curated hyperlinks to various recipes(separated with categories), and relatable GIFs.
    • Reformatted and centered DeFFcode Introductory description.
    • Updated Key Features section with reflecting new features.
    • Updated docs site navigation and titles in mkdocs.yml.
    • Added custom spacer class in CSS for custom vertical spacing.
    • Updated all admonitions icons with new custom icon SVG+XML URLs.
    • Updated docs fonts.
    • Updated primary and accent colors.
    • Updated API Reference docs.
    • Changed Color palette toggle icons.
    • Updated icons in title headings.
    • Updated admonition messages.

πŸ’₯ Updates/Changes

  • Sourcer API:
    • πŸ†• Sourcer API's retrieve_metadata() method now returns parsed metadata either as JSON string or dictionary type.
      • Added new pretty_json boolean parameter to retrieve_metadata(), that is when True, returns metadata formatted as JSON string instead of default python dictionary.
    • ⚠️ Changed IOError to ValueError in Sourcer API, raised when source with no decodable audio or video stream is provided.
  • FFdecoder API:
    • ⚠️Rename extraparams dictionary parameter to ffparams in FFdecoder API.
    • πŸ’€ The source metadata value cannot be altered through metadata property object in FFdecoder API.
    • ⚠️ Removed -ffpostfixes attribute support from ffparams dictionary parameter in FFdecoder API.

πŸ› Bug-fixes

  • FFdecoder API:
    • Fixed metadata property object unable to process user-defined keys when any source metadata keys are defined.
    • Fixed TypeError bug with string type -framerate parameter values.
  • Sourcer API:
    • Fixed Sourcer API throws IOError for videos containing streams without both source bitrate and framerate defined (such as from lavfi input virtual device).
    • Fixed AttributeError bug due to typo in variable name.

πŸ’‘ Pull Requests