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;