diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
commit | 306f96164784a8cbf405e72fa4364d6523366e95 (patch) | |
tree | 51717fc139871baa438aad806f4923669ae0896c /old/dhwt-codec/src/bin/import.rs | |
parent | 9cc089e2d6e841879e430b01d2f3d92c8820523e (diff) | |
download | video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2 video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst |
old dir
Diffstat (limited to 'old/dhwt-codec/src/bin/import.rs')
-rw-r--r-- | old/dhwt-codec/src/bin/import.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/old/dhwt-codec/src/bin/import.rs b/old/dhwt-codec/src/bin/import.rs new file mode 100644 index 0000000..cd2a35e --- /dev/null +++ b/old/dhwt-codec/src/bin/import.rs @@ -0,0 +1,51 @@ +use clap::Parser; +use dhwt_codec::io::{outfile, write_videobuf, Value}; +use std::io::{stdin, Read}; + +#[derive(Parser)] +#[clap(about)] +struct ImportArgs { + #[arg(short)] + x: usize, + #[arg(short)] + y: usize, + #[arg(short)] + z: usize, + + #[arg(short, long, default_value = "3")] + channels: usize, + + outfile: String, +} + +fn main() { + let args = ImportArgs::parse(); + + let mut rawbuf = (0..(args.x * args.y * args.z * args.channels)) + .map(|_| 0u8) + .collect::<Vec<_>>(); + stdin().read_exact(&mut rawbuf).unwrap(); + + let mut o = outfile(&args.outfile); + + for c in 0..args.channels { + let mut cols = vec![]; + for x in 0..args.x { + let mut col = vec![]; + for y in 0..args.y { + let mut span = vec![]; + for z in 0..args.z { + span.push( + rawbuf[c + + (x * args.channels) + + (y * args.channels * args.x) + + (z * args.channels * args.x * args.y)] as Value, + ); + } + col.push(span); + } + cols.push(col) + } + write_videobuf(&mut o, cols) + } +} |