{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":176048362,"defaultBranch":"master","name":"vidgear","ownerLogin":"abhiTronix","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-03-17T02:42:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/34266896?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716225608.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"20dec0accda1ca9a850d91bcec194184176f1b70","ref":"refs/heads/development","pushedAt":"2024-05-20T17:20:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ”§ Deprecate on_shutdown in favor of lifespan (Fixes #397) [#398]\n\n- πŸ—οΈ Replaced deprecated Starlette's `on_shutdown` parameter with an async context manager `lifespan` in WebGear and WebGear_RTC APIs.\r\n- 🚚 Moved shutdown logic for VideoGear and peer RTC connections to this new `lifespan` context manager.\r\n- πŸ“¦οΈ Added new `contextlib` import for using `asynccontextmanager`.\r\n\r\n### NetGear_Async API:\r\n- 🩹 Fixed event loop handling \r\n - ⚑️Modified `__init__` method to handle event loop more robustly:\r\n - Try to get the running event loop using `asyncio.get_running_loop()`\r\n - If no running event loop found, create a new one with `asyncio.new_event_loop()`\r\n - Log if creating a new event loop\r\n - πŸ§‘β€πŸ’» Changed launch method to use `self.loop.create_task()` instead of `asyncio.ensure_future()`\r\n - Ensures the task is created using the correct event loop instance.\r\n- πŸš‘οΈ Fix event loop initialization on Windows platforms \r\n - ⚑️ Moved the event loop initialization code to an earlier point before setting event loop policy to ensure it is set up correctly before selecting `WindowsSelectorEventLoop` policy.\r\n - πŸ’¬ Background: On Windows, vidgear requires the `WindowsSelectorEventLoop`, but Python 3.8 and above defaults to the `ProactorEventLoop` which is not compatible.\r\n - πŸ”₯ Removed redundant python version check to set `WindowsSelectorEventLoop` policy, as minimum supported version is already `3.8`.\r\n - πŸ’‘ Updated code comments.\r\n- ⚑️ Move event loop setup and policy assignment to the beginning of `__init__` before zmq Context creation.\r\n\r\n### PiGear API: \r\n- πŸš‘οΈ Modify PiGear class behavior when `enforce_legacy_picamera=True` on unsupported system\r\n - ⚑️ Instead of silently disabling `picamera2` API directly, PiGear now raises an error if `picamera` is unavailable or unsupported\r\n - πŸ₯… Prevented incorrect initialization of `PiGear` class on unsupported 64-bit OS systems.\r\n\r\n### Docs: \r\n- πŸ“ Added workaround for 'AttributeError: 'DXCamera' object has no attribute 'is_capturing'' error on Windows.\r\n- πŸ’„ Added new `screengear_error11.png` asset.\r\n- πŸ“ Update README.md with changes to JPEG compression options\r\n - ✏️ Replaces deprecated options (`frame_jpeg_quality`, `frame_jpeg_optimize`, `frame_jpeg_progressive`) with their newer equivalents (`jpeg_compression_quality,` `jpeg_compression_fastdct`, `jpeg_compression_fastupsample`) in WebGear usage example.\r\n- πŸ› Replaced buggy kofi widget with a button image in index.md\r\n- πŸ—οΈ Remove script tags from main.html and use a custom hook for adding JS\r\n- πŸ”₯ Remove site.webmanifest file\r\n- πŸ’„ Update mkdocs.yml with new configuration settings:\r\n - Set edit_uri for GitHub edit links\r\n - Add new theme features like content actions, tooltips, etc.\r\n - Update palette settings for light/dark mode\r\n - Enable new markdown extensions\r\n - Add custom JS hook for adding scripts on certain pages\r\n- ♻️ Other minor tweaks and cleanups\r\n- πŸ§‘β€πŸ’» Refactored all APIs and bonus examples to use linenums and hl_lines\r\n - Makes it easier to highlight specific lines in code blocks\r\n- πŸ“ Updated remaining code examples for picamera2 and legacy picamera backends\r\n- πŸ› Replaced buggy kofi widget with a button image in `help.md`\r\n- πŸ’„ Update announcement icon in `main.html`\r\n- πŸ’„ Change system mode toggle icon and name in `mkdocs.yml`\r\n- πŸ“ Add failure warning in various docs about `picamera` incompatibility on 64-bit OS\r\n\r\n### CI: \r\n- πŸ’š Deprecated event_loop fixture overrides. \r\n - πŸ‘· Added new recommended approach of using `pytest.mark.asyncio(scope=\"module\")` to mark all WebGear_RTC and NetGear_Async tests as asynchronous and utilize the same event loop throughout the module.\r\n - πŸ—‘οΈ Deprecated custom `event_loop` fixture overrides in WebGear_RTC and NetGear_Async tests.\r\n - πŸ”₯ Removed redundant `pytest.mark.asyncio` decorators from several test functions.\r\n- πŸ’š Refactor event loop handling \r\n - πŸ‘· Add a new event_loop_policy fixture for pytest to override the event loop policy\r\n - πŸ”Š Log the event loop being used for debugging\r\n - πŸ”§ Mark the new fixture in relevant test functions with pytest.mark.asyncio(scope=\"module\")\r\n - ♻️ Remove unused imports and code cleanup","shortMessageHtmlLink":"πŸ”§ Deprecate on_shutdown in favor of lifespan (Fixes #397) [#398]"}},{"before":"512301db277ce8106df3fe763e6ca820b16f0627","after":"89e19d489d20ac679080dfce43c5a5217ed81f8c","ref":"refs/heads/gh-pages","pushedAt":"2024-05-20T17:19:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deployed 20dec0ac to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1","shortMessageHtmlLink":"Deployed 20dec0a to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1"}},{"before":"6285688e5d2d4c924ca9f37095c39ab130004c63","after":null,"ref":"refs/heads/development","pushedAt":"2024-05-20T17:17:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"}},{"before":"e497ac2cf7da60c7ff4fe061a053f00d5331b0cb","after":"20dec0accda1ca9a850d91bcec194184176f1b70","ref":"refs/heads/testing","pushedAt":"2024-05-20T17:17:43.000Z","pushType":"pr_merge","commitsCount":10,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ”§ Deprecate on_shutdown in favor of lifespan (Fixes #397) [#398]\n\n- πŸ—οΈ Replaced deprecated Starlette's `on_shutdown` parameter with an async context manager `lifespan` in WebGear and WebGear_RTC APIs.\r\n- 🚚 Moved shutdown logic for VideoGear and peer RTC connections to this new `lifespan` context manager.\r\n- πŸ“¦οΈ Added new `contextlib` import for using `asynccontextmanager`.\r\n\r\n### NetGear_Async API:\r\n- 🩹 Fixed event loop handling \r\n - ⚑️Modified `__init__` method to handle event loop more robustly:\r\n - Try to get the running event loop using `asyncio.get_running_loop()`\r\n - If no running event loop found, create a new one with `asyncio.new_event_loop()`\r\n - Log if creating a new event loop\r\n - πŸ§‘β€πŸ’» Changed launch method to use `self.loop.create_task()` instead of `asyncio.ensure_future()`\r\n - Ensures the task is created using the correct event loop instance.\r\n- πŸš‘οΈ Fix event loop initialization on Windows platforms \r\n - ⚑️ Moved the event loop initialization code to an earlier point before setting event loop policy to ensure it is set up correctly before selecting `WindowsSelectorEventLoop` policy.\r\n - πŸ’¬ Background: On Windows, vidgear requires the `WindowsSelectorEventLoop`, but Python 3.8 and above defaults to the `ProactorEventLoop` which is not compatible.\r\n - πŸ”₯ Removed redundant python version check to set `WindowsSelectorEventLoop` policy, as minimum supported version is already `3.8`.\r\n - πŸ’‘ Updated code comments.\r\n- ⚑️ Move event loop setup and policy assignment to the beginning of `__init__` before zmq Context creation.\r\n\r\n### PiGear API: \r\n- πŸš‘οΈ Modify PiGear class behavior when `enforce_legacy_picamera=True` on unsupported system\r\n - ⚑️ Instead of silently disabling `picamera2` API directly, PiGear now raises an error if `picamera` is unavailable or unsupported\r\n - πŸ₯… Prevented incorrect initialization of `PiGear` class on unsupported 64-bit OS systems.\r\n\r\n### Docs: \r\n- πŸ“ Added workaround for 'AttributeError: 'DXCamera' object has no attribute 'is_capturing'' error on Windows.\r\n- πŸ’„ Added new `screengear_error11.png` asset.\r\n- πŸ“ Update README.md with changes to JPEG compression options\r\n - ✏️ Replaces deprecated options (`frame_jpeg_quality`, `frame_jpeg_optimize`, `frame_jpeg_progressive`) with their newer equivalents (`jpeg_compression_quality,` `jpeg_compression_fastdct`, `jpeg_compression_fastupsample`) in WebGear usage example.\r\n- πŸ› Replaced buggy kofi widget with a button image in index.md\r\n- πŸ—οΈ Remove script tags from main.html and use a custom hook for adding JS\r\n- πŸ”₯ Remove site.webmanifest file\r\n- πŸ’„ Update mkdocs.yml with new configuration settings:\r\n - Set edit_uri for GitHub edit links\r\n - Add new theme features like content actions, tooltips, etc.\r\n - Update palette settings for light/dark mode\r\n - Enable new markdown extensions\r\n - Add custom JS hook for adding scripts on certain pages\r\n- ♻️ Other minor tweaks and cleanups\r\n- πŸ§‘β€πŸ’» Refactored all APIs and bonus examples to use linenums and hl_lines\r\n - Makes it easier to highlight specific lines in code blocks\r\n- πŸ“ Updated remaining code examples for picamera2 and legacy picamera backends\r\n- πŸ› Replaced buggy kofi widget with a button image in `help.md`\r\n- πŸ’„ Update announcement icon in `main.html`\r\n- πŸ’„ Change system mode toggle icon and name in `mkdocs.yml`\r\n- πŸ“ Add failure warning in various docs about `picamera` incompatibility on 64-bit OS\r\n\r\n### CI: \r\n- πŸ’š Deprecated event_loop fixture overrides. \r\n - πŸ‘· Added new recommended approach of using `pytest.mark.asyncio(scope=\"module\")` to mark all WebGear_RTC and NetGear_Async tests as asynchronous and utilize the same event loop throughout the module.\r\n - πŸ—‘οΈ Deprecated custom `event_loop` fixture overrides in WebGear_RTC and NetGear_Async tests.\r\n - πŸ”₯ Removed redundant `pytest.mark.asyncio` decorators from several test functions.\r\n- πŸ’š Refactor event loop handling \r\n - πŸ‘· Add a new event_loop_policy fixture for pytest to override the event loop policy\r\n - πŸ”Š Log the event loop being used for debugging\r\n - πŸ”§ Mark the new fixture in relevant test functions with pytest.mark.asyncio(scope=\"module\")\r\n - ♻️ Remove unused imports and code cleanup","shortMessageHtmlLink":"πŸ”§ Deprecate on_shutdown in favor of lifespan (Fixes #397) [#398]"}},{"before":"89b1c6580d5fee39235e995b606fe6c94b918091","after":"6285688e5d2d4c924ca9f37095c39ab130004c63","ref":"refs/heads/development","pushedAt":"2024-05-20T15:01:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸš‘οΈ PiGear: Modify `PiGear` class behavior when `enforce_legacy_picamera=True` on unsupported system\n\n- ⚑️ Instead of silently disabling `picamera2` API directly, PiGear now raises an error if `picamera` is unavailable or unsupported\n- πŸ₯… Prevented incorrect initialization of `PiGear` class on unsupported 64-bit OS systems.\n\nDocs:\n- πŸ“ Add failure warning in various docs about `picamera` incompatibility on 64-bit OS","shortMessageHtmlLink":"πŸš‘οΈ PiGear: Modify PiGear class behavior when `enforce_legacy_picame…"}},{"before":"d035e4acde892673c8e734ac96f4da153a735433","after":"89b1c6580d5fee39235e995b606fe6c94b918091","ref":"refs/heads/development","pushedAt":"2024-05-19T18:08:11.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"♻️ Docs: Refactored documentation\n\n- πŸ§‘β€πŸ’» Refactored all APIs and bonus examples to use linenums and hl_lines\n - Makes it easier to highlight specific lines in code blocks\n- πŸ“ Updated remaining code examples for picamera2 and legacy picamera backends\n- πŸ› Replaced buggy kofi widget with a button image in `help.md`\n- πŸ’„ Update announcement icon in `main.html`\n- πŸ’„ Change system mode toggle icon and name in `mkdocs.yml`","shortMessageHtmlLink":"♻️ Docs: Refactored documentation"}},{"before":"993cdea66b0e4ddba20d2f506abef69a43fc0c1a","after":"d035e4acde892673c8e734ac96f4da153a735433","ref":"refs/heads/development","pushedAt":"2024-05-18T13:39:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸš‘οΈ NetGear_Async: Fix event loop initialization on Windows platforms\n\n- ⚑️ Moved the event loop initialization code to an earlier point before setting event loop policy to ensure it is set up correctly before selecting `WindowsSelectorEventLoop` policy.\n - πŸ’¬ Background: On Windows, vidgear requires the `WindowsSelectorEventLoop`, but Python 3.8 and above defaults to the `ProactorEventLoop` which is not compatible.\n- πŸ”₯ Removed redundant python version check to set `WindowsSelectorEventLoop` policy, as minimum supported version is already `3.8`.\n- πŸ’‘ Updated code comments.","shortMessageHtmlLink":"πŸš‘οΈ NetGear_Async: Fix event loop initialization on Windows platforms"}},{"before":"08b583d02a7fc27859bd98ad77713e42e971006f","after":"993cdea66b0e4ddba20d2f506abef69a43fc0c1a","ref":"refs/heads/development","pushedAt":"2024-05-16T19:42:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"🩹 NetGear_Async: Fixed event loop handling\n\n- ⚑️Modified `__init__` method to handle event loop more robustly:\n - Try to get the running event loop using `asyncio.get_running_loop()`\n - If no running event loop found, create a new one with `asyncio.new_event_loop()`\n - Log if creating a new event loop\n- πŸ§‘β€πŸ’» Changed launch method to use `self.loop.create_task()` instead of `asyncio.ensure_future()`\n - Ensures the task is created using the correct event loop instance.","shortMessageHtmlLink":"🩹 NetGear_Async: Fixed event loop handling"}},{"before":"e497ac2cf7da60c7ff4fe061a053f00d5331b0cb","after":"08b583d02a7fc27859bd98ad77713e42e971006f","ref":"refs/heads/development","pushedAt":"2024-05-15T16:39:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"⚑️ Maintenance: Refactor WebGear and WebGear RTC shutdown handling\n\n- πŸ—οΈ Replaced deprecated Starlette's `on_shutdown` parameter with an async context manager `lifespan` in WebGear and WebGear_RTC APIs.\n- 🚚 Moved shutdown logic for VideoGear and peer RTC connections to this new `lifespan` context manager.\n- πŸ“¦οΈ Added new `contextlib` import for using `asynccontextmanager`.\n\nDocs:\n- πŸ“ Update README.md with changes to JPEG compression options\n - ✏️ Replaces deprecated options (`frame_jpeg_quality`, `frame_jpeg_optimize`, `frame_jpeg_progressive`) with their newer equivalents (`jpeg_compression_quality,` `jpeg_compression_fastdct`, `jpeg_compression_fastupsample`) in WebGear usage example.","shortMessageHtmlLink":"⚑️ Maintenance: Refactor WebGear and WebGear RTC shutdown handling"}},{"before":null,"after":"e497ac2cf7da60c7ff4fe061a053f00d5331b0cb","ref":"refs/heads/development","pushedAt":"2024-05-13T18:57:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ‘· CI: Update `deploy_docs` workflow to use alias copy instead of no-redirect\n\n- πŸ’š Change mike deploy commands in `deploy_docs.yml` to use `--alias-type=copy`\n instead of `--no-redirect` for release, stable, and dev deployments\n- πŸ’¬ Update `main.html` announcement text with minor wording changes\n- ♿️ Set default version in `mkdocs.yml` to 'latest'","shortMessageHtmlLink":"πŸ‘· CI: Update deploy_docs workflow to use alias copy instead of no-r…"}},{"before":"937371504044000aef8c458e9947bf6a517da910","after":"512301db277ce8106df3fe763e6ca820b16f0627","ref":"refs/heads/gh-pages","pushedAt":"2024-05-13T18:50:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deployed e497ac2c to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1","shortMessageHtmlLink":"Deployed e497ac2 to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1"}},{"before":"e119365689b5710ac50cda0b17e0df2e8ee2f771","after":"e497ac2cf7da60c7ff4fe061a053f00d5331b0cb","ref":"refs/heads/testing","pushedAt":"2024-05-13T18:48:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ‘· CI: Update `deploy_docs` workflow to use alias copy instead of no-redirect\n\n- πŸ’š Change mike deploy commands in `deploy_docs.yml` to use `--alias-type=copy`\n instead of `--no-redirect` for release, stable, and dev deployments\n- πŸ’¬ Update `main.html` announcement text with minor wording changes\n- ♿️ Set default version in `mkdocs.yml` to 'latest'","shortMessageHtmlLink":"πŸ‘· CI: Update deploy_docs workflow to use alias copy instead of no-r…"}},{"before":"77704896b6b107d748fd4ee816b49fd96eb4edf1","after":null,"ref":"refs/heads/development","pushedAt":"2024-05-13T17:59:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"}},{"before":"a4efa4b343a79718275b889d459f0ce210d5d561","after":"e119365689b5710ac50cda0b17e0df2e8ee2f771","ref":"refs/heads/testing","pushedAt":"2024-05-13T17:59:44.000Z","pushType":"pr_merge","commitsCount":16,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"feat(PiGear): Official Support for Picamera2 API (Fixes #342) [PR #392]\n\nπŸš€ This massive update brings official support for the new Picamera2 API, unlocking powerful features for Raspberry Pi Camera Modules and limited USB camera support. \r\n\r\n### ✨Key PiGear Enhancements include:\r\n- **Seamless Python wrapper:** A robust wrapper around Picamera2 API library simplifies integration with minimal code changes for existing PiGear users.\r\n- **Enhanced camera control:** Leverages libcamera API under the hood for Raspberry Pi Camera Modules.\r\n- **Existing compatibility:** Maintains compatibility with PiGear's existing super-charged multi-threaded and colorspace manipulation framework.\r\n- **Proper Resource management:** Ensures proper resource release during PiGear termination.\r\n- **USB camera support (limited):** Provides basic functionality for USB webcams. PiGear could accurately differentiates between USB and Raspberry Pi cameras using metadata.\r\n- **Backward compatibility:** Seamlessly switches to the legacy Picamera library backend if Picamera2 is unavailable.\r\n- **Standalone functionalities:** Standalone functionalities for both legacy `picamera` and newer `picamera2` backends for clarity.\r\n- **Document Overhaul:** * \r\n- **Advanced optional parameters handling:** Handles camera configurational parameters and user-defined settings for various camera types.\r\n\t- **New optional configurationalparameters:** Currently Supports \"sensor\", \"format\", \"controls\", \"transform\", \"stride\", \"buffer_count\", and \"queue\" with sanity checks. Seperated Raspberry Pi camera module exclusive and Unified USB cameras supported optional parameters.\r\n\t- **New user-defined optional parameters:** Such as `auto_align_output_config`, `enable_verbose_logs`, and more.\r\n- **Additional changes:**\r\n\t* Logging optimization with warning for common libcamera messages\r\n\t* Lowered `framerate` minimum value to `0.0`.\r\n\t* Moved `sensor` optional parameter to commonly supported picamera2 configurational parameters.\r\n\t* Removed unsupported `bit_depth` optional parameters\r\n\t* Updated PiGear API tagline and introduction \r\n\t* Fixed colorspace typo bug\r\n\t* Fixed UnboundLocalError bug for 'picamera2' variable assigment.\r\n\t* Fixed UnboundLocalError bug for 'queue' variable assignment.\r\n\r\n### πŸ“ Documentation updates:\r\n* Added a warning advising users to disable common `libcamera` messages when logging is disabled.\r\n* Updated Zenodo badge and BibTeX entry\r\n* Added complete Picamera2 library installation instructions for `pip` and from source as a dependency. \r\n* Updated Picamera2 installation instructions _(including `apt`, `pip`, pre-installation on Raspberry Pi images, and compatibility warnings)_\r\n* Moved legacy Picamera library installation instructions to an admonition.\r\n* Removed Importing section from overview to avoid confusion in PiGear.\r\n* Overhauled mkdocs theme.\r\n * Added `unrecognized_links: ignore` to `mkdocs.yml` for validations.\r\n * Added new `features` to mkdocs.yml \r\n\t* Added custom admonition icons to mkdocs.yml \r\n\t* Migrated to new Google Analytics 4 in mkdocs.yml \r\n\t* Added new `git-authors` plugin in mkdocs.yml \r\n\t* Added new tables markdown extension \r\n\t* Added custom fences to `pymdownx.superfences` markdown extension \r\n\t* Added `line_spans: __span` and `pygments_lang_class: true` parameters to `pymdownx.highlight` markdown extension \r\n\t* Added `normalize_issue_symbols: true` to `pymdownx.magiclink` markdown extension \r\n\t* Added new mkdocs feature dependency mkdocs-git-authors-plugin\r\n\t* Replaced depreciated `materialx `with supported emoji extension.\r\n\t* Replaced permalink icon with default one \r\n* Added missing version contributors to `changelog.md`\r\n* Added new icons to make headings more readable\r\n* Replaced unsupported admonitions with supported ones \r\n* Removed all custom admonition icons and color CSS from `custom.css`\r\n* Removed Twitter section from help and docs site metadata\r\n* Fixed Ko-fi sponsorship heart hover effect in footer \r\n\t* Replaced `twemoji` heart emoji with `heart-pulse` fontawesome SVG \r\n* Fixed titles and indentations in various admonitions.\r\n* Removed Gitter community chat sidecard JS file.\r\n* Redefined spacing between sections \r\n* Fixed various typos, code comments, and hyperlinks URLs. \r\n\r\n### πŸ§‘β€πŸ’» Maintenance Updates:\r\n* Moved logging enablement before version logging for consistency in vidgear APIs.\r\n* Removed redundant boolean assignment for various APIs internal logging.\r\n* Simplified conditional statements and assignments using short-circuiting, Boolean operations, and ternary operators.\r\n* Refactored return data handling in netgear_async.py\r\n* Refactored vidgear code to improve readability, maintainability, and performance\r\n* Added `.cache` directory to `.gitignore` \r\n* Updated vidgear library version to `v0.3.3`\r\n* Dropped legacy picamera dependency in Setup.py \r\n* Improved code efficiency with short-circuiting and formatting\r\n* Updated logging practices to be more developer-friendly\r\n* Updated code highlighting in NetGear_Async Docs\r\n* Added patch for substring index bug in `get_supported_demuxers` helper method.\r\n* Updated code comments \r\n\r\n### πŸ‘·CI Updates:\r\n* Temporarily removed PiGear API from code coverage due to hardware limitations \r\n* Fixed `pip install` hash bug in Azure Pipelines CI.","shortMessageHtmlLink":"feat(PiGear): Official Support for Picamera2 API (Fixes #342) [PR #392]"}},{"before":"a73cd45ed5508fced4af7c0cc98a465a086e6119","after":"77704896b6b107d748fd4ee816b49fd96eb4edf1","ref":"refs/heads/development","pushedAt":"2024-05-13T14:59:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ’š CI: Fixing `pip install` hash bug in Azure Pipeline.","shortMessageHtmlLink":"πŸ’š CI: Fixing pip install hash bug in Azure Pipeline."}},{"before":"bcd8212907c71f1dbe7dbb3dba89528ea5e145b6","after":"a73cd45ed5508fced4af7c0cc98a465a086e6119","ref":"refs/heads/development","pushedAt":"2024-05-13T13:59:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"🎨 Docs: Updated code highlighting in NetGear_Async Docs.\n\n- ✏️ Fixed typos in hyperlink URLs.","shortMessageHtmlLink":"🎨 Docs: Updated code highlighting in NetGear_Async Docs."}},{"before":"29204177fde230fb363875caaf1ade12a82dd6be","after":"bcd8212907c71f1dbe7dbb3dba89528ea5e145b6","ref":"refs/heads/development","pushedAt":"2024-05-13T05:07:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ› fix(PiGear): Fixed UnboundLocalError: 'queue' referenced before assignment","shortMessageHtmlLink":"πŸ› fix(PiGear): Fixed UnboundLocalError: 'queue' referenced before ass…"}},{"before":"ef45b08cdfcd6ee3b5b6ca35449fae2564278ebe","after":"29204177fde230fb363875caaf1ade12a82dd6be","ref":"refs/heads/development","pushedAt":"2024-05-13T04:47:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ› fix(PiGear): UnboundLocalError: 'picamera2'","shortMessageHtmlLink":"πŸ› fix(PiGear): UnboundLocalError: 'picamera2'"}},{"before":"28a8207bc62b633c53340c66a04eac7c8f33ab44","after":"ef45b08cdfcd6ee3b5b6ca35449fae2564278ebe","ref":"refs/heads/development","pushedAt":"2024-05-12T20:18:17.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"⚑️PiGear: Enhanced `picamera2` API support and logging\n\n- πŸ§‘β€πŸ’» Renamed references from 'PiCamera2' to 'picamera2' for consistency\n- 🚩 Added option to enforce legacy picamera API with 'enforce_legacy_picamera' optional boolean parameter.\n- ⚑️Improved logging and warning messages for unsupported/custom formats.\n- ✨ Added `buffer_count` and `queue` configuration parameter options for picamera2 API.\n- πŸ—οΈ Renamed `auto_align_output_config` to `auto_align_output_size`.\n- πŸ”Š Included `buffer_count` and `queue` in `picamera2` parameter logging.\n- ✏️ Fixed a typo in the error message for Camera Module API failure.\n- πŸ’‘ Clarified comments for thread joining during `stop()`.\n- 🚸 Minor code formatting and comment updates.","shortMessageHtmlLink":"⚑️PiGear: Enhanced picamera2 API support and logging"}},{"before":"83aee850ecaa4388713c4b31a21a66d78b214aa9","after":"28a8207bc62b633c53340c66a04eac7c8f33ab44","ref":"refs/heads/development","pushedAt":"2024-04-24T18:10:12.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ—οΈ PiGear: New Picamera2 backend related changes\n\n- 🚩 Moved `sensor` optional parameter to common supported picamera2 config parameters.\n- πŸ”₯ Removed unsupported `bit_depth`, `buffer_count`, `queue` optional parameter from picamera2 config parameters.\n- πŸ₯… Added sanity checks for `sensor` optional parameter, only `output_size`, `bit_depth` config parameters are supported.\n- πŸ₯… Added sanity checks for `controls` optional parameter, only camera sensor specific config parameters extracted using `camera.camera_controls` are supported.\n- πŸ’‘ Added comments related to `controls`, `transform` and `stride` not supported with USB cameras.\n- πŸ”Š Updated logs to be more developer friendly.","shortMessageHtmlLink":"πŸ—οΈ PiGear: New Picamera2 backend related changes"}},{"before":"a4efa4b343a79718275b889d459f0ce210d5d561","after":"83aee850ecaa4388713c4b31a21a66d78b214aa9","ref":"refs/heads/development","pushedAt":"2024-04-09T18:34:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸŽ‰ feat(PiGear): Add official support for new Picamera2 API (Fixes #342)\n\n✨ This update brings official support for the new Picamera2 API, unlocking powerful features for Raspberry Pi Camera Modules and limited USB camera support.\n\nKey improvements:\n- 🚸 Seamless Python wrapper: A robust wrapper around Picamera2 API library simplifies integration with minimal code changes for existing PiGear users.\n- ⚑️ Enhanced camera control: Leverages libcamera API under the hood for Raspberry Pi Camera Modules.\n- ⚑️ Existing compatibility: Maintains compatibility with PiGear's existing super-charged multi-threaded and colorspace manipulation framework.\n- ⚑️ Resource management: Ensures proper resource release during PiGear termination.\n- ✨ USB camera support (limited): Provides basic functionality for USB webcams. PiGear could accurately differentiates between USB and Raspberry Pi cameras using metadata.\n- πŸ§‘β€πŸ’» Backward compatibility: Seamlessly switches to the legacy PiCamera library if Picamera2 is unavailable.\n- πŸ§‘β€πŸ’» Standalone functionalities: Separates functionalities for both legacy and newer APIs for clarity.\n- ⚑️ Automatic configuration management: Handles common configuration parameters and non-standard settings for various camera types.\n- New internal parameters:\n - 🚩 auto_align_output_config: Optimizes output frame configuration for the camera sensor.\n - 🚩 enable_verbose_logs: Enables more detailed logging through Picamera2.\n- Unified `format` parameter:\n - πŸ₯… Defaults to RGB888 (24-bit BGR) for Raspberry Pi cameras.\n - 🦺 Validates formats for USB cameras before handling.\n - πŸ₯… Requires explicit `colorspace` definition if `format` is not MPEG (USB cameras) or for specific formats in Raspberry Pi cameras.\n- Raspberry Pi camera exclusive parameters:\n - 🚩 Currently Supports `\"controls,\" \"queue,\" \"transform,\" \"bit_depth,\" \"buffer_count,\" \"sensor,\" and \"stride\"` with type checks.\n- ⚑️ Framerate handling: Tailored framerate handling based on camera type.\n- 🦺 Logging optimization: Added a warning advising users to disable common libcamera messages when logging is disabled.\n\nAdditional Changes:\n- πŸ’₯ Dropped legacy `picamera` dependency in `Setup.py`.\n- πŸ’‘ Improved code efficiency with short-circuiting and formatting.\n- πŸ”Š Updated logging practices.\n\nCI:\n- πŸ—οΈ Temporarily removed PiGear API from code coverage due to hardware limitations.","shortMessageHtmlLink":"πŸŽ‰ feat(PiGear): Add official support for new Picamera2 API (Fixes #342)"}},{"before":"a1268d3388655734d3064cf44a3827190d1ed2b6","after":"937371504044000aef8c458e9947bf6a517da910","ref":"refs/heads/gh-pages","pushedAt":"2023-09-28T14:19:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deployed a4efa4b3 to v0.3.3-dev with MkDocs 1.5.3 and mike 1.1.2","shortMessageHtmlLink":"Deployed a4efa4b to v0.3.3-dev with MkDocs 1.5.3 and mike 1.1.2"}},{"before":null,"after":"a4efa4b343a79718275b889d459f0ce210d5d561","ref":"refs/heads/development","pushedAt":"2023-09-28T14:17:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ“ Docs: Added instructions for compiling OpenCV with GSTREAMER backend using pip.","shortMessageHtmlLink":"πŸ“ Docs: Added instructions for compiling OpenCV with GSTREAMER backen…"}},{"before":"4497fbb2a47231a80620cf65d1e4f25053d596b7","after":"a4efa4b343a79718275b889d459f0ce210d5d561","ref":"refs/heads/testing","pushedAt":"2023-09-28T14:17:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ“ Docs: Added instructions for compiling OpenCV with GSTREAMER backend using pip.","shortMessageHtmlLink":"πŸ“ Docs: Added instructions for compiling OpenCV with GSTREAMER backen…"}},{"before":"4497fbb2a47231a80620cf65d1e4f25053d596b7","after":null,"ref":"refs/heads/development","pushedAt":"2023-09-28T14:16:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"}},{"before":null,"after":"4497fbb2a47231a80620cf65d1e4f25053d596b7","ref":"refs/heads/development","pushedAt":"2023-09-28T14:15:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸ”– Bumped version to `0.3.3`.","shortMessageHtmlLink":"πŸ”– Bumped version to 0.3.3."}},{"before":null,"after":"be6f3f017a85fb589e7d18826d529db2ae3c3176","ref":"refs/heads/v0.3.2","pushedAt":"2023-09-10T19:46:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"πŸŽ‰ Released VidGear Stable `v0.3.2` [#379]\n\n### New Features ✨\r\n- **NetGear:** \r\n * Added new `kill` parameter to `close()` method to forcefully kill ZMQ context instead of graceful exit only in the `receive` mode.\r\n * Added new `subscriber_timeout` integer optional parameter to support timeout with `pattern=2` _(or Publisher-Subscriber)_ pattern.\r\n + Receiver will exit safely if timeout defined(any value(in milliseconds) > 0), and timeout occurs in Receiver Mode with `pattern=2`.\r\n + πŸ’¬ Note: Default behavior still is to block the thread till infinite time.\r\n- **WriteGear:** \r\n * Added new `-disable_ffmpeg_window` optional Boolean flag to enable patch that prevents FFmpeg creation window from opening when building `.exe` files on Windows OS. _(PR by @ibtsam3301)_\r\n + πŸ’¬ Note: `-disable_ffmpeg_window` optional Boolean flag is only available on Windows OS with logging disabled(`logging=False`) in compression mode.\r\n + Use Case: This flag can be useful while creating an `.exe` file for a python script that uses WriteGear API. On windows even after creating the `.exe` file in windowed mode or no-console mode, the `ffmpeg.exe` command line window would pop up while its being used by WriteGear API.\r\n- **Setup.py**\r\n * Added official support for python `3.11.x` legacies.\r\n * Bumped version to `0.3.1`. \r\n- **Docs**\r\n * Added doc for `subscriber_timeout` optional Integer parameter in NetGear.\r\n * Added doc for `disable_ffmpeg_window` optional Boolean parameter in WriteGear.\r\n * Added new asset `screengear_region.png`.\r\n- **CI**\r\n * Added python 3.11 legacy support for MacOS, Windows and Linux environments.\r\n * Added kill argument to close() method in various NetGear tests.\r\n\r\n### Updates/Improvements ⚑️\r\n- Asyncio: \r\n * Formatted TemplateResponse class parameters w.r.t new changes in backend Starlette API.\r\n- Setup.py:\r\n * Readded latest patch to `uvicorn`, `starlette`, `pyzmq` dependencies.\r\n * Removed `3.7` legacy from Programming Language metadata.\r\n- Maintenance: \r\n * Added GitHub sponsors and dropped liberapay from `Funding.yml`.\r\n * Removed redundant code.\r\n- Docs:\r\n * Updated information related to Supported Dimensional Attributes in ScreenGear docs.\r\n * Updated minimum python to version `3.8` while installing vidgear in docs.\r\n * Updated API-specific dependencies in docs.\r\n * Updated changelog.md\r\n- CI:\r\n * Updated Azure Pipeline workflow. \r\n * Updated Appveyor Pipeline workflow.\r\n * Updated GitHub Actions Pipeline workflow.\r\n * Migrated python version to `3.9` in `deploy_docs.yml` workflow.\r\n * Removed deprecated python `3.7` legacy support.\r\n * Increased code coverage by updating tests.\r\n * Updated tests for `subscriber_timeout` optional Integer parameter in NetGear.\r\n * Updated tests for `disable_ffmpeg_window` optional Boolean parameter in WriteGear.\r\n\r\n### Breaking Updates/Changes πŸ’₯\r\n- [ ] Setup.py:\r\n * Removed support for python-3.7 legacies \r\n + Raised `python_requires` to `>=3.8`. Thereby python `3.7` and any before legacy are no longer supported.\r\n\r\n### Bug-fixes πŸ›\r\n- ScreenGear:\r\n * Fixed swapped region dimensions bug with dxcam backend.\r\n * Fixed \"mss\" backend disabled when `monitor` parameter is not defined.\r\n- Docs:\r\n * Fixed missing `compression_mode` flags in WriteGear API docs.\r\n * Fixed missing hyperlinks.\r\n * Fixed typos and context.\r\n- CI:\r\n * Temporary fix for AST constructor depth mismatch in pytest on python `3.11.x`, More information: pytest-dev/pytest#10874\r\n + Made temporary fix platform independent. \r\n + Extended fix to all Webgear_RTC tests.\r\n * Fixed NetGear tests bugs.\r\n * Fixed condition logic bug.","shortMessageHtmlLink":"πŸŽ‰ Released VidGear Stable v0.3.2 [#379]"}},{"before":"bad110edf7c9d8c3942038753bc8bf3d55669bfc","after":"a1268d3388655734d3064cf44a3827190d1ed2b6","ref":"refs/heads/gh-pages","pushedAt":"2023-09-10T19:44:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"Update versions.json","shortMessageHtmlLink":"Update versions.json"}},{"before":"51b94b4602aa368e11ee1c53c664d04243d77280","after":"bad110edf7c9d8c3942038753bc8bf3d55669bfc","ref":"refs/heads/gh-pages","pushedAt":"2023-09-10T15:54:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deployed be6f3f01 to v0.3.2-release with MkDocs 1.5.2 and mike 1.1.2","shortMessageHtmlLink":"Deployed be6f3f0 to v0.3.2-release with MkDocs 1.5.2 and mike 1.1.2"}},{"before":"d6319c5e8d848894eefdb51cceafa80eb1fb4446","after":"51b94b4602aa368e11ee1c53c664d04243d77280","ref":"refs/heads/gh-pages","pushedAt":"2023-09-10T15:30:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deployed 4497fbb2 to v0.3.3-dev with MkDocs 1.5.2 and mike 1.1.2","shortMessageHtmlLink":"Deployed 4497fbb to v0.3.3-dev with MkDocs 1.5.2 and mike 1.1.2"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETwcTVAA","startCursor":null,"endCursor":null}},"title":"Activity Β· abhiTronix/vidgear"}