{"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:1717783552.0","currentOid":""},"activityList":{"items":[{"before":"d4243ab164ed00020ba66c825a7b920ebd5c44ca","after":"fb76a2deafa7b5c09d1c39eca957da398ddbfb03","ref":"refs/heads/development","pushedAt":"2024-06-09T15:53:10.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"⚑️ WriterGear: Improve error handling in `execute_ffmpeg_cmd` method\n\n- 🎨 Instead of raising a generic `ValueError` exception, the method now raises a `ValueError` with a more descriptive error message when encountering a `BrokenPipeError` or `IOError`.\n- πŸ₯… The error handling has been updated to follow the recommendations of PEP 409 - Suppressing exception context. This ensures that the original exception context is preserved when re-raising the `ValueError`.\n- ⚑️ If logging is enabled (`self.__logging` is True), the `ValueError` is raised with the suppressed context (`from None`), effectively discarding the original exception context.\n- ⚑️ If logging is disabled, the `ValueError` is raised with the original exception context (`from e`), where `e` is the original `OSError` or `IOError` exception.","shortMessageHtmlLink":"⚑️ WriterGear: Improve error handling in execute_ffmpeg_cmd method"}},{"before":null,"after":"d4243ab164ed00020ba66c825a7b920ebd5c44ca","ref":"refs/heads/development","pushedAt":"2024-06-07T18:05:52.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":"⚑️Enhancements, Refactoring, and Maintenance Updates for StreamGear API [#401]\n\nπŸ’¬ This commit includes significant refactoring, documentation updates, and enhancements across StreamGear, WriteGear, and NetGear APIs. It introduces safer process termination methods, improved parameter handling, and enhanced documentation for better user guidance. Additionally, it addresses several bugs and improves the overall maintainability and clarity of the codebase.\r\n\r\n- Refactored stream copy handling to address errors with unsupported parameters (Fixes #396).\r\n - Moved settings for \"-vf\" and \"-aspect\" inside conditional blocks.\r\n - Added warnings and discarded these parameters in stream copy mode.\r\n - Fixed incompatibility of stream copy with Real-time Frames Mode.\r\n - Added warnings and discarded `-vcodec copy` when using this mode.\r\n- Deprecated `terminate()` method, introducing `close()` for safer process termination.\r\n - Updated documentation and tests to reflect these changes.\r\n- Introduced new `-enable_force_termination` attribute for immediate FFmpeg process termination.\r\n- Restricted `-livestream` parameter to Real-time Frames Mode only.\r\n - Disabled live streaming for video files and updated relevant logging.\r\n- Removed non-essential aspect ratio parameter to prevent unwanted distortions (Fixes #385).\r\n - Enhanced warning messages and clarified documentation.\r\n- Updated `close()` methods for handling gracefully signal interruptions on different systems with device audio streams.\r\n - Adjusted signals for graceful termination based on the operating system.\r\n\r\n#### WriteGear API:\r\n- Simplified the logic for formatting output parameters.\r\n\r\n\r\n#### NetGear API:\r\n- Fixed Secure Mode failing to work on conflicting ZMQ Contexts:\r\n - Handled \"Address in use\" error more gracefully and disabled secure mode if errors occur.\r\n - Improved handling of ZMQ Authenticator and Certificates.\r\n- Enhanced logging and error handling for secure mode.\r\n - Logged Authenticator start/stop events.\r\n- Handled socket session expiration more gracefully in `recv_handler`.\r\n- Fixed `msg_json` undefined when terminating context in the `recv_handler` method.\r\n- Ensured proper termination of the ZMQ context and socket when closing the NetGear instance.\r\n- Added Admonition for warning users about the Client's end must run before the Server's end to establish a secure connection in Secure Mode.\r\n\r\n#### Helper Class:\r\n- Added a custom deprecated decorator to mark deprecated functions and parameters.\r\n - It displays a warning message when a deprecated function or parameter is used.\r\n- Updated `extract_time` helper function regex to handle milliseconds.\r\n\r\n#### Setup\r\n- Updated setup.py to use the latest `pyzmq` version to address installation issues (Fixes #399).\r\n\r\n#### Documentation:\r\n- StreamGear Updates:\r\n - Improved the overview section's description and wording.\r\n - Updated usage examples for both Single-Source Mode and Real-time Frames Mode.\r\n - Updated StreamGear usage examples for device audio input.\r\n - Refactored sections for Live Streaming usage.\r\n - Added warning for unsupported `-livestream` parameter in Single-Source Mode.\r\n - Updated usage example for device video source.\r\n - Addressed deprecation of the `terminate()` method in favor of the new `close()` method.\r\n - Updated respective notices for the deprecated `terminate()` method and `rgb_mode` parameter.\r\n - Added the use of new `-enable_force_termination` parameter.\r\n - Added a new FAQ entry about the deprecated `rgb_mode` parameter.\r\n - Added a deprecation warning admonition for the `rgb_mode` parameter in the `stream()` method.\r\n - Removed the obsolete usage example for deprecation RGB mode with StreamGear.\r\n - Added documentation and usage of the new `-enable_force_termination` parameter.\r\n - Modified the warning message to mention that forced termination can cause corrupted output in certain scenarios.\r\n - Updated the docstring for the `stream()` method and `transcode_source()` method.\r\n - Refactored the StreamGear API Parameters documentation to enhance clarity and readability.\r\n - Refined the description of the `-streams` attribute of the StreamGear API.\r\n- Updated the documentation for the `-disable_force_termination` parameter in WriteGear API.\r\n- Improved overall documentation quality, including enhancing clarity, readability, consistency, and precision.\r\n- Added detailed explanations, practical examples, best practices, and clearer usage patterns.\r\n- Fixed various issues like typos, formatting errors, code highlighting issues, and grammar inconsistencies.\r\n- Updated sections, code examples, admonitions, and comments for better clarity and accuracy.\r\n- Fixed minor typo in `js_hook.py`.\r\n\r\n#### CI\r\n- Improved parameterized test cases to support floating point values.\r\n- Fixed various typos and code issues in tests.\r\n- Updated StreamGear tests to use the new `close()` method instead of the deprecated terminate() method.\r\n- Updated tests of various APIs for better coverage and reliability.\r\n- Enabled `kill=True` in `close()` in NetGear Tests.\r\n- Fixed expected duration value in parameterized test case from `8` to `8.44` since `test_extract_time` function now supports floating point values.\r\n- Fixed `test_secure_mode` NetGear test:\r\n - Added `\"127.0.0.1\"` address to allow common endpoint for connection.\r\n - Added `\"jpeg_compression\":False` to disable frame compression, allowing frame to be the same while assertion.\r\n\r\n\r\n#### Maintenance:\r\n- Applied short-circuiting to simplify code across various APIs and tests.\r\n- Improved logging, parameter validation, and added descriptive dialogs across various APIs.","shortMessageHtmlLink":"⚑️Enhancements, Refactoring, and Maintenance Updates for StreamGear A…"}},{"before":"89e19d489d20ac679080dfce43c5a5217ed81f8c","after":"cb3929933973a0d5716c14d79fe13e5069307348","ref":"refs/heads/gh-pages","pushedAt":"2024-06-07T15:58:04.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 d4243ab1 to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1","shortMessageHtmlLink":"Deployed d4243ab to v0.3.3-dev with MkDocs 1.6.0 and mike 2.1.1"}},{"before":"c1014022531c34ed6b24c14826921d74e2688fbd","after":null,"ref":"refs/heads/development","pushedAt":"2024-06-07T15:56:47.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":"20dec0accda1ca9a850d91bcec194184176f1b70","after":"d4243ab164ed00020ba66c825a7b920ebd5c44ca","ref":"refs/heads/testing","pushedAt":"2024-06-07T15:56:43.000Z","pushType":"pr_merge","commitsCount":30,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"⚑️Enhancements, Refactoring, and Maintenance Updates for StreamGear API [#401]\n\nπŸ’¬ This commit includes significant refactoring, documentation updates, and enhancements across StreamGear, WriteGear, and NetGear APIs. It introduces safer process termination methods, improved parameter handling, and enhanced documentation for better user guidance. Additionally, it addresses several bugs and improves the overall maintainability and clarity of the codebase.\r\n\r\n- Refactored stream copy handling to address errors with unsupported parameters (Fixes #396).\r\n - Moved settings for \"-vf\" and \"-aspect\" inside conditional blocks.\r\n - Added warnings and discarded these parameters in stream copy mode.\r\n - Fixed incompatibility of stream copy with Real-time Frames Mode.\r\n - Added warnings and discarded `-vcodec copy` when using this mode.\r\n- Deprecated `terminate()` method, introducing `close()` for safer process termination.\r\n - Updated documentation and tests to reflect these changes.\r\n- Introduced new `-enable_force_termination` attribute for immediate FFmpeg process termination.\r\n- Restricted `-livestream` parameter to Real-time Frames Mode only.\r\n - Disabled live streaming for video files and updated relevant logging.\r\n- Removed non-essential aspect ratio parameter to prevent unwanted distortions (Fixes #385).\r\n - Enhanced warning messages and clarified documentation.\r\n- Updated `close()` methods for handling gracefully signal interruptions on different systems with device audio streams.\r\n - Adjusted signals for graceful termination based on the operating system.\r\n\r\n#### WriteGear API:\r\n- Simplified the logic for formatting output parameters.\r\n\r\n\r\n#### NetGear API:\r\n- Fixed Secure Mode failing to work on conflicting ZMQ Contexts:\r\n - Handled \"Address in use\" error more gracefully and disabled secure mode if errors occur.\r\n - Improved handling of ZMQ Authenticator and Certificates.\r\n- Enhanced logging and error handling for secure mode.\r\n - Logged Authenticator start/stop events.\r\n- Handled socket session expiration more gracefully in `recv_handler`.\r\n- Fixed `msg_json` undefined when terminating context in the `recv_handler` method.\r\n- Ensured proper termination of the ZMQ context and socket when closing the NetGear instance.\r\n- Added Admonition for warning users about the Client's end must run before the Server's end to establish a secure connection in Secure Mode.\r\n\r\n#### Helper Class:\r\n- Added a custom deprecated decorator to mark deprecated functions and parameters.\r\n - It displays a warning message when a deprecated function or parameter is used.\r\n- Updated `extract_time` helper function regex to handle milliseconds.\r\n\r\n#### Setup\r\n- Updated setup.py to use the latest `pyzmq` version to address installation issues (Fixes #399).\r\n\r\n#### Documentation:\r\n- StreamGear Updates:\r\n - Improved the overview section's description and wording.\r\n - Updated usage examples for both Single-Source Mode and Real-time Frames Mode.\r\n - Updated StreamGear usage examples for device audio input.\r\n - Refactored sections for Live Streaming usage.\r\n - Added warning for unsupported `-livestream` parameter in Single-Source Mode.\r\n - Updated usage example for device video source.\r\n - Addressed deprecation of the `terminate()` method in favor of the new `close()` method.\r\n - Updated respective notices for the deprecated `terminate()` method and `rgb_mode` parameter.\r\n - Added the use of new `-enable_force_termination` parameter.\r\n - Added a new FAQ entry about the deprecated `rgb_mode` parameter.\r\n - Added a deprecation warning admonition for the `rgb_mode` parameter in the `stream()` method.\r\n - Removed the obsolete usage example for deprecation RGB mode with StreamGear.\r\n - Added documentation and usage of the new `-enable_force_termination` parameter.\r\n - Modified the warning message to mention that forced termination can cause corrupted output in certain scenarios.\r\n - Updated the docstring for the `stream()` method and `transcode_source()` method.\r\n - Refactored the StreamGear API Parameters documentation to enhance clarity and readability.\r\n - Refined the description of the `-streams` attribute of the StreamGear API.\r\n- Updated the documentation for the `-disable_force_termination` parameter in WriteGear API.\r\n- Improved overall documentation quality, including enhancing clarity, readability, consistency, and precision.\r\n- Added detailed explanations, practical examples, best practices, and clearer usage patterns.\r\n- Fixed various issues like typos, formatting errors, code highlighting issues, and grammar inconsistencies.\r\n- Updated sections, code examples, admonitions, and comments for better clarity and accuracy.\r\n- Fixed minor typo in `js_hook.py`.\r\n\r\n#### CI\r\n- Improved parameterized test cases to support floating point values.\r\n- Fixed various typos and code issues in tests.\r\n- Updated StreamGear tests to use the new `close()` method instead of the deprecated terminate() method.\r\n- Updated tests of various APIs for better coverage and reliability.\r\n- Enabled `kill=True` in `close()` in NetGear Tests.\r\n- Fixed expected duration value in parameterized test case from `8` to `8.44` since `test_extract_time` function now supports floating point values.\r\n- Fixed `test_secure_mode` NetGear test:\r\n - Added `\"127.0.0.1\"` address to allow common endpoint for connection.\r\n - Added `\"jpeg_compression\":False` to disable frame compression, allowing frame to be the same while assertion.\r\n\r\n\r\n#### Maintenance:\r\n- Applied short-circuiting to simplify code across various APIs and tests.\r\n- Improved logging, parameter validation, and added descriptive dialogs across various APIs.","shortMessageHtmlLink":"⚑️Enhancements, Refactoring, and Maintenance Updates for StreamGear A…"}},{"before":"1e8d0b5621b51f4c8790dec86a74822717b84cd8","after":"c1014022531c34ed6b24c14826921d74e2688fbd","ref":"refs/heads/development","pushedAt":"2024-06-06T06:32:48.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: Reverted Handle graceful termination of ZMQ Context.\n\nπŸ“ Docs: Fixed typos in admonitions.","shortMessageHtmlLink":"βͺ️ NetGear: Reverted Handle graceful termination of ZMQ Context."}},{"before":"0b0de0b14a7eb8cef72313b8de565772aca57f98","after":"1e8d0b5621b51f4c8790dec86a74822717b84cd8","ref":"refs/heads/development","pushedAt":"2024-06-06T06:14:05.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":"πŸ’š CI: Fixed `test_secure_mode` test\n\n- πŸ‘· Added `\"127.0.0.1\"` address to allow common endpoint for connection.\n- πŸ‘· Added `\"jpeg_compression\":False` to disable frame compression, allowing frame to be same while assertion.\n- βͺ️ Reverted skip condition for Windows platform when PyZMQ version `> 24.0.1`.\n- β˜‚οΈ Improved code coverage.","shortMessageHtmlLink":"πŸ’š CI: Fixed test_secure_mode test"}},{"before":"46c9897c1257626e6133ba6e57012e41d074fd61","after":"0b0de0b14a7eb8cef72313b8de565772aca57f98","ref":"refs/heads/development","pushedAt":"2024-06-01T19:18:45.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: Improved code coverage for StreamGear and WriteGear\n\n⚑️ StreamGear: Discarded invalid audio stream.","shortMessageHtmlLink":"β˜‚οΈ CI: Improved code coverage for StreamGear and WriteGear"}},{"before":"15c4914a34f338a773e2f82cbb2fe76b6e0677ab","after":"46c9897c1257626e6133ba6e57012e41d074fd61","ref":"refs/heads/development","pushedAt":"2024-06-01T17:49:05.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":"πŸš‘οΈ StreamGear: Restricted terminating the FFmpeg process to device audio streams only.\n\nWriteGear:\n- βͺ️ Reverted terminating the FFmpeg process in the `close` method, handled by `terminate()`","shortMessageHtmlLink":"πŸš‘οΈ StreamGear: Restricted terminating the FFmpeg process to device au…"}},{"before":"40881325429a5728e3d13da981b3ea233eec7c48","after":"15c4914a34f338a773e2f82cbb2fe76b6e0677ab","ref":"refs/heads/development","pushedAt":"2024-06-01T16:44:24.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: Reverted Handle graceful termination of ZMQ Context.\n\n- πŸ‘· CI: Applied short-circuiting to simplify code in NetGear Tests.","shortMessageHtmlLink":"βͺ️ NetGear: Reverted Handle graceful termination of ZMQ Context."}},{"before":"cbff3322e940f9797697dfaa4b159b63af043602","after":"40881325429a5728e3d13da981b3ea233eec7c48","ref":"refs/heads/development","pushedAt":"2024-06-01T16:16:28.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: Enabled `kill=True` in `close()` in NetGear Tests","shortMessageHtmlLink":"πŸ’š CI: Enabled kill=True in close() in NetGear Tests"}},{"before":"355596af4efa46f5c2b6a78076a7bc7f6f7ef826","after":"cbff3322e940f9797697dfaa4b159b63af043602","ref":"refs/heads/development","pushedAt":"2024-06-01T15:58:44.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: Fixed typos in NetGear Tests","shortMessageHtmlLink":"πŸ’š CI: Fixed typos in NetGear Tests"}},{"before":"2873e75012e09de66f5c8ca2e94d27de130cbcad","after":"355596af4efa46f5c2b6a78076a7bc7f6f7ef826","ref":"refs/heads/development","pushedAt":"2024-06-01T14:19:03.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: Fixed skip condition on wrong NetGear test.","shortMessageHtmlLink":"πŸ’š CI: Fixed skip condition on wrong NetGear test."}},{"before":"0a0105cb0074865e9d81ac9cfcc5b17459041e6a","after":"2873e75012e09de66f5c8ca2e94d27de130cbcad","ref":"refs/heads/development","pushedAt":"2024-06-01T14:11:09.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 warning for Secure Mode issues with PyZMQ `versions > 24.0.1` on Windows.\n\n- πŸ§‘β€πŸ’» Added warnings about Secure Mode issues with PyZMQ versions > 24.0.1 on Windows in NetGear API:\n - πŸ’¬ Secure Mode functionality is broken on Windows with PyZMQ versions > 24.0.1 due to changes in `zmq.auth` module.\n - πŸ’¬ Users should downgrade to PyZMQ version <= 24.0.1 to use Secure Mode on Windows.\n- πŸ§‘β€πŸ’» Added warnings about Stream copy (`-vcodec copy`) is not compatible with Real-time Frames Mode as this mode requires re-encoding of incoming frames in StreamGear API.\n - πŸ’‘ Refined warning message for stream copy compatibility for clarity.\n\nCI:\n- πŸ‘· Added a skip condition in `test_netgear.py` for Windows platform when PyZMQ version > 24.0.1:\n - Ensured relevant tests are skipped on incompatible PyZMQ versions to prevent test failures.\n\nNetGear:\n- βͺ️ Reverted Handle graceful termination of ZMQ Context.","shortMessageHtmlLink":"πŸ“ Docs: Added warning for Secure Mode issues with PyZMQ `versions > 2…"}},{"before":"3fbd610d40db6c9337962662cf996a5d7178bf81","after":"0a0105cb0074865e9d81ac9cfcc5b17459041e6a","ref":"refs/heads/development","pushedAt":"2024-06-01T07:01: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":"⚑️NetGear: Handle graceful termination of ZMQ Context\n\n- βͺ️ Reverted Isolated contexts for Secure Modes","shortMessageHtmlLink":"⚑️NetGear: Handle graceful termination of ZMQ Context"}},{"before":"e7f887a47390037f37101f403aeb01d379b94580","after":"3fbd610d40db6c9337962662cf996a5d7178bf81","ref":"refs/heads/development","pushedAt":"2024-06-01T06:46:11.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: Handle graceful termination of ZMQ AuthenticationThread","shortMessageHtmlLink":"⚑️NetGear: Handle graceful termination of ZMQ AuthenticationThread"}},{"before":"428621dac7cfd19185393c57b6d4360f74174ec2","after":"e7f887a47390037f37101f403aeb01d379b94580","ref":"refs/heads/development","pushedAt":"2024-06-01T06:00:18.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: Isolated contexts for Secure Modes\n\n- πŸ› Updated logic to use `zmq.Context()` instead of `zmq.Context.instance()` to isolate contexts in order to fix `zmq.error.ZMQError: Address in use (addr='inproc://zeromq.zap.01')` bug.\n- ♻️ Refactored code.\n\nCI:\n- πŸ’š Fixed typos in NetGear Tests method names.","shortMessageHtmlLink":"πŸš‘οΈ NetGear: Isolated contexts for Secure Modes"}},{"before":"b9b0a4b6a2c9f54f131465a7fb5fc1e0422eb6ba","after":"428621dac7cfd19185393c57b6d4360f74174ec2","ref":"refs/heads/development","pushedAt":"2024-05-31T18:15:54.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":"πŸ—οΈ StreamGear: Fixed stream `copy` incompatible with Real-time Frames Mode\n\nπŸš‘οΈ This commit addresses an bug where the `-vcodec copy` parameter was\nincorrectly defined when using the Real-time Frames Mode in StreamGear.\nStream copy is not compatible with this mode since it requires encoding\nthe frames before streaming. Additionally, If the Real-time Frames Mode\nis active and `-vcodec copy` is specified, a warning log message is printed\nto notify the user that the stream copy parameter is being discarded.","shortMessageHtmlLink":"πŸ—οΈ StreamGear: Fixed stream copy incompatible with Real-time Frames…"}},{"before":"6b2532270571a7e9dc8d95aa88411071b17f16ec","after":"b9b0a4b6a2c9f54f131465a7fb5fc1e0422eb6ba","ref":"refs/heads/development","pushedAt":"2024-05-31T17:25: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":"πŸš‘οΈ StreamGear: Fixed `UnboundLocalError` for `seg_duration` in `generate_dash_stream` method.\n\n- πŸ”Š Updated logging message format in `evaluate_streams` method of for consistency.\n\nWriteGear:\n- πŸ› Fixed dictionary comprehension logic to strip only string values.\n\nCI:\n- πŸ’š Fixed expected duration value in parameterized test case from `8` to `8.44` since `test_extract_time` function now supports floating point values.","shortMessageHtmlLink":"πŸš‘οΈ StreamGear: Fixed UnboundLocalError for seg_duration in `gener…"}},{"before":"abeb9550ad54707e352a178f745657715f09bef6","after":"6b2532270571a7e9dc8d95aa88411071b17f16ec","ref":"refs/heads/development","pushedAt":"2024-05-31T16:56:52.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":"πŸš‘οΈ Maintenance: Handled signal interruption for non-Windows systems\n\nπŸ’¬ The `close()` methods in StreamGear and WriteGear were sending the\n`CTRL_BREAK_EVENT` signal to terminate the underlying process, which only\nworks on Windows systems. This commit modifies the code to send the\nappropriate signal based on the operating system:\n\n- For Windows, it sends the `CTRL_BREAK_EVENT` signal\n- For non-Windows systems, it sends the `SIGINT` signal","shortMessageHtmlLink":"πŸš‘οΈ Maintenance: Handled signal interruption for non-Windows systems"}},{"before":"bfc521d824b64268db23976701be4f34c87bfea0","after":"abeb9550ad54707e352a178f745657715f09bef6","ref":"refs/heads/development","pushedAt":"2024-05-31T15:10:21.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: Improved code coverage for StreamGear\n\n- πŸ”₯ Removed unused imports.","shortMessageHtmlLink":"β˜‚οΈ CI: Improved code coverage for StreamGear"}},{"before":"20dec0accda1ca9a850d91bcec194184176f1b70","after":"bfc521d824b64268db23976701be4f34c87bfea0","ref":"refs/heads/development","pushedAt":"2024-05-30T19:10:50.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"abhiTronix","name":"Abhishek Thakur","path":"/abhiTronix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34266896?s=80&v=4"},"commit":{"message":"♻️ Docs: Refactored the StreamGear API Parameters documentation to enhance clarity and readability\n\n- πŸ§‘β€πŸ’» Simplified and clarified descriptions for `output`, `format`, `custom_ffmpeg`, and `stream_params` parameters.\n- πŸ“ Improved examples for defining output paths, filenames, and URLs.\n- 🚸 Enhanced warnings, tips, and information admonitions for better user guidance.\n- 🎨 Reformatted code examples to provide clearer usage patterns.\n- ✏️ Updated formatting and grammar for consistency and precision.","shortMessageHtmlLink":"♻️ Docs: Refactored the StreamGear API Parameters documentation to en…"}},{"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"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYG8sJQA","startCursor":null,"endCursor":null}},"title":"Activity Β· abhiTronix/vidgear"}