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
, andzmq.PUSH/zmq.PULL
. - Implemented initial support for
tcp
andipc
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 asynciohelper.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 replacedwget
withcurl
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 newmkdir_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
andipc
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()
withjoin()
in PiGear. - โ Removed
uvloop
for windows as still NOT yet supported. - Refactored Asynchronous Package name
async
toasyncio
, 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
asyoutube_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!