| Crates.io | gv_video |
| lib.rs | gv_video |
| version | 0.1.11 |
| created_at | 2024-04-16 21:55:16.738835+00 |
| updated_at | 2025-01-25 05:52:50.976694+00 |
| description | GV Video Decoder for Rust |
| homepage | |
| repository | https://github.com/funatsufumiya/rust-gv-video |
| max_upload_size | |
| id | 1210710 |
| size | 43,452 |
Port of GV video (Extreme Gpu Friendly Video Format) https://github.com/Ushio/ofxExtremeGpuVideo#binary-file-format-gv decoder for Rust.
GV video format is nutshell LZ4 compressed GPU textures with stored address tables.
This crate provides both:
lz4_flex crate)BC1(DXT1)/BC2(DXT3)/BC3(DXT5)/BC7 decoder (using texture2ddecoder crate)But recommended NOT to use BC1/BC2/BC3/BC7 decoder because it's CPU processing (slow).
Instead, you should pass (LZ4 decompressed) GPU texture directly to game engine or rendering engine.
read_frame_compressed(index) and read_frame_compressed_at(time) methods. (fastest way for GPU texture upload)read_frame(index) and read_frame_at(time) methods. (easy for BGRA texture checking and CPU processing)0: uint32_t width
4: uint32_t height
8: uint32_t frame count
12: float fps
16: uint32_t format (DXT1 = 1, DXT3 = 3, DXT5 = 5, BC7 = 7)
20: uint32_t frame bytes
24: raw frame storage (lz4 compressed)
eof - (frame count) * 16: [(uint64_t, uint64_t)..<frame count] (address, size) of lz4, address is zero based from file head
decode_bc2_alpha, decode_bc2_block functions in bc2_decoder included from https://github.com/autergame/texture2ddecoder/commit/6a5e8eaa8a146a0ed117fc245ebfbefa06abe8a5, dual licensed under MIT and Apache-2.0.