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

Add configurable ReadInputAtNativeFramerate flag to M3U tuner

This commit is contained in:
Tim Lodemann 2025-03-25 11:42:25 +01:00
parent e430f8b43a
commit 8d2cdb86c2
3 changed files with 20 additions and 1 deletions

View file

@ -90,6 +90,14 @@
<div class="fieldDescription checkboxFieldDescription">${IgnoreDtsHelp}</div>
</div>
<div class="checkboxContainer checkboxContainer-withDescription fldReadInputAtNativeFramerate hide">
<label>
<input type="checkbox" is="emby-checkbox" class="chkReadInputAtNativeFramerate" checked />
<span>${ReadInputAtNativeFramerate}</span>
</label>
<div class="fieldDescription checkboxFieldDescription">${ReadInputAtNativeFramerateHelp}</div>
</div>
<p class="drmMessage hide">${DrmChannelsNotImported}</p>
<br />
<input type="hidden" class="fldDeviceId" />

View file

@ -64,6 +64,7 @@ function fillTunerHostInfo(view, info) {
view.querySelector('.chkFmp4Container').checked = info.AllowFmp4TranscodingContainer;
view.querySelector('.chkStreamSharing').checked = info.AllowStreamSharing;
view.querySelector('.chkIgnoreDts').checked = info.IgnoreDts;
view.querySelector('.chkReadInputAtNativeFramerate').checked = info.ReadAtNativeFramerate;
view.querySelector('.txtFallbackMaxStreamingBitrate').value = info.FallbackMaxStreamingBitrate / 1e6 || '30';
view.querySelector('.txtTunerCount').value = info.TunerCount || '0';
}
@ -83,7 +84,8 @@ function submitForm(page) {
AllowFmp4TranscodingContainer: page.querySelector('.chkFmp4Container').checked,
AllowStreamSharing: page.querySelector('.chkStreamSharing').checked,
EnableStreamLooping: page.querySelector('.chkStreamLoop').checked,
IgnoreDts: page.querySelector('.chkIgnoreDts').checked
IgnoreDts: page.querySelector('.chkIgnoreDts').checked,
ReadAtNativeFramerate: page.querySelector('.chkReadInputAtNativeFramerate').checked
};
if (isM3uVariant(info.Type)) {
@ -129,6 +131,7 @@ function onTypeChange() {
const supportsTunerFileOrUrl = value === 'm3u';
const supportsStreamLooping = value === 'm3u';
const supportsIgnoreDts = value === 'm3u';
const supportsReadInputAtNativeFramerate = value === 'm3u';
const supportsTunerCount = value === 'm3u';
const supportsUserAgent = value === 'm3u';
const supportsFmp4Container = value === 'm3u';
@ -190,6 +193,12 @@ function onTypeChange() {
view.querySelector('.fldIgnoreDts').classList.add('hide');
}
if (supportsReadInputAtNativeFramerate) {
view.querySelector('.fldReadInputAtNativeFramerate').classList.remove('hide');
} else {
view.querySelector('.fldReadInputAtNativeFramerate').classList.add('hide');
}
if (supportsTunerCount) {
view.querySelector('.fldTunerCount').classList.remove('hide');
view.querySelector('.txtTunerCount').setAttribute('required', 'required');

View file

@ -1415,6 +1415,8 @@
"QuickConnectNotAvailable": "Ask your server administrator to enable Quick Connect",
"Raised": "Raised",
"Rate": "Rate",
"ReadInputAtNativeFramerate": "Read input at native frame rate",
"ReadInputAtNativeFramerateHelp": "Enabling this option may resolve some issues, e.g. live streams stopping prematurely.",
"RecentlyWatched": "Recently watched",
"RecommendationBecauseYouLike": "Because you like {0}",
"RecommendationBecauseYouWatched": "Because you watched {0}",