diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-21 20:36:24 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-21 20:36:24 +0200 |
commit | 30c3bb552aba8794d57eb08688e0c1c751ab27a0 (patch) | |
tree | c7124644f8fff70afcc59738febbbfa2a5344d40 | |
parent | ddfc3223b247fd18ca753b5debb95711726e1388 (diff) | |
download | jellything-30c3bb552aba8794d57eb08688e0c1c751ab27a0.tar jellything-30c3bb552aba8794d57eb08688e0c1c751ab27a0.tar.bz2 jellything-30c3bb552aba8794d57eb08688e0c1c751ab27a0.tar.zst |
generic buffering slow start
-rw-r--r-- | web/script/player/track/mod.ts | 2 | ||||
-rw-r--r-- | web/script/player/track/mse.ts | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/web/script/player/track/mod.ts b/web/script/player/track/mod.ts index 99b348c..78a987b 100644 --- a/web/script/player/track/mod.ts +++ b/web/script/player/track/mod.ts @@ -8,7 +8,7 @@ import { TimeRange } from "../types_stream.ts"; import { OVar } from "../../jshelper/mod.ts"; import { BufferRange } from "../player.ts"; -export const TARGET_BUFFER_DURATION = 15 +export const TARGET_BUFFER_DURATION = 20 export const MIN_BUFFER_DURATION = 1 export interface AppendRange extends TimeRange { buf: ArrayBuffer, index: number, cb: () => void } diff --git a/web/script/player/track/mse.ts b/web/script/player/track/mse.ts index af252a4..7c54e28 100644 --- a/web/script/player/track/mse.ts +++ b/web/script/player/track/mse.ts @@ -133,9 +133,7 @@ export class MSEPlayerTrack extends PlayerTrack { if (!this.index) return; this.update_buf_ranges(); // TODO required? - let buffer_to = target + TARGET_BUFFER_DURATION - if (target < 1) buffer_to = 1 - if (target < 3) buffer_to = 5 + const buffer_to = target + (target < 20 ? Math.max(1, target) : TARGET_BUFFER_DURATION) const blocking = []; for (let i = 0; i < this.index.length; i++) { @@ -181,6 +179,7 @@ export class MSEPlayerTrack extends PlayerTrack { // TODO why is appending so unreliable?! sometimes it does not add it this.source_buffer.changeType(track_to_content_type(this.active_format.value!.format, this.active_format.value!.container)); this.source_buffer.timestampOffset = this.active_format.value?.container == "mpeg4" ? frag.start : 0 + // this.source_buffer.timestampOffset = this.trackinfo.kind == "video" && !this.active_format.value!.format.remux ? frag.start : 0 // this.source_buffer.timestampOffset = this.active_format.value?.format.remux ? 0 : frag.start // this.source_buffer.timestampOffset = 0 this.source_buffer.appendBuffer(frag.buf); |