aboutsummaryrefslogtreecommitdiff
path: root/web/script/player/profiles.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-23 21:41:57 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-23 21:41:57 +0200
commite7096a499a6e2a8a05f0991898f75da9c928dd70 (patch)
treecb2428b9e2619961273b19e66b8f2c3e1bdfbc8d /web/script/player/profiles.ts
parent13a6887415547f5e3bafec80d5088ff90ae94aa6 (diff)
downloadjellything-e7096a499a6e2a8a05f0991898f75da9c928dd70.tar
jellything-e7096a499a6e2a8a05f0991898f75da9c928dd70.tar.bz2
jellything-e7096a499a6e2a8a05f0991898f75da9c928dd70.tar.zst
player: do actual cap check to see if transcode is required
Diffstat (limited to 'web/script/player/profiles.ts')
-rw-r--r--web/script/player/profiles.ts19
1 files changed, 5 insertions, 14 deletions
diff --git a/web/script/player/profiles.ts b/web/script/player/profiles.ts
index adaa717..caa46bd 100644
--- a/web/script/player/profiles.ts
+++ b/web/script/player/profiles.ts
@@ -1,5 +1,6 @@
import { OVar } from "../jshelper/mod.ts";
import { EncodingProfile, JhlsMetadata } from "./jhls.d.ts";
+import { test_media_capability } from "./mediacaps.ts";
import { Player } from "./player.ts";
const PROFILE_UP_FAC = 0.6
@@ -33,23 +34,13 @@ export class ProfileSelector {
if (i.subtitles) return this.profiles_subtitles
return []
}
- remux_supported(track: number): boolean {
- // TODO use media capability API
- // like so: await navigator.mediaCapabilities.decodingInfo({type:"file",video:{contentType:"video/webm; codecs=av1",bitrate:5*1000*1000/8,framerate:60,height:1080,width:1920}})
- const codec = this.metadata.tracks[track].info.codec
- return [
- "V_AV1",
- "V_VP8",
- "V_VP9",
- "A_OPUS",
- "A_VORBIS",
- "S_TEXT/WEBVTT"
- ].includes(codec)
+ async remux_supported(track: number): Promise<boolean> {
+ return await test_media_capability(this.metadata.tracks[track].info)
}
- select_optimal_profile(track: number, profile: OVar<EncodingProfileExt | undefined>) {
+ async select_optimal_profile(track: number, profile: OVar<EncodingProfileExt | undefined>) {
const profs = this.profile_list_for_track(track)
- const sup_remux = this.remux_supported(track);
+ const sup_remux = await this.remux_supported(track);
const min_prof = sup_remux ? -1 : 0
const co = profile.value?.order ?? min_prof
const current_bitrate = profile_byterate(profs[co], 5000 * 1000)