avirus

Crates.ioavirus
lib.rsavirus
version0.2.5
sourcesrc
created_at2018-07-25 05:46:13.109304
updated_at2024-03-20 19:51:18.89111
descriptionA Rust library for manipulating AVI files for purposes such as glitch art.
homepage
repositoryhttps://github.com/chinatsu/avirus/
max_upload_size
id75856
size19,416
Kent Daleng (chinatsu)

documentation

README

avirus

avirus is a library for manipulating AVI files for purposes such as glitch art.

[dependencies]
avirus = "0.2.5"

Examples

avirus::AVI takes an existing AVI file and loads it into memory for manipulation. avirus::frames exposes a meta field, which holds simple structures with metadata about a frame. This field can be iterated over, and modified to create odd effects in the output file. When the AVI file's output() function is called, a new file will be rebuilt with the modified metadata.

extern crate avirus;

use avirus::AVI;
use avirus::frame::Frame;

fn main() {
    let mut avi = AVI::new("sample.avi").unwrap();
    let mut new_meta: Vec<Frame> = Vec::new();
    for frame in &mut avi.frames.meta {
        if frame.is_pframe() || frame.is_audioframe() {
            for _ in 0..3 {
                new_meta.push(*frame);
            }
        }
        else {
            new_meta.push(*frame);
        }
    }
    avi.frames.meta = new_meta;
    avi.output("sample_output.avi").unwrap();
}
Commit count: 26

cargo fmt