aboutsummaryrefslogtreecommitdiff
path: root/bv1/codec-web/web/main.ts
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/web/main.ts
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/web/main.ts')
-rw-r--r--bv1/codec-web/web/main.ts69
1 files changed, 0 insertions, 69 deletions
diff --git a/bv1/codec-web/web/main.ts b/bv1/codec-web/web/main.ts
deleted file mode 100644
index b1b1df7..0000000
--- a/bv1/codec-web/web/main.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-/// <reference lib="dom" />
-
-import init, { decode_frame, decode_init } from "./codec_web.js"
-console.log("init wasm");
-await init()
-console.log("done");
-
-index("..")
-
-async function index(url: string) {
- const res = await fetch(url)
- if (!res.ok) throw new Error("not ok");
- document.body.innerHTML = await res.text();
- const h1 = document.createElement("h1")
- h1.textContent = "bv1 web player"
- document.body.prepend(h1)
- document.body.querySelectorAll("a").forEach(e => {
- const u = url + "/" + e.textContent
- e.onclick = ev => {
- ev.preventDefault()
- if (!u.endsWith(".bv1")) return alert("thats not bv1!")
- document.body.innerHTML = ""
- play(u.toString())
- }
- })
-}
-
-async function play(url: string) {
- decode_init(1920, 1080)
- document.body.innerText = "downloading…"
- const res = await fetch(url)
- if (!res.ok) throw new Error("not ok");
- let buf: Uint8Array | undefined = new Uint8Array(await res.arrayBuffer())
- document.body.innerText = ""
-
- const canvas = document.createElement("canvas")
- canvas.width = 1920
- canvas.height = 1080
- document.body.append(canvas)
- document.body.style.backgroundColor = "#111"
- const ctx = canvas.getContext("2d")!
- let debug = false;
-
- document.body.addEventListener("keydown", ev => {
- if (ev.code == "KeyD") debug = !debug;
- })
-
- setInterval(() => {
- const frame = decode_frame(buf ?? new Uint8Array(), debug);
- buf = undefined
-
- const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
- const data = imageData.data;
-
- for (let y = 0; y < 1080; y++) {
- for (let x = 0; x < 1920; x++) {
- const ti = (x + y * 1920) * 4;
- const si = (x + y * 1920) * 3;
- data[ti + 0] = frame[si + 0]
- data[ti + 1] = frame[si + 1]
- data[ti + 2] = frame[si + 2]
- data[ti + 3] = 255
- }
- }
-
- ctx.putImageData(imageData, 0, 0);
-
- }, 1000 / 30)
-}