Add option to limit hls segment length for webOS (#6530)

* -Add clientside ability to limit segment length to 1. See https://github.com/jellyfin/jellyfin-webos/issues/248 for details.
-Add translations for this new setting (generated by github copilot).
-Corrected small typo 'perfer'.

* Move this to relevant scope

* Revert translations except en-us

* rewrite and relocate translation to alphabetical order

* Relocate new setting to 'video advanced' heading instead of 'advanced'

* Hide hls segment setting initially but show it for WebOS users.

* Update src/components/playbackSettings/playbackSettings.js

Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

* Update src/components/playbackSettings/playbackSettings.js

Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

---------

Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
This commit is contained in:
Pat
2025-04-11 20:51:21 +01:00
committed by GitHub
parent a9b25d9d81
commit f8546b35ec
5 changed files with 38 additions and 4 deletions
+16 -2
View File
@@ -152,8 +152,8 @@ export class UserSettings {
}
/**
* Get or set 'Perfer fMP4-HLS Container' state.
* @param {boolean|undefined} val - Flag to enable 'Perfer fMP4-HLS Container' or undefined.
* Get or set 'Prefer fMP4-HLS Container' state.
* @param {boolean|undefined} val - Flag to enable 'Prefer fMP4-HLS Container' or undefined.
* @return {boolean} 'Prefer fMP4-HLS Container' state.
*/
preferFmp4HlsContainer(val) {
@@ -165,6 +165,19 @@ export class UserSettings {
return toBoolean(this.get('preferFmp4HlsContainer', false), browser.safari || browser.firefox || browser.chrome || browser.edgeChromium);
}
/**
* Get or set 'Limit Segment Length' state.
* @param {boolean|undefined} val - Flag to enable 'Limit Segment Length' or undefined.
* @returns {boolean} 'Limit Segment Length' state.
*/
limitSegmentLength(val) {
if (val !== undefined) {
return this.set('limitSegmentLength', val.toString(), false);
}
return toBoolean(this.get('limitSegmentLength', false), false);
}
/**
* Get or set 'Cinema Mode' state.
* @param {boolean|undefined} val - Flag to enable 'Cinema Mode' or undefined.
@@ -671,6 +684,7 @@ export const get = currentSettings.get.bind(currentSettings);
export const serverConfig = currentSettings.serverConfig.bind(currentSettings);
export const allowedAudioChannels = currentSettings.allowedAudioChannels.bind(currentSettings);
export const preferFmp4HlsContainer = currentSettings.preferFmp4HlsContainer.bind(currentSettings);
export const limitSegmentLength = currentSettings.limitSegmentLength.bind(currentSettings);
export const enableCinemaMode = currentSettings.enableCinemaMode.bind(currentSettings);
export const selectAudioNormalization = currentSettings.selectAudioNormalization.bind(currentSettings);
export const enableNextVideoInfoOverlay = currentSettings.enableNextVideoInfoOverlay.bind(currentSettings);