diff --git a/src/apps/dashboard/controllers/livetvtuner.html b/src/apps/dashboard/controllers/livetvtuner.html index 88967bbb2b..6cdf14722c 100644 --- a/src/apps/dashboard/controllers/livetvtuner.html +++ b/src/apps/dashboard/controllers/livetvtuner.html @@ -90,6 +90,14 @@
${IgnoreDtsHelp}
+
+ +
${ReadInputAtNativeFramerateHelp}
+
+

${DrmChannelsNotImported}


diff --git a/src/apps/dashboard/controllers/livetvtuner.js b/src/apps/dashboard/controllers/livetvtuner.js index b9140b17eb..fa51d4c4e7 100644 --- a/src/apps/dashboard/controllers/livetvtuner.js +++ b/src/apps/dashboard/controllers/livetvtuner.js @@ -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'); diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 0204b9817d..c135e1aefa 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -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}",