aboutsummaryrefslogtreecommitdiff
path: root/web/script/player
diff options
context:
space:
mode:
Diffstat (limited to 'web/script/player')
-rw-r--r--web/script/player/mod.ts19
-rw-r--r--web/script/player/track/mse.ts7
2 files changed, 16 insertions, 10 deletions
diff --git a/web/script/player/mod.ts b/web/script/player/mod.ts
index 82ee287..af62cde 100644
--- a/web/script/player/mod.ts
+++ b/web/script/player/mod.ts
@@ -66,11 +66,11 @@ function initialize_player(el: HTMLElement, node_id: string) {
let mute_saved_volume = 1;
const toggle_mute = () => {
if (player.volume.value == 0) {
- logger.log("Unmuted.");
+ logger.log("Unmuted.", "volume");
player.volume.value = mute_saved_volume
}
else {
- logger.log("Muted.");
+ logger.log("Muted.", "volume");
mute_saved_volume = player.volume.value
player.volume.value = 0.
}
@@ -281,8 +281,8 @@ function initialize_player(el: HTMLElement, node_id: string) {
else if (k.code == "KeyS") screenshot_video(player.video)
else if (k.code == "KeyJ") step_track_kind("subtitles")
else if (k.code == "KeyM") toggle_mute()
- else if (k.code == "Digit9") (player.volume.value /= 1.2), logger.log(`Volume decreased to ${show_volume(player.volume.value)}`)
- else if (k.code == "Digit0") (player.volume.value *= 1.2), logger.log(`Volume increased to ${show_volume(player.volume.value)}`)
+ else if (k.code == "Digit9") (player.volume.value /= 1.2), logger.log(`Volume decreased to ${show_volume(player.volume.value)}`, "volume")
+ else if (k.code == "Digit0") (player.volume.value *= 1.2), logger.log(`Volume increased to ${show_volume(player.volume.value)}`, "volume")
else if (k.key == "#") step_track_kind("audio")
else if (k.key == "_") step_track_kind("video")
else if (k.code == "KeyV") show_stats.value = !show_stats.value
@@ -355,10 +355,13 @@ function mouse_idle(e: HTMLElement, timeout: number): OVar<boolean> {
}
export function show_format(format: FormatInfo): string {
- // if (format.audio) return `codec=${format.audio.codec} br=${show.metric(format.audio.bitrate, "b/s")}${format.audio.sample_rate ? ` sr=${show.metric(format.audio.sample_rate, "Hz")}` : ""}`
- // if (format.video) return `codec=${format.video.codec} br=${show.metric(format.video.bitrate, "b/s")} w=${format.video.width} preset=${format.video.preset}`
- // if (format.subtitles) return `codec=${format.subtitles.codec}`
- return `TODO`
+ let o = `${format.codec} br=${show.metric(format.bitrate, "b/s")} ac=${format.containers.join(",")}`
+ if (format.width) o += ` w=${format.width}`
+ if (format.height) o += ` h=${format.height}`
+ if (format.samplerate) o += ` ar=${show.metric(format.samplerate, "Hz")}`
+ if (format.channels) o += ` ac=${format.channels}`
+ if (format.bit_depth) o += ` bits=${format.bit_depth}`
+ return o
}
export function show_volume(v: number): string {
return `${v == 0 ? "-∞" : (Math.log10(v) * 10).toFixed(2)}dB | ${(v * 100).toFixed(2)}%`
diff --git a/web/script/player/track/mse.ts b/web/script/player/track/mse.ts
index 5565a6b..237b6f6 100644
--- a/web/script/player/track/mse.ts
+++ b/web/script/player/track/mse.ts
@@ -9,6 +9,7 @@ import { BufferRange, Player } from "../player.ts";
import { PlayerTrack, AppendRange, TARGET_BUFFER_DURATION, MIN_BUFFER_DURATION } from "./mod.ts";
import { e } from "../../jshelper/src/element.ts";
import { FormatInfo, FragmentIndex, StreamContainer, TrackInfo } from "../types_stream.ts";
+import { show_format } from "../mod.ts";
interface UsableFormat { format_index: number, usable_index: number, format: FormatInfo, container: StreamContainer }
@@ -154,8 +155,9 @@ export class MSEPlayerTrack extends PlayerTrack {
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.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.active_format.value?.format.remux ? 0 : frag.start
- this.source_buffer.timestampOffset = 0
+ // this.source_buffer.timestampOffset = 0
this.source_buffer.appendBuffer(frag.buf);
}
}
@@ -170,7 +172,8 @@ export class MSEPlayerTrack extends PlayerTrack {
e("pre",
p ?
`mse track ${this.track_index}: format ${p.format_index} (${p.format.remux ? "remux" : "transcode"})`
- + `\n\ttype: ${track_to_content_type(p.format, p.container)} br=${p.format.bitrate}`
+ + `\n\tformat: ${show_format(p.format)}`
+ + `\n\tbuffer type: ${track_to_content_type(p.format, p.container)}`
+ `\n\tbuffered: ${rtype("buffered", b)} / queued: ${rtype("queued", b)} / loading: ${rtype("loading", b)}`
: ""
) as HTMLElement