From 92e5bcf8084e8d02afc2e3e5ee913d309f0f6f03 Mon Sep 17 00:00:00 2001 From: Jan Stabenow Date: Mon, 11 Nov 2024 14:03:21 +0100 Subject: [PATCH] Mod extends x11grap --- CHANGELOG.md | 4 ++ src/views/Edit/Sources/X11grab.js | 62 ++++++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dce987f..830bb2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,11 @@ - Add EarthCam publication service - Add other RTSP transport modes +- Add X11grap +- Add SDP ([PR-#47](https://github.com/datarhei/restreamer-ui/pull/47)) (thx patcarter883) +- Add support AV1 decoding ([PR-#46](https://github.com/datarhei/restreamer-ui/pull/46)) (thx patcarter883) - Fix wetter.com category +- Fix chromecast ([PR-#73](https://github.com/datarhei/restreamer-ui/pull/73)) (thx badincite) ## v1.13.0 > v1.14.0 diff --git a/src/views/Edit/Sources/X11grab.js b/src/views/Edit/Sources/X11grab.js index 1286de5..62dee4c 100644 --- a/src/views/Edit/Sources/X11grab.js +++ b/src/views/Edit/Sources/X11grab.js @@ -7,9 +7,11 @@ import makeStyles from '@mui/styles/makeStyles'; import Button from '@mui/material/Button'; import Grid from '@mui/material/Grid'; import RefreshIcon from '@mui/icons-material/Refresh'; +import TextField from '@mui/material/TextField'; import Typography from '@mui/material/Typography'; import FormInlineButton from '../../../misc/FormInlineButton'; +import MultiSelect from '../../../misc/MultiSelect'; import SelectCustom from '../../../misc/SelectCustom'; import Checkbox from '../../../misc/Checkbox'; import Video from '../../../misc/coders/settings/Video'; @@ -29,7 +31,7 @@ const initSettings = (initialSettings) => { probesize: 42_000_000, // bytes fflags: ['nobuffer'], thread_queue_size: 1028, - size: 'cif', + video_size: 'cif', framerate: '25', device: ':1', draw_mouse: false, @@ -49,11 +51,13 @@ const createInputs = (settings) => { input.options.push('-thread_queue_size', settings.thread_queue_size); input.options.push('-probesize', '' + settings.probesize); - input.options.push('-fflags', settings.fflags.join(',')); + if (settings.fflags.length !== 0) { + input.options.push('-fflags', '+' + settings.fflags.join('+')); + } input.options.push('-f', 'x11grab'); input.options.push('-video_size', settings.size); input.options.push('-framerate', settings.framerate); - if (settings.follow_mouse) { + if (settings.follow_mouse === true) { input.options.push('-draw_mouse', '1'); input.options.push('-follow_mouse', settings.follow_mouse); } else { @@ -97,7 +101,7 @@ function Source({ knownDevices = [], settings = {}, onChange = function (setting const handleChange = (what) => (event) => { let data = {}; - if (['device', 'framerate', 'size'].includes(what)) { + if (['device', 'probesize', 'fflags', 'framerate', 'video_size', 'thread_queue_size', 'follow_mouse' ].includes(what)) { data[what] = event.target.value; } @@ -160,11 +164,59 @@ function Source({ knownDevices = [], settings = {}, onChange = function (setting Refresh + + + + + + + + Mininum {32}, default {5000000} + + + + + + - +