Considering Rust ...for Video

This is a follow up on my last post. After playing with Rust for the first time last Saturday (thanks Casey), I did a whole bundle of reading about it the next day, Sunday. I also got some tips from Kieran O’Leary on some work that had been done in the open source media space with Rust and that sent me into a spiral and flooded my RC syllabus with links.

I had originally intended to see this project through in C because FFmpeg is written in C, and MediaConch and QCTools are both written in C++/Qt and I’ve dug around in those codebases before and worked alongside them pretty extensively. So I went in with the mindset that C is the best choice.

But the point of me taking what is essentially a sabbatical to build a video codec is primarily for educational purposes, so really I can do whatever I want. INCLUDING ABJECT FAILURE!

And what do I want? I’m switching to Rust, and here’s why!

And finally, the contestable one, is that it is totally possible to write optimal, production-ready, multimedia-quality code in Rust. Am I going to be writing that kind of code? No, definitely not. I can barely write a function and don’t even understand the basics of reading math equations that require Pandoc to be rendered to the screen. I hope to be able to correct a little bit of that in the next 11 weeks, but I am also realistic.

I’m looking forward to digging into Rust-AV, a “Pure-rust implementation of multimedia primitives and eventually demuxer, muxers and codecs” by Luca Barbato and Kostya’s work on NihAV, another personal-project multimedia framework in Rust. I’m glad people who are legit-experts on these subjects are giving this a try too and blogging about it.

Okay, time to start writing words and back to writing code (which actually means frowning and squinting at my computer reading error messages).

Advice is welcome!