aboutsummaryrefslogtreecommitdiff
path: root/web/script/player/track/mse.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-05-14 00:24:58 +0200
committermetamuffin <metamuffin@disroot.org>2024-05-14 00:24:58 +0200
commit8752a12e954600152e9eaa60ed29af585ed06c64 (patch)
tree700fedf7d82e940b256ca828e5c98bd1ce0ada44 /web/script/player/track/mse.ts
parent07fc74f4d8fcd3137e3cdbc462c06c50acccb31e (diff)
downloadjellything-8752a12e954600152e9eaa60ed29af585ed06c64.tar
jellything-8752a12e954600152e9eaa60ed29af585ed06c64.tar.bz2
jellything-8752a12e954600152e9eaa60ed29af585ed06c64.tar.zst
better jsp debuggability
Diffstat (limited to 'web/script/player/track/mse.ts')
-rw-r--r--web/script/player/track/mse.ts20
1 files changed, 19 insertions, 1 deletions
diff --git a/web/script/player/track/mse.ts b/web/script/player/track/mse.ts
index 01836b7..8e83c78 100644
--- a/web/script/player/track/mse.ts
+++ b/web/script/player/track/mse.ts
@@ -4,6 +4,8 @@ import { profile_to_partial_track, track_to_content_type } from "../mediacaps.ts
import { BufferRange, Player } from "../player.ts";
import { EncodingProfileExt, ProfileSelector } from "../profiles.ts";
import { PlayerTrack, AppendRange, TARGET_BUFFER_DURATION, MIN_BUFFER_DURATION } from "./mod.ts";
+import { show_profile } from "../mod.ts";
+import { e } from "../../jshelper/src/element.ts";
export class MSEPlayerTrack extends PlayerTrack {
public source_buffer!: SourceBuffer;
@@ -21,7 +23,7 @@ export class MSEPlayerTrack extends PlayerTrack {
private metadata: SourceTrack,
) {
super(track_index);
- this.profile_selector = new ProfileSelector(player, this, player.downloader.bandwidth);
+ this.profile_selector = new ProfileSelector(player, this, player.downloader.bandwidth_avail);
this.init()
}
@@ -143,4 +145,20 @@ export class MSEPlayerTrack extends PlayerTrack {
this.source_buffer.appendBuffer(seg.buf);
}
}
+
+ public debug(): OVar<HTMLElement> {
+ const rtype = (t: string, b: BufferRange[]) => {
+ const c = b.filter(r => r.status == t);
+ return `${c.length} range${c.length != 1 ? "s" : ""}, ${c.reduce((a, v) => a + v.end - v.start, 0).toFixed(2)}s`
+ }
+ return this.profile.liftA2(this.buffered, (p, b) =>
+ e("pre",
+ `mse track ${this.track_index}: ${(p ? `profile ${p.id} (${show_profile(p)})` : `remux`)}`
+ + `\n\ttype: ${track_to_content_type(this.track_from_profile())}`
+ + `\n\tbuffered: ${rtype("buffered", b)}`
+ + `\n\tqueued: ${rtype("queued", b)}`
+ + `\n\tloading: ${rtype("loading", b)}`
+ ) as HTMLElement
+ )
+ }
}