diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35168c1..47f9516 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
## v1.6.0 > x.x.x
+- Add copyts, start_at_zero and use_wallclock_as_timestamps option
- Add heuristic to find core address if UI is proxied
- Add Turkish translation (thanks to Ramazan Sancar) ([#22](https://github.com/datarhei/restreamer-ui/issues/22))
- Add Danish translation (Thanks to Filip Stadler and Info)
diff --git a/src/views/Edit/Sources/Network.js b/src/views/Edit/Sources/Network.js
index b11ef06..8aed912 100644
--- a/src/views/Edit/Sources/Network.js
+++ b/src/views/Edit/Sources/Network.js
@@ -73,6 +73,9 @@ const initSettings = (initialSettings) => {
settings.general = {
fflags: ['genpts'],
thread_queue_size: 512,
+ copyts: false,
+ start_at_zero: false,
+ use_wallclock_as_timestamps: false,
...settings.general,
};
@@ -180,6 +183,18 @@ const createInputs = (settings, config, skills) => {
input.options.push('-thread_queue_size', settings.general.thread_queue_size);
+ if (settings.general.copyts) {
+ input.options.push('-copyts');
+ }
+
+ if (settings.general.start_at_zero) {
+ input.options.push('-start_at_zero');
+ }
+
+ if (settings.general.use_wallclock_as_timestamps) {
+ input.options.push('-use_wallclock_as_timestamps', '1');
+ }
+
if (settings.mode === 'push') {
if (settings.push.type === 'hls') {
input.address = getLocalHLS(config);
@@ -590,6 +605,23 @@ function Pull(props) {
+
+ copyts}
+ checked={settings.general.copyts}
+ onChange={props.onChange('general', 'copyts')}
+ />
+ start_at_zero}
+ checked={settings.general.start_at_zero}
+ onChange={props.onChange('general', 'start_at_zero')}
+ />
+ use_wallclock_as_timestamps}
+ checked={settings.general.use_wallclock_as_timestamps}
+ onChange={props.onChange('general', 'use_wallclock_as_timestamps')}
+ />
+
@@ -799,7 +831,7 @@ function Source(props) {
settings.rtsp[what] = value;
}
} else if (section === 'general') {
- if ([].includes(what)) {
+ if (['copyts', 'start_at_zero', 'use_wallclock_as_timestamps'].includes(what)) {
settings.general[what] = !settings.general[what];
} else {
settings.general[what] = value;