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ý
dfc7eb3882
Fix noisy errors ( #49 )
...
* send message error.
* read message error.
* close webrtc conn only if not closed yet.
* file upload no files received.
2023-05-19 17:19:38 +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ý
43f8fe339f
webrtc peer do not set nil conn.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
5a2fcc1c8a
move consts.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
3f375c037f
fix track rtcp & paused.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
fcf6822833
move estimator to peer.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
1ba561b192
fix logging.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
c2b29ccf21
handle use webrtc logger.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
e8aab98012
refactro cursor image and pos.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
728e27da34
minor changes, moving things around.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
a2e0aeec77
receiver stop error reporting.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
dfea7fca42
refactor handler.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
c676d7a3a2
move collectors to metrics.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
5f0aafca51
remove deprecated functions.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
9d362ed036
move change funcs to peer.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
ec8560b290
add session & metrics to webrtc peer.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
9928feefef
refactor metrics.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
7cd469f7bd
cleanup peer.
2023-04-18 12:07:49 +02:00
Miroslav Šedivý
2ff47ac920
fix: ensure webrtc close is executed only once.
2023-03-27 19:28:28 +02:00
Miroslav Šedivý
08a5d5abb4
Split ICE Servers to frontend and backend ( #37 )
...
* split iceservers to frontend and backend.
* no backend ice servers when ice lite enabled.
* update config.
2023-03-27 18:34:24 +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ý
a4a3ff79ad
Toggle estimator config ( #32 )
...
* add estimator to conifg.
* ensure video auto is false when estimator is disabled.
2023-02-26 21:54:10 +01:00
Miroslav Šedivý
64abfd0b1a
cursors increase max serial to 300.
2023-02-21 00:14:50 +01:00
Miroslav Šedivý
30200d4057
Switch to listeners for webrtc pause ( #31 )
...
* switch to listeners for webrtc pause.
* group track vars.
* do not set or remove stream when paused.
2023-02-20 19:48:04 +01:00
Miroslav Šedivý
0086900053
GCC No-Op Pacer ( #29 )
...
* on rtcp send multiple packets.
* use no op pacer.
2023-02-14 21:19:14 +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ý
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ý
e80ae8019e
set answering dtls role as server. ( #24 )
2023-01-30 11:31:30 +01:00
Miroslav Šedivý
813a0da30c
WebRTC ping over data channel ( #23 )
...
* add datachannel ping to webrtc.
* add ping pong decode func.
2023-01-20 23:08:27 +01:00
Miroslav Šedivý
fb8462b56a
Add WebRTC candidate metrics ( #18 )
...
* stats: add protocol to iceCandidates.
* add ice candidates used metric.
* NewICECandidate use whole struct.
2022-12-16 13:49:51 +01:00
Miroslav Šedivý
6b39e8e0e8
Fix WebRTC mux issues ( #17 )
...
* use NewMultiUDPMuxFromPort.
* tcp mux add write buffer size.
2022-12-13 11:35:03 +01:00
Miroslav Šedivý
919a554a9e
track WriteSample fix log message.
2022-12-12 22:53:26 +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ý
d608e312eb
check if we already listen to requested stream. ( #13 )
2022-10-23 11:31:25 +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ý
f4a4e0152e
webrtc SetCursorPosition.
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ý
bf47e5a8d0
cleanup.
2022-07-04 18:23:35 +02:00
Miroslav Šedivý
8ada0217d0
reset counters when closed.
2022-07-04 17:47:04 +02:00
Miroslav Šedivý
d5c934f2af
add ReceiverReport.
2022-07-04 01:01:03 +02:00
Miroslav Šedivý
fb707f05a6
join bytes by a label.
2022-07-04 00:48:29 +02:00
Miroslav Šedivý
01b5d61e2b
add receiverEstimatedMaximumBitrate.
2022-07-04 00:38:46 +02:00
Miroslav Šedivý
3fda00bac5
add video id for webrtc metrics.
2022-07-03 23:21:25 +02:00
Miroslav Šedivý
e4261c53b1
iceCandidatesMu.
2022-07-03 23:06:56 +02:00
Miroslav Šedivý
bb35695255
split sctp and ice bytes.
2022-07-01 00:16:39 +02:00