aboutsummaryrefslogtreecommitdiff
path: root/web/script/player/download.ts
diff options
context:
space:
mode:
Diffstat (limited to 'web/script/player/download.ts')
-rw-r--r--web/script/player/download.ts49
1 files changed, 0 insertions, 49 deletions
diff --git a/web/script/player/download.ts b/web/script/player/download.ts
deleted file mode 100644
index 1c42bad..0000000
--- a/web/script/player/download.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- This file is part of jellything (https://codeberg.org/metamuffin/jellything)
- which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
- Copyright (C) 2026 metamuffin <metamuffin.org>
-*/
-/// <reference lib="dom" />
-import { OVar } from "../jshelper/mod.ts";
-
-interface Measurement { time: number, duration: number, size: number }
-export class SegmentDownloader {
- private measurements: Measurement[] = []
-
- public bandwidth_avail = new OVar(Infinity)
- public bandwidth_used = new OVar(Infinity)
- public total_downloaded = new OVar(0)
-
- constructor() { }
-
- async download(url: string): Promise<ArrayBuffer> {
- const dl_start = performance.now();
- const res = await fetch(url)
- const dl_header = performance.now();
- if (!res.ok) throw new Error("aaaaaa");
- const buf = await res.arrayBuffer()
- const dl_body = performance.now();
-
- this.total_downloaded.value += buf.byteLength
- if (buf.byteLength > 100 * 1000) {
- const m = {
- time: dl_start,
- duration: (dl_body - dl_header) / 1000,
- size: buf.byteLength
- }
- this.measurements.push(m)
- this.update_bandwidth()
- }
- return buf;
- }
-
- update_bandwidth() {
- while (this.measurements.length > 32)
- this.measurements.splice(0, 1)
- const total_elapsed = (performance.now() - this.measurements.reduce((a, v) => Math.min(a, v.time), 0)) / 1000;
- const total_size = this.measurements.reduce((a, v) => v.size + a, 0)
- const total_duration = this.measurements.reduce((a, v) => v.duration + a, 0)
- this.bandwidth_avail.value = total_size / total_duration
- this.bandwidth_used.value = total_size / total_elapsed
- }
-}