No description
Find a file
2025-06-19 00:16:24 +02:00
.vscode add RLEVerticalExt (16 bit run length support) 2025-06-16 23:46:01 +02:00
ch32_decoder optimise ch32 code slightly 2025-06-19 00:16:24 +02:00
encoder slightly better rle variant, implement the cell based one on the pico, 16fps fits and works 2025-06-17 20:29:49 +02:00
pico_decoder cleanup 2025-06-19 00:03:28 +02:00
video start work on 320x240 screen version using the pi pico 2025-06-16 19:39:07 +02:00
.gitignore switch 8x8 cell diff to vertical 2024-04-12 17:43:49 +02:00
README.md add video link 2024-04-13 00:48:38 +02:00

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 in next to the folder for this repository.

The gdbinit file contains the device path for uploading via a Pi Pico with 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 project, but all it needs is a 128x32 SSD1306 display connected.