Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚡️ Major enhancements for the next release #183

Merged
merged 11 commits into from
Dec 29, 2020
Merged

Conversation

abhiTronix
Copy link
Owner

@abhiTronix abhiTronix commented Dec 26, 2020

Description

Some major enhancements for next vidgear release.

Requirements / Checklist

Related Issue

#133
#160
#182

Context

VidGear is gearing up for next major stable release. Thereby, this issue will work toward adding pending new features to it.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Screenshots (if available):

None

- Added `VIDGEAR_LOGFILE` environment variable to manually add file/dir path.
- Reworked `logger_handler()` Helper methods (in asyncio too).
- Added new formatter and Filehandler for handling logger files.
- Added auto version extraction from package `version.py` in setup.py.
⚠️ `y_tube` parameter renamed as `stream_mode`!
⚠️ Removed `FORCE_YTUBE_VAMODE` attribute.

- Re-implemented CamGear's YouTube URLs Handler completely from scratch.
- New Robust Logic to flexibly handing video and video-audio streams.
- Intelligent stream selector for selecting best possible stream compatible with OpenCV.
- Added support for selecting stream qualities and parameters.
- Added additional `STREAM_QUALITY` and `STREAM_PARAMS` attributes for CamGear.
- Implemented new `get_supported_quality` helper method for handling specified qualities
- Fixed Live-Stream URLs not supported by OpenCV's Videocapture and its FFmpeg.
- Bumped `dev` version.
- Implemented automatic youtube livestream URLs handling with Stream Mode to workaround bug.
- Stream Mode now automatically enforces GStreamer backend(backend=cv2.CAP_GStreamer), if livestream.
- Added new `check_gstreamer_support` helper method to check if OpenCV is compiled with GStreamer support.
- Added `get_supported_resolution` & `dimensions_to_resolutions` to handle resolutions properly.
- ⚠️ CamGear will now throw `RuntimeError` if source is livestream but GStreamer backend unsupportted.
- ⚠️ Renamed `STREAM_QUALITY` attribute to `STREAM_RESOLUTION`.
- Fixed user-specified resolution selection for livestreams.
- Added CI tests for Stream Mode and its behaviour.
- Updated docs with all new additions and examples.
- Fixed Minor bugs.
@abhiTronix abhiTronix added BUG 🐛 Vidgear api's error, flaw or fault ENHANCEMENT ⚡ New Feature/Addition/Improvement WORK IN PROGRESS 🚧 currently been worked on. DOCS 📜 Issue/PR is related to vidgear docs. labels Dec 26, 2020
@abhiTronix abhiTronix added this to the 0.2.0 milestone Dec 26, 2020
@abhiTronix abhiTronix self-assigned this Dec 26, 2020
This was linked to issues Dec 26, 2020
@codecov
Copy link

codecov bot commented Dec 26, 2020

Codecov Report

Merging #183 (f963eea) into testing (d0dfd90) will decrease coverage by 0.14%.
The diff coverage is 87.50%.

Impacted file tree graph

@@             Coverage Diff             @@
##           testing     #183      +/-   ##
===========================================
- Coverage    94.68%   94.54%   -0.15%     
===========================================
  Files           15       15              
  Lines         2241     2308      +67     
===========================================
+ Hits          2122     2182      +60     
- Misses         119      126       +7     
Impacted Files Coverage Δ
vidgear/gears/asyncio/netgear_async.py 92.30% <ø> (ø)
vidgear/gears/asyncio/webgear.py 98.29% <ø> (ø)
vidgear/gears/streamgear.py 97.92% <ø> (ø)
vidgear/gears/videogear.py 100.00% <ø> (ø)
vidgear/gears/camgear.py 92.77% <77.77%> (-2.98%) ⬇️
vidgear/gears/helper.py 96.15% <97.14%> (+0.11%) ⬆️
vidgear/gears/asyncio/helper.py 95.93% <100.00%> (+0.24%) ⬆️
vidgear/version.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d0dfd90...f963eea. Read the comment docs.

- Added support for new `VIDGEAR_LOGFILE` env variable in Travis CI.
- Fixed failing CI tests.
- Added missing CI tests.
- Added logging for helper functions.
- Updated `contributing.md`
- Bumped codecov.
)

- Added seamless support for live video streaming sites like Twitch, LiveStream, Dailymotion etc.
- Implemented flexible framework around `streamlink` python library with easy control over parameters and quality.
- Stream Mode can now automatically detects whether `source` belong to YouTube or elsewhere, and handles it with appropriate API.
- Added additional `STREAM_QUALITY` and `STREAM_PARAMS` attributes.
- Updated docs with all new additions and examples.
- Moved WebGear API to Streaming Gears.
- Added `restore_levelnames` auxiliary method.
- Updated CI tests, `setup.py` and `ReadMe.md`.
- Fixed Several logging bugs.
- Bumped `dev` version.
@abhiTronix abhiTronix added CI IGNORED ✖️ CI test reports are ignored for this PR. SOLVED 🏁 This issue/PR is resolved now. Goal Achieved! and removed WORK IN PROGRESS 🚧 currently been worked on. labels Dec 29, 2020
@abhiTronix abhiTronix merged commit b31ca58 into testing Dec 29, 2020
@abhiTronix abhiTronix deleted the development branch December 29, 2020 10:24
@abhiTronix abhiTronix mentioned this pull request Dec 31, 2020
58 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BUG 🐛 Vidgear api's error, flaw or fault CI IGNORED ✖️ CI test reports are ignored for this PR. DOCS 📜 Issue/PR is related to vidgear docs. ENHANCEMENT ⚡ New Feature/Addition/Improvement SOLVED 🏁 This issue/PR is resolved now. Goal Achieved!
Projects
None yet
1 participant