diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-02 12:31:44 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-02 12:31:44 +0100 |
commit | 64c962b50d4fbd4605087fc97eac1a032bb826ce (patch) | |
tree | c032c9c01b61a267a1d81f38ccd093be56245aec /web/script/player/track/mse.ts | |
parent | 5970c8da7e2569429b2ef45c63157d0b6416259a (diff) | |
download | jellything-64c962b50d4fbd4605087fc97eac1a032bb826ce.tar jellything-64c962b50d4fbd4605087fc97eac1a032bb826ce.tar.bz2 jellything-64c962b50d4fbd4605087fc97eac1a032bb826ce.tar.zst |
consistent fragment naming
Diffstat (limited to 'web/script/player/track/mse.ts')
-rw-r--r-- | web/script/player/track/mse.ts | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/web/script/player/track/mse.ts b/web/script/player/track/mse.ts index 803d562..b7a31e0 100644 --- a/web/script/player/track/mse.ts +++ b/web/script/player/track/mse.ts @@ -1,3 +1,8 @@ +/* + 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) 2025 metamuffin <metamuffin.org> +*/ import { JhlsTrackIndex, SourceTrack } from "../jhls.d.ts"; import { OVar } from "../../jshelper/mod.ts"; import { profile_to_partial_track, track_to_content_type } from "../mediacaps.ts"; @@ -91,7 +96,7 @@ export class MSEPlayerTrack extends PlayerTrack { }); } for (const r of this.loading) { - ranges.push({ ...this.index.segments[r], status: "loading" }); + ranges.push({ ...this.index.fragments[r], status: "loading" }); } this.buffered.value = ranges; } @@ -101,12 +106,12 @@ export class MSEPlayerTrack extends PlayerTrack { this.update_buf_ranges(); // TODO required? const blocking = []; - for (let i = 0; i < this.index.segments.length; i++) { - const seg = this.index.segments[i]; - if (seg.end < target) continue; - if (seg.start >= target + TARGET_BUFFER_DURATION) break; - if (!this.check_buf_collision(seg.start, seg.end)) continue; - if (seg.start <= target + MIN_BUFFER_DURATION) + for (let i = 0; i < this.index.fragments.length; i++) { + const frag = this.index.fragments[i]; + if (frag.end < target) continue; + if (frag.start >= target + TARGET_BUFFER_DURATION) break; + if (!this.check_buf_collision(frag.start, frag.end)) continue; + if (frag.start <= target + MIN_BUFFER_DURATION) blocking.push(this.load(i)); else this.load(i); @@ -129,20 +134,20 @@ export class MSEPlayerTrack extends PlayerTrack { await new Promise<void>(cb => { if (!this.index) return; if (this.abort.signal.aborted) return; - this.append_queue.push({ buf, ...this.index.segments[index], index, cb }); + this.append_queue.push({ buf, ...this.index.fragments[index], index, cb }); this.tick_append(); }); } tick_append() { if (this.source_buffer.updating || this.current_load) return; if (this.append_queue.length) { - const seg = this.append_queue[0]; + const frag = this.append_queue[0]; this.append_queue.splice(0, 1); - this.current_load = seg; + this.current_load = frag; // TODO why is appending so unreliable?! sometimes it does not add it this.source_buffer.changeType(track_to_content_type(this.track_from_profile())!); - // this.source_buffer.timestampOffset = seg.start; - this.source_buffer.appendBuffer(seg.buf); + console.log(`append track ${this.track_index}`); + this.source_buffer.appendBuffer(frag.buf); } } |