aboutsummaryrefslogtreecommitdiff
path: root/web/script/player/mod.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-02 20:02:06 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-02 20:02:06 +0200
commite25beb3e0c2531b09d8efd70e858396dcc631dd2 (patch)
tree917189b7e5e5363c830fbdabcb416e16623a6438 /web/script/player/mod.ts
parent839c1e1490e7cd856e6ada1dcfd82f3d4505c89c (diff)
downloadjellything-e25beb3e0c2531b09d8efd70e858396dcc631dd2.tar
jellything-e25beb3e0c2531b09d8efd70e858396dcc631dd2.tar.bz2
jellything-e25beb3e0c2531b09d8efd70e858396dcc631dd2.tar.zst
add profiles to jhls
Diffstat (limited to 'web/script/player/mod.ts')
-rw-r--r--web/script/player/mod.ts35
1 files changed, 3 insertions, 32 deletions
diff --git a/web/script/player/mod.ts b/web/script/player/mod.ts
index 52da454..caad781 100644
--- a/web/script/player/mod.ts
+++ b/web/script/player/mod.ts
@@ -4,35 +4,7 @@
Copyright (C) 2023 metamuffin <metamuffin.org>
*/
import { OVar, e } from "../jshelper/mod.ts";
-
-export interface Range { start: number, end: number }
-export interface JhlsMetadata {
- tracks: JhlsTrack[],
- duration: number,
-}
-export interface JhlsTrack {
- info: SourceTrack,
- segments: Range[],
-}
-export interface SourceTrack {
- kind: SourceTrackKind,
- name: string,
- codec: string,
- language: string,
-}
-export interface SourceTrackKind {
- video?: {
- width: number,
- height: number,
- fps: number,
- },
- audio?: {
- channels: number,
- sample_rate: number,
- bit_depth: number,
- },
- subtitles?: boolean,
-}
+import { JhlsMetadata, JhlsTrack, TimeRange } from "./jhls.d.ts";
const TARGET_BUFFER_DURATION = 15
const MIN_BUFFER_DURATION = 1
@@ -148,7 +120,7 @@ function display_time(t: number): string {
return (h ? h + "h" : "") + (m ? m + "m" : "") + (s ? s + "s" : "")
}
-interface BufferRange extends Range { status: "buffered" | "loading" | "queued" }
+interface BufferRange extends TimeRange { status: "buffered" | "loading" | "queued" }
class Player {
public video = e("video")
private media_source = new MediaSource();
@@ -240,10 +212,9 @@ class Player {
await this.update(p)
this.video.currentTime = p
}
-
}
-interface AppendRange extends Range { buf: ArrayBuffer, index: number, cb: () => void }
+interface AppendRange extends TimeRange { buf: ArrayBuffer, index: number, cb: () => void }
class PlayerTrack {
private source_buffer: SourceBuffer
private current_load?: AppendRange