diff options
author | metamuffin <metamuffin@disroot.org> | 2023-03-09 22:48:33 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-03-09 22:48:33 +0100 |
commit | 680b08e6b9d64284b7992fb52a23e5f891291406 (patch) | |
tree | abe30a9f18be09ef931b4b6357d216f6ba982095 /lvc/codec-web/web | |
parent | c45f80a14ecd00914eb1d4e8f628b74a713667ba (diff) | |
download | video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.bz2 video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.zst |
rename + readme
Diffstat (limited to 'lvc/codec-web/web')
-rw-r--r-- | lvc/codec-web/web/.gitignore | 2 | ||||
-rw-r--r-- | lvc/codec-web/web/index.html | 14 | ||||
-rw-r--r-- | lvc/codec-web/web/main.ts | 67 |
3 files changed, 0 insertions, 83 deletions
diff --git a/lvc/codec-web/web/.gitignore b/lvc/codec-web/web/.gitignore deleted file mode 100644 index 93d7118..0000000 --- a/lvc/codec-web/web/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/codec_web* -/bundle* diff --git a/lvc/codec-web/web/index.html b/lvc/codec-web/web/index.html deleted file mode 100644 index b572671..0000000 --- a/lvc/codec-web/web/index.html +++ /dev/null @@ -1,14 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>bv1 web player</title> - <script defer async src="./bundle.js" type="module"></script> - </head> - <body> - <noscript>need js</noscript> - <p>loading…</p> - </body> -</html> diff --git a/lvc/codec-web/web/main.ts b/lvc/codec-web/web/main.ts deleted file mode 100644 index bdaa1f6..0000000 --- a/lvc/codec-web/web/main.ts +++ /dev/null @@ -1,67 +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() - document.body.innerHTML = "" - play(u.toString()) - } - }) -} - -async function play(url: string) { - decode_init(1920, 1080) - - const res = await fetch(url) - if (!res.ok) throw new Error("not ok"); - let buf: Uint8Array | undefined = new Uint8Array(await res.arrayBuffer()) - - 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) -} |