mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Added native PGS (graphical subtitle) rendering for external streams.
This commit is contained in:
parent
9184f06d79
commit
e9aedc3305
4 changed files with 81 additions and 2 deletions
|
@ -100,7 +100,7 @@ function enableNativeTrackSupport(mediaSource, track) {
|
|||
|
||||
if (track) {
|
||||
const format = (track.Codec || '').toLowerCase();
|
||||
if (format === 'ssa' || format === 'ass') {
|
||||
if (format === 'ssa' || format === 'ass' || format === 'pgssub') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -213,6 +213,10 @@ export class HtmlVideoPlayer {
|
|||
* @type {any | null | undefined}
|
||||
*/
|
||||
#currentAssRenderer;
|
||||
/**
|
||||
* @type {any | null | undefined}
|
||||
*/
|
||||
#currentPgsRenderer;
|
||||
/**
|
||||
* @type {number | undefined}
|
||||
*/
|
||||
|
@ -1172,6 +1176,12 @@ export class HtmlVideoPlayer {
|
|||
octopus.dispose();
|
||||
}
|
||||
this.#currentAssRenderer = null;
|
||||
|
||||
const pgsRenderer = this.#currentPgsRenderer;
|
||||
if (pgsRenderer) {
|
||||
pgsRenderer.dispose();
|
||||
}
|
||||
this.#currentPgsRenderer = null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1316,6 +1326,19 @@ export class HtmlVideoPlayer {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
renderPgs(videoElement, track, item) {
|
||||
import('libpgs').then((libpgs) => {
|
||||
const options = {
|
||||
video: videoElement,
|
||||
subUrl: getTextTrackUrl(track, item)
|
||||
};
|
||||
this.#currentPgsRenderer = new libpgs.PgsRenderer(options);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
|
@ -1434,6 +1457,10 @@ export class HtmlVideoPlayer {
|
|||
this.renderSsaAss(videoElement, track, item);
|
||||
return;
|
||||
}
|
||||
if (format === 'pgssub') {
|
||||
this.renderPgs(videoElement, track, item);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.requiresCustomSubtitlesElement()) {
|
||||
this.renderSubtitlesWithCustomElement(videoElement, track, item, targetTextTrackIndex);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue