1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

chore: update JASSUB

fix: error event handling
fix: default font
This commit is contained in:
ThaUnknown 2023-03-10 15:45:01 +01:00
parent bcc4f87605
commit 71e9b46a81
4 changed files with 31 additions and 15 deletions

26
package-lock.json generated
View file

@ -31,7 +31,7 @@
"history": "5.3.0",
"hls.js": "0.14.17",
"intersection-observer": "0.12.2",
"jassub": "1.5.1",
"jassub": "1.5.3",
"jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3",
"jstree": "3.3.15",
@ -7293,6 +7293,11 @@
"es5-ext": "~0.10.14"
}
},
"node_modules/event-target-polyfill": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/event-target-polyfill/-/event-target-polyfill-0.0.3.tgz",
"integrity": "sha512-ZMc6UuvmbinrCk4RzGyVmRyIsAyxMRlp4CqSrcQRO8Dy0A9ldbiRy5kdtBj4OtP7EClGdqGfIqo9JmOClMsGLQ=="
},
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@ -9650,10 +9655,11 @@
}
},
"node_modules/jassub": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/jassub/-/jassub-1.5.1.tgz",
"integrity": "sha512-li8NUMm9JYHELRrsEEd9+8wX/PdN3H7JKE1V3Hwm9S7QmTr1Rx2VRU9AeiwJbZpxp9CcVSTyw0xFykluDGItHg==",
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/jassub/-/jassub-1.5.3.tgz",
"integrity": "sha512-RADNYFjuQgQmA2Jn7/m4X1cn6a24fvvxcxL0A/q4In++SqHsOwIi40oyYLu7T63Abs5dagONTAAb9TGYBZsRKA==",
"dependencies": {
"event-target-polyfill": "^0.0.3",
"rvfc-polyfill": "^1.0.4"
}
},
@ -24492,6 +24498,11 @@
"es5-ext": "~0.10.14"
}
},
"event-target-polyfill": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/event-target-polyfill/-/event-target-polyfill-0.0.3.tgz",
"integrity": "sha512-ZMc6UuvmbinrCk4RzGyVmRyIsAyxMRlp4CqSrcQRO8Dy0A9ldbiRy5kdtBj4OtP7EClGdqGfIqo9JmOClMsGLQ=="
},
"eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@ -26246,10 +26257,11 @@
"dev": true
},
"jassub": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/jassub/-/jassub-1.5.1.tgz",
"integrity": "sha512-li8NUMm9JYHELRrsEEd9+8wX/PdN3H7JKE1V3Hwm9S7QmTr1Rx2VRU9AeiwJbZpxp9CcVSTyw0xFykluDGItHg==",
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/jassub/-/jassub-1.5.3.tgz",
"integrity": "sha512-RADNYFjuQgQmA2Jn7/m4X1cn6a24fvvxcxL0A/q4In++SqHsOwIi40oyYLu7T63Abs5dagONTAAb9TGYBZsRKA==",
"requires": {
"event-target-polyfill": "^0.0.3",
"rvfc-polyfill": "^1.0.4"
}
},

View file

@ -90,7 +90,7 @@
"history": "5.3.0",
"hls.js": "0.14.17",
"intersection-observer": "0.12.2",
"jassub": "1.5.1",
"jassub": "1.5.3",
"jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3",
"jstree": "3.3.15",

View file

@ -1211,10 +1211,11 @@ function tryRemoveElement(elem) {
video: videoElement,
subUrl: getTextTrackUrl(track, item),
fonts: avaliableFonts,
fallbackFont: 'liberation sans',
availableFonts: {'liberation sans': `${appRouter.baseUrl()}/libraries/default.woff2`},
workerUrl: `${appRouter.baseUrl()}/libraries/jassub-worker.js`,
legacyWorkerUrl: `${appRouter.baseUrl()}/libraries/jassub-worker-legacy.js`,
timeOffset: (this._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000,
// new jassub options; override all, even defaults
blendMode: 'js',
asyncRender: true,
@ -1240,6 +1241,12 @@ function tryRemoveElement(elem) {
options.workerUrl = workerUrl;
options.legacyWorkerUrl = legacyWorkerUrl;
const cleanup = () => {
this.#currentJASSUB.destroy();
this.#currentJASSUB = null;
onErrorInternal(this, 'mediadecodeerror');
};
if (config.EnableFallbackFont) {
apiClient.getJSON(fallbackFontList).then((fontFiles = []) => {
fontFiles.forEach(font => {
@ -1249,16 +1256,12 @@ function tryRemoveElement(elem) {
avaliableFonts.push(fontUrl);
});
this.#currentJASSUB = new JASSUB(options);
this.#currentJASSUB.addEventListener('error', cleanup, { once: true });
});
} else {
this.#currentJASSUB = new JASSUB(options);
this.#currentJASSUB.addEventListener('error', cleanup, { once: true });
}
this.#currentJASSUB.addEventListener('error', ()=>{
this.#currentJASSUB.destroy();
this.#currentJASSUB = null;
onErrorInternal(this, 'mediadecodeerror');
}, { once: true });
});
});
}

View file

@ -12,6 +12,7 @@ const Assets = [
'jassub/dist/jassub-worker.wasm',
'jassub/dist/jassub-worker-legacy.js',
'jassub/dist/jassub-worker-legacy.mem',
'jassub/dist/default.woff2',
'pdfjs-dist/build/pdf.worker.js'
];