aboutsummaryrefslogtreecommitdiff
path: root/web/script/player/track.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-02 23:53:29 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-02 23:53:29 +0200
commit985d94d1a9a2712f51dc41a0312f9a7053211e85 (patch)
tree7479035c95f2dfb3ad1925622d9132aa29beaaff /web/script/player/track.ts
parent1f11c16aefe71d68605d2cd0ad5da9c016aa3570 (diff)
downloadjellything-985d94d1a9a2712f51dc41a0312f9a7053211e85.tar
jellything-985d94d1a9a2712f51dc41a0312f9a7053211e85.tar.bz2
jellything-985d94d1a9a2712f51dc41a0312f9a7053211e85.tar.zst
"working" adaptive br with hardcoded remux br
Diffstat (limited to 'web/script/player/track.ts')
-rw-r--r--web/script/player/track.ts5
1 files changed, 3 insertions, 2 deletions
diff --git a/web/script/player/track.ts b/web/script/player/track.ts
index fe4c3c1..bcff607 100644
--- a/web/script/player/track.ts
+++ b/web/script/player/track.ts
@@ -3,7 +3,7 @@ import { JhlsTrack, TimeRange } from "./jhls.d.ts";
import { BufferRange, Player } from "./player.ts";
import { EncodingProfileExt } from "./profiles.ts";
-const TARGET_BUFFER_DURATION = 15
+const TARGET_BUFFER_DURATION = 5
const MIN_BUFFER_DURATION = 1
export interface AppendRange extends TimeRange { buf: ArrayBuffer, index: number, cb: () => void }
@@ -79,7 +79,7 @@ export class PlayerTrack {
async load(index: number) {
this.loading.add(index)
this.player.profile_selector.select_optimal_profile(this.track_index, this.profile)
- const url = `/n/${encodeURIComponent(this.node_id)}/stream?format=hlsseg&tracks=${this.track_index}&index=${index}${this.profile.value ? `profile=${this.profile.value.id}` : ""}`;
+ const url = `/n/${encodeURIComponent(this.node_id)}/stream?format=hlsseg&tracks=${this.track_index}&index=${index}${this.profile.value ? `&profile=${this.profile.value.id}` : ""}`;
const buf = await this.player.downloader.download(url)
await new Promise<void>(cb => {
this.append_queue.push({ buf, ...this.metadata.segments[index], index, cb })
@@ -91,6 +91,7 @@ export class PlayerTrack {
if (this.append_queue.length) {
const seg = this.append_queue[0];
this.source_buffer.timestampOffset = seg.start
+ // TODO why is pushing so unreliable?! sometimes it does not add it
this.source_buffer.appendBuffer(seg.buf);
this.append_queue.splice(0, 1)
this.current_load = seg