From 0bfac6434601e8c4feac6d497df632ede15a7503 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 2 Jun 2025 13:28:18 +0200 Subject: use singular "subtitle" when referring to track type --- common/src/impl.rs | 4 ++-- common/src/lib.rs | 2 +- doc/api.md | 2 +- import/src/lib.rs | 2 +- server/src/compat/jellyfin/mod.rs | 2 +- web/script/player/mod.ts | 6 +++--- web/script/player/player.ts | 8 ++++---- web/script/player/track/create.ts | 2 +- web/script/player/track/vtt.ts | 2 +- web/script/player/types_node.ts | 2 +- web/script/player/types_stream.ts | 2 +- web/style/player.css | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/common/src/impl.rs b/common/src/impl.rs index 690a189..d4c863e 100644 --- a/common/src/impl.rs +++ b/common/src/impl.rs @@ -14,7 +14,7 @@ impl SourceTrackKind { match self { SourceTrackKind::Video { .. } => 'v', SourceTrackKind::Audio { .. } => 'a', - SourceTrackKind::Subtitles => 's', + SourceTrackKind::Subtitle => 's', } } } @@ -34,7 +34,7 @@ impl Display for SourceTrack { "Audio: {channels}ch {sample_rate}Hz {}bits ", bit_depth.unwrap_or(0) ), - SourceTrackKind::Subtitles => "Subtitles: ".to_string(), + SourceTrackKind::Subtitle => "Subtitle: ".to_string(), }; f.write_fmt(format_args!( "{} {:?} {} ({})", diff --git a/common/src/lib.rs b/common/src/lib.rs index 366c514..14c82fc 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -276,7 +276,7 @@ pub enum SourceTrackKind { sample_rate: f64, bit_depth: Option, }, - Subtitles, + Subtitle, } #[derive(Debug, Serialize, Deserialize, Clone, Copy, Hash, PartialEq, Encode, Decode)] diff --git a/doc/api.md b/doc/api.md index 67809cb..2d0dd9a 100644 --- a/doc/api.md +++ b/doc/api.md @@ -142,7 +142,7 @@ export interface SegmentInfo { duration: number; tracks: TrackInfo[]; } -export type TrackKind = "video" | "audio" | "subtitles"; +export type TrackKind = "video" | "audio" | "subtitle"; export interface TrackInfo { name?: string; language?: string; diff --git a/import/src/lib.rs b/import/src/lib.rs index 426a96a..6d2ae0f 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -510,7 +510,7 @@ fn import_media_file( bit_depth: audio.bit_depth.map(|r| r as usize), } } else { - SourceTrackKind::Subtitles + SourceTrackKind::Subtitle }, source: TrackSource::Local( AssetInner::LocalTrack(LocalTrack { diff --git a/server/src/compat/jellyfin/mod.rs b/server/src/compat/jellyfin/mod.rs index 0a901b2..e5b8629 100644 --- a/server/src/compat/jellyfin/mod.rs +++ b/server/src/compat/jellyfin/mod.rs @@ -629,7 +629,7 @@ fn track_object(index: usize, track: &SourceTrack) -> JellyfinMediaStream { r#type: match track.kind { SourceTrackKind::Audio { .. } => JellyfinMediaStreamType::Audio, SourceTrackKind::Video { .. } => JellyfinMediaStreamType::Video, - SourceTrackKind::Subtitles => JellyfinMediaStreamType::Subtitle, + SourceTrackKind::Subtitle => JellyfinMediaStreamType::Subtitle, }, aspect_ratio: "1:1".to_string(), // TODO aaa index, diff --git a/web/script/player/mod.ts b/web/script/player/mod.ts index 6e3f962..1208e07 100644 --- a/web/script/player/mod.ts +++ b/web/script/player/mod.ts @@ -28,7 +28,7 @@ globalThis.addEventListener("DOMContentLoaded", () => { const MEDIA_KIND_ICONS: { [key in TrackKind]: [string, string] } = { video: ["tv_off", "tv"], audio: ["volume_off", "volume_up"], - subtitles: ["subtitles_off", "subtitles"], + subtitle: ["subtitles_off", "subtitles"], } function toggle_fullscreen() { @@ -237,7 +237,7 @@ function initialize_player(node_id: string): HTMLElement { e("div", { class: "jsp-track-select" }, track_select("video"), track_select("audio"), - track_select("subtitles") + track_select("subtitle") ), settings_popup(), e("button", "fullscreen", { class: "icon", onclick: toggle_fullscreen, aria_label: "fullscreen" }) @@ -288,7 +288,7 @@ function initialize_player(node_id: string): HTMLElement { else if (k.code == "KeyF") toggle_fullscreen() else if (k.code == "KeyQ") quit() else if (k.code == "KeyS") screenshot_video(player.video) - else if (k.code == "KeyJ") step_track_kind("subtitles") + else if (k.code == "KeyJ") step_track_kind("subtitle") 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)}`, "volume") else if (k.code == "Digit0") (player.volume.value *= 1.2), logger.log(`Volume increased to ${show_volume(player.volume.value)}`, "volume") diff --git a/web/script/player/player.ts b/web/script/player/player.ts index 47568dc..210ce9a 100644 --- a/web/script/player/player.ts +++ b/web/script/player/player.ts @@ -112,18 +112,18 @@ export class Player { this.duration.value = streaminfo.segments[0].duration this.streaminfo = streaminfo this.tracks = streaminfo!.segments[0].tracks; - + console.log("aaa", this.tracks); this.video.src = URL.createObjectURL(this.media_source) this.media_source.addEventListener("sourceopen", async () => { - let video = false, audio = false, subtitles = false; + let video = false, audio = false, subtitle = false; for (let i = 0; i < this.tracks!.length; i++) { const t = this.tracks![i]; if (t.kind == "video" && !video) video = true, await this.set_track_enabled(i, true, false) if (t.kind == "audio" && !audio) audio = true, await this.set_track_enabled(i, true, false) - if (t.kind == "subtitles" && !subtitles) - subtitles = true, await this.set_track_enabled(i, true, false) + if (t.kind == "subtitle" && !subtitle) + subtitle = true, await this.set_track_enabled(i, true, false) } this.set_pers("Buffering initial stream fragments...") diff --git a/web/script/player/track/create.ts b/web/script/player/track/create.ts index 95bccca..e3b0f17 100644 --- a/web/script/player/track/create.ts +++ b/web/script/player/track/create.ts @@ -10,6 +10,6 @@ import { PlayerTrack } from "./mod.ts"; import { TrackInfo } from "../types_stream.ts"; export function create_track(player: Player, base_url: string, segment_index: number, track_index: number, track_info: TrackInfo): PlayerTrack | undefined { - if (track_info.kind == "subtitles") return new VttPlayerTrack(player, base_url, track_index, track_info) + if (track_info.kind == "subtitle") return new VttPlayerTrack(player, base_url, track_index, track_info) else return new MSEPlayerTrack(player, base_url, segment_index, track_index, track_info) } diff --git a/web/script/player/track/vtt.ts b/web/script/player/track/vtt.ts index e89bf24..43413bd 100644 --- a/web/script/player/track/vtt.ts +++ b/web/script/player/track/vtt.ts @@ -39,7 +39,7 @@ export class VttPlayerTrack extends PlayerTrack { async init() { try { - const res = await fetch(`/n/${encodeURIComponent(this.node_id)}/stream?format=jvtt&track=${this.track_index}`, { headers: { "Accept": "application/json" } }); + const res = await fetch(`${this.player.base_url}?format=remux&segment=0&container=jvtt&track=${this.track_index}`, { headers: { "Accept": "application/json" } }); if (!res.ok) return this.player.error.value = "Cannot download index.", undefined; let ai!: SubtitleCue[] & { error: string; }; try { ai = await res.json(); } diff --git a/web/script/player/types_node.ts b/web/script/player/types_node.ts index 6946313..710befb 100644 --- a/web/script/player/types_node.ts +++ b/web/script/player/types_node.ts @@ -67,7 +67,7 @@ export type SourceTrackKind = { sample_rate: number, bit_depth: number, } - } | "subtitles"; + } | "subtitle"; export interface NodeUserData { watched: WatchedState diff --git a/web/script/player/types_stream.ts b/web/script/player/types_stream.ts index 9565bf4..bff4ed8 100644 --- a/web/script/player/types_stream.ts +++ b/web/script/player/types_stream.ts @@ -17,7 +17,7 @@ export interface SegmentInfo { duration: number, tracks: TrackInfo[], } -export type TrackKind = "video" | "audio" | "subtitles" +export type TrackKind = "video" | "audio" | "subtitle" export interface TrackInfo { name?: string, language?: string, diff --git a/web/style/player.css b/web/style/player.css index d0ebc02..2fbdca3 100644 --- a/web/style/player.css +++ b/web/style/player.css @@ -33,7 +33,7 @@ form.playerconf { .playerconf .audio { grid-area: a; } -.playerconf .subtitles { +.playerconf .subtitle { grid-area: s; } .playerconf input[type="submit"] { -- cgit v1.2.3-70-g09d2