aboutsummaryrefslogtreecommitdiff
path: root/bv1/codec-web/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
commit306f96164784a8cbf405e72fa4364d6523366e95 (patch)
tree51717fc139871baa438aad806f4923669ae0896c /bv1/codec-web/src
parent9cc089e2d6e841879e430b01d2f3d92c8820523e (diff)
downloadvideo-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst
old dir
Diffstat (limited to 'bv1/codec-web/src')
-rw-r--r--bv1/codec-web/src/lib.rs60
1 files changed, 0 insertions, 60 deletions
diff --git a/bv1/codec-web/src/lib.rs b/bv1/codec-web/src/lib.rs
deleted file mode 100644
index cb2ad3c..0000000
--- a/bv1/codec-web/src/lib.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-use bv1::{Decoder, Frame, P2};
-use std::{collections::VecDeque, sync::RwLock};
-use wasm_bindgen::prelude::*;
-
-static DECODER: RwLock<Option<State>> = RwLock::new(None);
-
-struct State {
- buffer: VecDeque<u8>,
- frame: Frame,
- decoder: Decoder,
-}
-
-// #[wasm_bindgen]
-// extern "C" {
-// #[wasm_bindgen(js_namespace = console)]
-// fn log(s: &str);
-// #[wasm_bindgen(js_namespace = console, js_name = "log")]
-// fn logs(s: String);
-// }
-
-#[wasm_bindgen(start)]
-fn panic_init() {
- std::panic::set_hook(Box::new(console_error_panic_hook::hook));
-}
-
-#[wasm_bindgen]
-pub fn decode_init(width: i32, height: i32) {
- let size = P2 {
- x: width,
- y: height,
- };
- *DECODER.write().unwrap() = Some(State {
- frame: Frame::new(size),
- decoder: Decoder::new(size),
- buffer: VecDeque::new(),
- });
-}
-
-#[wasm_bindgen]
-pub fn decode_frame(buf: &[u8], debug: bool) -> Vec<u8> {
- let mut arr = Vec::new();
- let mut g = DECODER.write().unwrap();
- let state = g.as_mut().unwrap();
- state.buffer.extend(buf.iter());
-
- state
- .decoder
- .decode_frame(&mut state.buffer, &mut state.frame, debug)
- .unwrap();
-
- for y in 0..state.frame.size.y {
- for x in 0..state.frame.size.x {
- arr.push(state.frame[P2 { x, y }].r.clamp(0, 255) as u8);
- arr.push(state.frame[P2 { x, y }].g.clamp(0, 255) as u8);
- arr.push(state.frame[P2 { x, y }].b.clamp(0, 255) as u8);
- }
- }
-
- arr
-}