aboutsummaryrefslogtreecommitdiff
path: root/lvc/codec-web/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-03-09 22:48:33 +0100
committermetamuffin <metamuffin@disroot.org>2023-03-09 22:48:33 +0100
commit680b08e6b9d64284b7992fb52a23e5f891291406 (patch)
treeabe30a9f18be09ef931b4b6357d216f6ba982095 /lvc/codec-web/src/lib.rs
parentc45f80a14ecd00914eb1d4e8f628b74a713667ba (diff)
downloadvideo-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar
video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.bz2
video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.zst
rename + readme
Diffstat (limited to 'lvc/codec-web/src/lib.rs')
-rw-r--r--lvc/codec-web/src/lib.rs60
1 files changed, 0 insertions, 60 deletions
diff --git a/lvc/codec-web/src/lib.rs b/lvc/codec-web/src/lib.rs
deleted file mode 100644
index cb2ad3c..0000000
--- a/lvc/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
-}