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}
+
+
${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}",