6 ms·
There's already a Rust AV1 encoder project you might want to look at: https://github.com/xiph/rav1e https://github.com/xiph/rav1e
by jmvalin 9y ago
There's already a Rust AV1 encoder project you might want to look at: https://github.com/xiph/rav1e https://github.com/xiph/rav1e
- BTeam 9y agoIndeed! This implementation was started by some people working on AV1 to test libaom's specification implementation correctness. There was a presentation about it at VDD17, if I remember correctly.
- FullyFunctional 9y agoInteresting, but since I could conceivably be exposed to a malicious AV1 stream, I'd value a Rust AV1 decoder even more (which might exist, I don't know).
- TD-Linux 9y agoThat's a very good point. I chose Rust more to get ergonomics and more reliable threading - security was not the primary motivation. That said, the encoder is exposed directly to the web via the MediaRecorder API.
- lossolo 9y ago> There's already a Rust AV1 encoder 80% of codebase is C. How is that Rust encoder? Seems like a binding to C AV1 encoder.
- jmvalin 9y agoThe C part is mostly for low-level functions and was brought in to help bootstrap development (it's easier to work on improving a working encoder than one that doesn't work yet). The amount of Rust code is expected to increase a lot over time, while the amount of C code is expected to either decrease or remain constant.
- TD-Linux 9y agoThe github counter is misleading - it is counting auto-generated C headers used for calling assembly code. The repo also contains a libaom submodule, but the only parts that are used are initialization tables and the transforms.
- FullyFunctional 9y agoThis hits me too on some projects of mine. Infuriating. I find wrong stats worse than no stats.
- milesrout 9y agoThe stats aren't wrong. If it isn't 'real code' then you shouldn't store it in your repository, you should autogenerate it as part of your build process.