vidgear v0.1.8 Release Notes

Release Date: 2020-06-12 // over 1 year ago
  • ๐Ÿ†• New Features

    ๐Ÿ‘ Multiple Clients support in NetGear API:

    • Implemented support for handling any number of Clients simultaneously with a single Server in this mode.
    • Added new multiclient_mode attribute for enabling this mode easily.
    • Built support for zmq.REQ/zmq.REP and zmq.PUB/zmq.SUB patterns in this mode.
    • Implemented ability to receive data from all Client(s) along with frames with zmq.REQ/zmq.REP pattern only.

    - Updated related CI tests

    ๐Ÿ‘Œ Support for robust Lazy Pirate pattern(auto-reconnection) in NetGear API for both server and client ends:

    • Implemented a algorithm where NetGear rather than doing a blocking receive, will now:
      • Poll the socket and receive from it only when it's sure a reply has arrived.
      • Attempt to reconnect, if no reply has arrived within a timeout period.
      • Abandon the connection if there is still no reply after several requests.
    • Implemented its default support for REQ/REP and PAIR messaging patterns internally.
    • Added new max_retries and request_timeout(in seconds) for handling polling.
    • Added DONTWAIT flag for interruption-free data receiving.

    - Both Server and Client can now reconnect even after a premature termination.

    ๐ŸŽ Performance Updates for NetGear API:

    • Added default Frame Compression support for Bidirectional frame transmission in Bidirectional mode.
    • Added support for Reducer() function in Helper.py to aid reducing frame-size on-the-go for more performance.
    • Added small delay in recv() function at client's end to reduce system load.

    - Reworked and Optimized NetGear termination, and also removed/changed redundant definitions and flags.

    ๐Ÿ“„ Docs Migration to Mkdocs:

    • Implemented a beautiful, static documentation site based on MkDocs which will then be hosted on GitHub Pages.
    • Crafted base mkdocs with third-party elegant & simplistic mkdocs-material theme.
    • Implemented new mkdocs.yml for Mkdocs with relevant data.
    • Added new docs folder to handle markdown pages and its assets.
    • Added new Markdown pages(.md) to docs folder, which are carefully crafted documents - based on previous Wiki's docs, and some completely new additions.
    • Added navigation under tabs for easily accessing each document.
    • New Assets:
    • Added Required Plugins and Extensions:
      • Added support for all pymarkdown-extensions.
      • Added support for some important admonition, attr_list, codehilite, def_list, footnotes, meta, and toc like Mkdocs extensions.
      • Enabled search, minify and git-revision-date-localized plugins support.
      • Added various VidGear's social links to yaml.
      • Added support for en (English) language.
    • Auto-Build API Reference with mkdocstrings:
      • Added support for mkdocstrings plugin for auto-building each VidGear's API references.
      • Added python handler for parsing python source-code to mkdocstrings.
    • Auto-Deploy Docs with Github Actions:
      • Implemented Automated Docs Deployment on gh-pages through GitHub Actions workflow.
      • Added new workflow yaml with minimal configuration for automated docs deployment.
      • Added all required python dependencies and environment for this workflow.
      • Added master branch on Ubuntu machine to build matrix.

    โšก๏ธ Updates/Improvements

    • ๐Ÿ‘ Added in-built support for bidirectional frames(NDarray) transfer in Bidirectional mode.
    • ๐Ÿ‘ Added support for User-Defined compression params in Bidirectional frames transfer.
    • โ†ช Added workaround for address already in use bug at client's end.
    • Unified Bidirectional and Multi-Clients mode for client's return data transmission.
    • Replaced ValueError with more suitable RuntimeError.
    • โšก๏ธ Updated logging for better readability.
    • ๐Ÿ‘ท Added CI test for Multi-Clients mode.
    • Reformatted and grouped imports in VidGear.
    • ๐Ÿ‘ท Added Reducer Helper function CI test.
    • โœ… Added Reliability tests for both Server and Client end.
    • Disabled reliable reconnection for Multi-Clients mode.
    • Replaced os.devnull with suprocess's inbuilt function.
    • โšก๏ธ Updated README.md, Issue and PR templates with new information and updates.
    • โšก๏ธ Moved changelog.md to /docs and updated contribution guidelines.
    • ๐Ÿ“„ Improved source-code docs for compatibility with mkdocstrings.
    • ๐Ÿ— Added additional dependency mkdocs-exclude, for excluding files from Mkdocs builds.
    • โšก๏ธ Updated license and compressed images/diagrams.
    • ๐Ÿ‘ท Added new CI tests and Bumped Codecov.
    • ๐Ÿ‘ท Changed YouTube video URL for CI tests to Creative Commons(CC) video.
    • ๐Ÿšš Removed redundant code.

    ๐Ÿ’ฅ Breaking Updates/Changes

    ๐Ÿšš โš ๏ธVidGear Docs moved to GitHub Pages, Now Available at https://abhitronix.github.io/vidgear.

    • ๐Ÿšš Removed filter attribute from options parameter in NetGear API.
    • ๐Ÿšš Removed force_terminate parameter support from NetGear API.
    • Disabled additional data of datatype numpy.ndarray for Server end in Bidirectional Mode.

    ๐Ÿ› Bug-fixes

    • ๐Ÿ›  Fixed 'NoneType' object is not subscriptable bug.
    • ๐Ÿ›  Fixed bugs related to delayed termination in NetGear API.
    • 0๏ธโƒฃ Reduced default request_timeout value to 4 and also lowered cut-off limit for the same.
    • ๐Ÿšš Removed redundant ZMQ context termination and similar variables.
    • Added missing VidGear installation in workflow.
    • ๐Ÿ— Excluded conflicting assets README.md from Mkdocs builds.
    • ๐Ÿ›  Fixed pattern value check bypassed if wrong value is assigned.
    • ๐Ÿ”€ Fixed incorrect handling of additional data transferred in synchronous mode at both Server and Client end.
    • ๐Ÿ‘ท Replaced Netgear CI test with more reliable try-except-final blocks.
    • โšก๏ธ Updated termination linger to zero at Server's end.
    • ๐Ÿ›  Fixed NameError bug in NetGear API.
    • ๐Ÿ›  Fixed missing support for compression parameters in Multi-Clients Mode.
    • ๐Ÿ›  Fixed ZMQ throwing error on termination if all max-tries exhausted.
    • ๐Ÿ‘ Enabled missing support for frame compression in its primary receive mode.
    • ๐Ÿ‘ท Fixed several bugs from CI Bidirectional Mode tests.
    • ๐Ÿšš Removed or Grouped redundant code for increasing codecov.
    • ๐Ÿ›  Fixed Mkdocs only accepting Relative paths.
    • ๐Ÿ›  Fixed broken links in docs.
    • ๐Ÿ›  Fixed round off error in FPS.
    • โœ๏ธ Many small typos and bugs fixes.

    Pull Requests