Miroslav Šedivý
37b131c74c
fix plugin settings unmarshal by changing to "name.key".
2024-06-16 18:08:46 +02:00
Miroslav Šedivý
5a04066c55
add PluginSettings unmarshaller.
2024-06-16 16:42:32 +02:00
Miroslav Šedivý
fc3b6f2e21
OnProfileChanged add new & old profile.
2024-06-09 18:02:01 +02:00
Miroslav Šedivý
0e8108e9a4
add session delete and disconnect to API.
2024-05-09 10:28:58 +02:00
Miroslav Šedivý
416faa3df4
add session to host change.
2024-05-06 23:47:13 +02:00
Miroslav Šedivý
57ffca0bed
add session to settings change.
2024-05-05 00:03:32 +02:00
Miroslav Šedivý
b90eb87c22
unify types.ScreenSize and add ID to screen size update.
2024-05-03 22:40:56 +02:00
Miroslav Šedivý
0f45aa3f19
implement control protection.
2024-04-21 20:10:16 +02:00
Miroslav Šedivý
a61eade929
add LockedLogins to settings.
2024-04-20 14:27:15 +02:00
Miroslav Šedivý
3dbcc41795
upload drop to config.
2023-11-24 10:44:24 +01:00
Miroslav Šedivý
b40c0778c8
file chooser dialog diabled by default.
2023-11-24 10:39:09 +01:00
Miroslav Šedivý
501280f8aa
server proxy, router opts and optional CORS.
2023-11-19 14:35:19 +01:00
Miroslav Šedivý
4da7869e70
Add Xorg modifiers ( #57 )
...
* implement additional modifiers to xorg.
* xorg modifiers to API.
* update modifiers api & add ws.
* scroll pos rename to delta and add ctrl key.
2023-09-11 16:34:57 +02:00
Miroslav Šedivý
ea5517b270
Xorg input driver ( #53 )
...
* add xf86 input driver.
* cleanup.
* rewrite to unix socket PoC.
* add input rebuild.
* lint & docs.
* add input driver struct.
* comments, lint, socket name from config.
* add touch events to webrtc.
* switch to uint32.
* misc update logging & linting,
* fix screen size
* set touchscreen as core pointer.
* add touch to ws control.
* SendCoreEvents.
* extract to own xinput folder.
* add debounce.
* switch pressure to uint8.
* check buffer size.
* send touch events with system init.
2023-08-17 16:14:59 +02:00
Miroslav Šedivý
e3e9d1606d
Refactor signaling for video and audio ( #51 )
...
* add audio and signal request.
* disable audio by default.
* fix SignalProvide.
* disable estimator when track disabled.
2023-06-26 21:27:14 +02:00
Miroslav Šedivý
3e8d686c0f
Bandwidth estimator refactor ( #46 )
...
* rewrite to use stream selector.
* WIP.
* add nacks to metrics.
* add estimate trend.
* estimator based on trend detector.
* add estimator unstable duration.
* add estimator debug.
* add stalled duration.
* estimator move values to config.
* change default estimator values.
* minor style changes.
* fix websocket video messages.
* replace video track with ivdeo id.
2023-05-15 19:29:39 +02:00
Miroslav Šedivý
848556adbd
add time stats to state.
2023-05-15 16:47:59 +02:00
Miroslav Šedivý
cf4e0666fe
add locked controls to settings.
2023-05-15 16:47:28 +02:00
Miroslav Šedivý
a75ae187b4
add plugin scope to settings.
2023-04-28 22:53:41 +02:00
Miroslav Šedivý
0ea1c2870f
Refactor websocket session sync ( #44 )
...
* refactor websocket peer and comment functions.
* update comments.
* add DestroyWebSocketPeer.
2023-04-23 11:23:20 +02:00
Miroslav Šedivý
728e27da34
minor changes, moving things around.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
1a752e43d2
Add plugins required flag ( #40 )
...
* add required plugins flag.
* update plugins logs.
* add plugins subcommand.
* move preflight to prerun.
2023-03-31 12:02:33 +02:00
Miroslav Šedivý
09508638ce
session save & load from a file. ( #38 )
2023-03-27 18:33:51 +02:00
Miroslav Šedivý
9936a04fea
add passive estimator & REMB back. ( #35 )
2023-03-13 17:55:52 +01:00
Miroslav Šedivý
17bfd2d58f
Sample listeners chan ( #33 )
...
* switch to sample listeners.
* add streamsink total bytes to metrics.
* on rtcp to chan.
* change logs.
* streamsink add real bitrate.
* add timing information to sample.
* bitrate buckets.
* switch to WriteSample.
2023-03-07 00:08:53 +01:00
Miroslav Šedivý
977662affe
Upgrade to go 1.20 ( #30 )
...
* upgrade dependencies.
* videoscale element to nearest neighbor.
2023-02-26 21:57:02 +01:00
Miroslav Šedivý
124c5ae117
Wait for keyframe on switching streams ( #28 )
...
* stream sink add keyframe lobby.
* change streamsink keyframe identifier.
* add h264.
* use gstreamers is delta unit for sample.
* use delta unit.
2023-02-14 21:19:02 +01:00
Miroslav Šedivý
f8b128e1e9
Custom sizes with XRandR ( #25 )
...
* xserver dummy with RandR.
* update.
* remove screen configurations from xorg.
* screen size cannot be nil anymore.
* use predefined screen configurations.
* use screen configurations.
* fix error.
* remove comment.
2023-02-14 21:18:47 +01:00
Miroslav Šedivý
2364facd60
WebRTC congestion control ( #26 )
...
* Add congestion control
* Improve stream matching, add manual stream selection, add metrics
* Use a ticker for bitrate estimation and make bandwidth drops switch to lower streams more aggressively
* Missing signal response, fix video auto bug
* Remove redundant mutex
* Bitrate history queue
* Get bitrate fn support h264 & float64
---------
Co-authored-by: Aleksandar Sukovic <aleksandar.sukovic@gmail.com>
2023-02-06 19:45:51 +01:00
Miroslav Šedivý
1fb5ae43dd
allow multiple users to be set in object provider.
2023-01-13 12:01:58 +01:00
Miroslav Šedivý
e5c84469ce
MemberProvider: add variable names.
2023-01-13 12:01:58 +01:00
Miroslav Šedivý
b793e5b377
add stereo to opus codec.
2023-01-12 20:34:09 +01:00
Miroslav Šedivý
2cb64d15a0
send heartbeat with ping. ( #16 )
2022-11-11 17:58:54 +01:00
Miroslav Šedivý
6067367acd
Capture bandwidth switch ( #14 )
...
* Handle bitrate change by finding the stream with closest bitrate as peer
* Convert video id into bitrate when creating peer or changing bitrate
* Try to fix prometheus panic
* Revert metrics label name change
* minor fixes.
* bitrate selector.
* skip if moving to the same stream.
* no closure for getting target bitrate.
* fix: high res switch to lo video, stream bitrate out of range
* revert dev config change.
* white space.
Co-authored-by: Aleksandar Sukovic <aleksandar.sukovic@gmail.com>
2022-10-25 20:25:00 +02:00
Miroslav Šedivý
5ad5daa6bb
Stream bucket manager ( #12 )
...
* refactor webrtc.
* bind track with a single connection.
* audio+video codec.
* move stream selection to bucket manager.
* audio w/o bucket manager.
* revert peer changes.
* return video IDs.
* destroy & recreate all.
* add video ID change.
* Track -> Recevier.
2022-10-17 13:39:31 +02:00
Miroslav Šedivý
d5863d8b95
set WebRTC video codec H.264 profile-level-id to 42e01f to be compatible with Firefox clients.
2022-09-13 22:21:56 +02:00
Miroslav Šedivý
6d2ba7b640
name caps and encoder.
2022-09-10 23:26:41 +02:00
Miroslav Šedivý
691150900b
Temporary websocket disconnect handling ( #6 )
...
* fix websocket close log error.
* logger session interface no pointer.
* websocket delayet disconnect.
* session host: save id not pointer to a session.
* fix if hostId not stored.
2022-08-26 20:16:40 +02:00
Miroslav Šedivý
a6813f994c
ws control buttons & keys add optional pos.
2022-07-28 12:43:31 +02:00
Miroslav Šedivý
7d5ec0190a
add button events to control WebSocket.
2022-07-28 12:43:31 +02:00
Miroslav Šedivý
f4a4e0152e
webrtc SetCursorPosition.
2022-07-28 12:43:31 +02:00
Miroslav Šedivý
81531d74c1
websocket move cursor & scroll.
2022-07-28 12:43:31 +02:00
Miroslav Šedivý
babddacbf3
Go generics and changes in v1.18 ( #5 )
...
* ArrayIn to use generics.
* interface{} -> any.
2022-07-28 12:20:20 +02:00
Miroslav Šedivý
3cd59b9f30
rename module name from gitlab to github.
2022-07-14 22:10:41 +02:00
Miroslav Šedivý
01b5d61e2b
add receiverEstimatedMaximumBitrate.
2022-07-04 00:38:46 +02:00
Miroslav Šedivý
52642dbeb6
add plugins to member profile.
2022-05-08 00:15:36 +02:00
Aleksandar Sukovic
49ff490640
load plugins in order of dependencies.
2022-05-03 11:17:04 +00:00
Maksim Dorokhin
ae7e6dc2d7
add error to plugin start.
2022-04-20 09:31:37 +00:00
Miroslav Šedivý
61059c9b3c
revert backwards compatibility.
2022-04-19 10:16:59 +00:00
Aleksandar Sukovic
fdd0639036
expose plugin service.
2022-04-19 10:14:59 +00:00