# video compressor and player for the ch32v003 with an SSD1306 32x128 OLED display
https://www.youtube.com/watch?v=G0eonL14tCQ

Put a webm file in `video/` and run `./convert <framerate>` to convert the video to a sequence of 32x40 images.

Run `cd encoder && cargo run` to convert to bytes, this will be exported to `data.h`.

Tweak framerate or MAX_ERROR in `main.rs` until the total size fits the 16k flash alongside the decoder.

By default it's tuned for bad apple.

## building ch32_decoder
If you are not on Linux, good luck.

You will need [ch32v003fun](https://github.com/cnlohr/ch32v003fun/) in next to the folder for this repository.

The `gdbinit` file contains the device path for uploading via a Pi Pico with [PicoRVD](https://github.com/aappleby/PicoRVD). This is triggered with `make flash`.

If you have an official WCH programmer you can probably run `make cv_flash` to use minchlink from ch32v003fun, but I can't test this.

## hardware
Made for my [ch32_oled](https://git.crispypin.cc/CrispyPin/ch32_oled) project, but all it needs is a 128x32 SSD1306 display connected.
