This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) | dependencies |
patch | `1.44.1` -> `1.44.2` |
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) |
dev-dependencies | patch | `1.44.1` -> `1.44.2` |
---
> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.
### GitHub Vulnerability Alerts
####
[GHSA-rr8g-9fpq-6wmg](https://redirect.github.com/tokio-rs/tokio/pull/7232)
The broadcast channel internally calls `clone` on the stored value when
receiving it, and only requires `T:Send`. This means that using the
broadcast channel with values that are `Send` but not `Sync` can trigger
unsoundness if the `clone` implementation makes use of the value being
`!Sync`.
Thank you to Austin Bonander for finding and reporting this issue.
---
### Release Notes
<details>
<summary>tokio-rs/tokio (tokio)</summary>
###
[`v1.44.2`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.44.2):
Tokio v1.44.2
[Compare
Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.44.1...tokio-1.44.2)
This release fixes a soundness issue in the broadcast channel. The
channel
accepts values that are `Send` but `!Sync`. Previously, the channel
called
`clone()` on these values without synchronizing. This release fixes the
channel
by synchronizing calls to `.clone()` (Thanks Austin Bonander for finding
and
reporting the issue).
##### Fixed
- sync: synchronize `clone()` call in broadcast channel ([#​7232])
[#​7232]: https://redirect.github.com/tokio-rs/tokio/pull/7232
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dora-rs/dora).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This pull request introduces a new Dora node for real-time object
tracking using Facebook's CoTracker model addressing #921 . The changes
include new features, configuration files, and documentation to support
the implementation and usage of this node.
Key changes include:
### New Features and Implementation:
* Added the main implementation of the `VideoTrackingNode` class in
`dora_cotracker/main.py`, which includes methods for initializing the
CoTracker model, handling mouse clicks for point selection, processing
video frames for tracking, and running the main loop.
### Configuration and Setup:
* Added a `pyproject.toml` file to define the project metadata,
dependencies, and development dependencies, as well as to configure the
`ruff` linter.
* Created a `demo.yml` configuration file to set up a sample data flow
for the node, including camera input, tracker, and display nodes.
### Documentation and Testing:
* Added a comprehensive `README.md` file that includes an overview of
the node, installation instructions, usage examples, API reference, and
development guidelines.
* Added a basic test file `tests/test_dora_cotracker.py` to ensure the
main function can be imported and run, catching runtime exceptions when
not running in a Dora dataflow.
This PR makes it possible to use `rav1e` and `dav1d` to pass av1 encoded
frame very easily making it possible to reduce the size by ~100x
compared to raw and ~10x compared to jpeg.
This makes it possible to send image in unstable network like <10MB/s
instead of ~100MB/s, which is the case for 5G cellular network as well
as most public wifi.
I'm also adding support for depth frame encoding in 12bit AV1 making it
possible to stream pointcloud over the network which is very hard to do
in other languages than Rust,