vidgear v0.1.7 Release Notes

Release Date: 2020-04-29 // almost 4 years ago
  • ๐Ÿ†• New Features:

    WebGear API:

    • Added a robust Live Video Server API that can transfer live video frames to any web browser on the network in real-time.
    • Implemented a flexible asyncio wrapper around starlette ASGI Application Server.
    • Added seamless access to various starlette's Response classes, Routing tables, Static Files, Template engine(with Jinja2), etc.
    • Added a special internal access to VideoGear API and all its parameters.
    • Implemented a new Auto-Generation Work-flow to generate/download & thereby validate WebGear API data files from its GitHub server automatically.
    • Added on-the-go dictionary parameter in WebGear to tweak performance, Route Tables and other internal properties easily.
    • Added new simple & elegant default Bootstrap Cover Template for WebGear Server.
    • Added __main__.py to directly run WebGear Server through the terminal.
    • Added new gif and related docs for WebGear API.

    - Added and Updated various CI tests for this API.

    NetGear_Async API

    • Designed NetGear_Async asynchronous network API built upon ZeroMQ's asyncio API.
    • Implemented support for state-of-the-art asyncio event loop uvloop at its backend.
    • Achieved Unmatchable high-speed and lag-free video streaming over the network with minimal resource constraint.
    • Added exclusive internal wrapper around VideoGear API for this API.
    • Implemented complete server-client handling and options to use variable protocols/patterns for this API.
    • Implemented support for all four ZeroMQ messaging patterns: i.e zmq.PAIR, zmq.REQ/zmq.REP, zmq.PUB/zmq.SUB, and zmq.PUSH/zmq.PULL.
    • Implemented initial support for tcp and ipc protocols.
    • Added new Coverage CI tests for NetGear_Async Network Gear.

    - Added new Benchmark tests for benchmarking NetGear_Async against NetGear.

    Asynchronous I/O Enhancements

    • Added asyncio package to vidgear for handling asynchronous APIs.
    • Moved WebGear API(webgear.py) to asyncio and created separate asyncio helper.py for it.
    • Various Performance tweaks for Asyncio APIs with concurrency within a single thread.
    • Moved __main__.py to asyncio for easier access to WebGear API through the terminal.

    - Updated setup.py with new dependencies and separated asyncio dependencies.

    General Enhancements:

    • Added new highly-precise Threaded FPS class for accurate benchmarking with time.perf_counter python module.
    • Added a new Gitter community channel.
    • Added a new Reducer function to reduce the frame size on-the-go.
    • Add Flake8 tests to Travis CI to find undefined names. (PR by @cclauss)
    • Added a new unified logging handler helper function for vidgear.

    โšก๏ธ Updates/Improvements:

    • Re-implemented and simplified logic for NetGear Async server-end.
    • โž• Added new dependencies for upcoming asyncio updates to setup.py.
    • โž• Added retry function and replaced wget with curl for Linux test envs.
    • โฌ†๏ธ Bumped OpenCV to latest 4.2.0-dev for Linux test envs.
    • โšก๏ธ Updated YAML files to reflect new changes to different CI envs.
    • Separated each API logger with a common helper method to avoid multiple copies.
    • Limited Importing OpenCV API version check's scope to helper.py only.
    • Implemented case for incorrect color_space value in ScreenGear API.
    • โœ‚ Removed old conflicting logging formatter with a common method and expanded logging.
    • ๐Ÿ‘Œ Improved and added shutdown function for safely stopping frame producer threads in WebGear API.
    • ๐Ÿ‘ท Re-implemented and simplified all CI tests with maximum code-coverage in mind.
    • Replaced old mkdir function with new mkdir_safe helper function for creating directories safely.
    • โšก๏ธ Updated ReadMe.md with updated diagrams, gifs and information.
    • ๐Ÿ‘Œ Improve, structured and Simplified the Contribution Guidelines.
    • ๐Ÿ‘ท Bundled CI requirements in a single command.(Suggested by @cclauss)
    • Replaced line endings CRLF with LF endings.
    • โž• Added dos2unix for Travis OSX envs.
    • โฌ†๏ธ Bumped Codecov to maximum.

    ๐Ÿ’ฅ Breaking Updates / Improvements / Changes

    • ๐Ÿ‘€ โš ๏ธ Dropped support for Python 3.5 and below legacies. (See issue #99)
    • โฌ‡๏ธ Dropped and replaced Python 3.5 matrices with new Python 3.8 matrices in all CI environments.
    • Implemented PEP-8 Styled Black formatting throughout the source-code.
    • ๐Ÿ‘ Limited protocols support to tcp and ipc only, in NetGear API.

    ๐Ÿ›  Fixes:

    • Fixed Major NetGear_Async bug where __address and __ port are not set in async mode.(PR by @otter-in-a-suit)
    • ๐Ÿ›  Fixed Major PiGear Color-space Conversion logic bug.
    • โ†ช Workaround for CAP_IMAGES: error in YouTube Mode.
    • Replaced incorrect terminate() with join() in PiGear.
    • โœ‚ Removed uvloop for windows as still NOT yet supported.
    • Refactored Asynchronous Package name async to asyncio, since it is used as Keyword in python>=3.7*(raises SyntaxError)*.
    • ๐Ÿ›  Fixed unfinished close of event loops bug in WebGear API.
    • ๐Ÿ›  Fixed NameError in helper.py.
    • โž• Added fix for OpenCV installer failure on Linux test envs.
    • ๐Ÿ›  Fixed undefined NameError in helper.py context. (@cclauss)
    • ๐Ÿ›  Fixed incorrect logic while pulling frames from ScreenGear API.
    • Fixed missing functions in __main__.py.
    • ๐Ÿ›  Fixed Typos and definitions in docs.
    • โž• Added missing camera_num parameter to VideoGear.
    • ๐Ÿ‘Œ Added OpenSSL's [SSL: CERTIFICATE_VERIFY_FAILED] bug workaround for macOS envs.
    • โœ‚ Removed download_url meta from setup.py.
    • โœ‚ Removed PiGear from CI completely due to hardware emulation limitation.
    • โœ‚ Removed VideoCapture benchmark tests for macOS envs.
    • Removed trivial __main__.py from codecov.
    • โœ‚ Removed several redundant try-catch loops.
    • Renamed youtube_url_validation as youtube_url_validator.
    • ๐Ÿ›  Several minor wrong/duplicate variable definitions and various bugs fixed.
    • ๐Ÿ›  Fixed, Improved & removed many Redundant CI tests for various APIs.

    Pull requests(PR) involved:

    ๐Ÿš€ โš ๏ธ PyPi Release does NOT contain Tests and Scripts!