VidGear v0.1.8
·
756 commits
to master
since this release
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
andzmq.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
andPAIR
messaging patterns internally. - Added new
max_retries
andrequest_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.
- Implemented a algorithm where NetGear rather than doing a blocking receive, will now:
-
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 new assets like gifs, images, custom scripts, favicons, site.webmanifest etc. for bringing standard and quality to docs visual design.
- Designed brand new logo and banner for VidGear Documents.
- Deployed all assets under separate Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License.
- Added Required Plugins and Extensions:
- Added support for all pymarkdown-extensions.
- Added support for some important
admonition
,attr_list
,codehilite
,def_list
,footnotes
,meta
, andtoc
like Mkdocs extensions. - Enabled
search
,minify
andgit-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
.
- Added support for
- 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 suitableRuntimeError
. - 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
- Removed
filter
attribute fromoptions
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.
- 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.