-
Notifications
You must be signed in to change notification settings - Fork 368
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
More native Video support #7298
Comments
Current plan is to use https://github.com/rerun-io/rav1d-rs (a fork of We're uncertain about how to support other codecs, at least VP8/9 should be easily doable in a similar way as AV1, but H.264/265 is a bit of a special case. |
(Note that I made the same mistake as in |
@jprochazk I summarized my understanding of |
### What * Required for #7298 ### TODO * [x] Fix the debug-assertion * [x] Fix all new clippy lints * [x] Add more clippy lints thats been added in 1.77, 1.78, 1.79 ### MiMalloc bug Debug assertions are now part of stdlib: https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html#asserting-unsafe-preconditions, making us hit this bug in MiMalloc: * purpleprotocol/mimalloc_rust#128 I also opened this issue on the standard library: * rust-lang/rust#131189 ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using examples from latest `main` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7563?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7563?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! * [x] If have noted any breaking changes to the log API in `CHANGELOG.md` and the migration guide - [PR Build Summary](https://build.rerun.io/pr/7563) - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) To run all checks from `main`, comment on the PR with `@rerun-bot full-check`. --------- Co-authored-by: Andreas Reich <[email protected]>
### What * Part of #7298 ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using examples from latest `main` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7577?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7577?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! * [x] If have noted any breaking changes to the log API in `CHANGELOG.md` and the migration guide - [PR Build Summary](https://build.rerun.io/pr/7577) - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) To run all checks from `main`, comment on the PR with `@rerun-bot full-check`.
### What * Part of #7298 ### What Supports native decoding of AV1 videos. Downsides: it is extremely slow in debug builds In release builds it is ok, but there is still A LOT of performance on the table. ### TODO before merging * #7563 * [x] Re-add `nasm` to `pixi.toml`, because it is needed to compile `rav1d` * [x] Make the asm-features of `rav1d` opt-in so users don't need `nasm` to compile `rerun` * [x] Put it behind a feature flag, in case compiling `rav1d` is difficult on some platforms * [x] Fix error handling so we don't crash on bad videos * ~Fix performance of debug builds, if possible~ * `dav1d` is always fast, but `rav1d` is super-slow in debug builds * [x] Or show error message in debug builds * [x] Review moved mp4 demux code to see nothing was lost ### Proof https://github.com/user-attachments/assets/1b1a0a03-9fac-4fa2-bcae-7beb9591067c ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using examples from latest `main` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7557?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7557?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! * [x] If have noted any breaking changes to the log API in `CHANGELOG.md` and the migration guide - [PR Build Summary](https://build.rerun.io/pr/7557) - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) To run all checks from `main`, comment on the PR with `@rerun-bot full-check`. --------- Co-authored-by: jprochazk <[email protected]> Co-authored-by: Andreas Reich <[email protected]>
β Av1
We currently support AV1 on native, using a fast software decoder
rav1d/dav1d
Β #7605We currently use
re_rav1d
for this, but if possible we want to change to:ffmpeg
CLIΒ #7607ποΈ H.264
Work on H.264 support is underway in
An alternative we haven't explored is to use
β Other codecs
Should be doable with the same approach we're using for H.264:
ffmpeg
CLIΒ #7607The text was updated successfully, but these errors were encountered: