From 30c3bb552aba8794d57eb08688e0c1c751ab27a0 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 21 Apr 2025 20:36:24 +0200 Subject: generic buffering slow start --- web/script/player/track/mod.ts | 2 +- 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); -- cgit v1.2.3-70-g09d2