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ý
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ý
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ý
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ý
f4a4e0152e
webrtc SetCursorPosition.
2022-07-28 12:43:31 +02:00
Miroslav Šedivý
3cd59b9f30
rename module name from gitlab to github.
2022-07-14 22:10:41 +02:00
Miroslav Šedivý
d5c934f2af
add ReceiverReport.
2022-07-04 01:01:03 +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ý
bb35695255
split sctp and ice bytes.
2022-07-01 00:16:39 +02:00
Miroslav Šedivý
fc5c017666
stats ice Candidates Count.
2022-06-30 23:50:47 +02:00
Miroslav Šedivý
527b1f08f8
add webrtc metrtics.
2022-06-25 20:12:42 +02:00
Miroslav Šedivý
149d74150b
sessions in private still get cursor info & send inactive.
2022-03-27 00:35:33 +01:00
Miroslav Šedivý
d004ddd68f
private mode implementation.
2022-03-26 23:20:38 +01:00
Miroslav Šedivý
8593d2d0fd
move shared code to pkg.
2022-03-20 11:43:00 +01:00
Miroslav Šedivý
94c17e9a42
rename module to gitlab.com/demodesk/neko/server.
2022-03-20 11:27:41 +01:00
Miroslav Šedivý
d068698836
update logging.
2022-02-12 18:55:56 +01:00
Miroslav Šedivý
d20fa071e7
register negotiation event after initial offer.
2022-02-10 23:39:52 +01:00
Miroslav Šedivý
924be20505
WebRTC TCP and UDP mux.
2022-02-09 20:45:03 +00:00
Miroslav Šedivý
14a2e698ac
add stop fn to remote track.
2022-01-06 22:28:34 +01:00
Miroslav Šedivý
0f9f9a376c
fix remote track logging.
2022-01-06 20:41:44 +01:00
Miroslav Šedivý
6b14e01415
add media to capture config.
2021-12-09 23:22:24 +01:00
Miroslav Šedivý
670e0ee17d
member profile can share media.
2021-12-09 21:48:02 +01:00
Miroslav Šedivý
64c3449322
pipeline error handling.
2021-12-02 23:35:38 +01:00
Miroslav Šedivý
d70ae4410f
implement webcam.
2021-12-02 23:06:21 +01:00
Miroslav Šedivý
5643e7abbc
add streamsrc to capture.
2021-12-01 22:36:45 +01:00
Miroslav Šedivý
75b1e08874
virtual microphone OnTrack.
2021-11-28 23:16:26 +01:00
Miroslav Šedivý
7b2c1570bf
add SDP answer.
2021-11-28 18:36:47 +01:00
Miroslav Šedivý
096efe9b38
add on track log.
2021-11-25 23:46:06 +01:00
Miroslav Šedivý
0075cdca2b
implement OnNegotiationNeeded.
2021-11-25 21:43:39 +01:00
Miroslav Šedivý
318b833b30
set position in session.
2021-10-23 20:25:18 +02:00
Miroslav Šedivý
2068c0ee05
webrtc remote desktop from cursor pos.
2021-10-21 22:53:54 +02:00
Miroslav Šedivý
d5c0c62675
lint fix minor problems.
2021-10-07 21:41:19 +02:00
Miroslav Šedivý
0245c73e2b
rename to PeerStreamTrack.
2021-10-01 00:02:54 +02:00
Miroslav Šedivý
9d4d5766ef
webrtc refactor peer track.
2021-09-27 00:50:49 +02:00
Miroslav Šedivý
beac1cb088
peer configuration multiple codecs.
2021-09-26 22:59:45 +02:00
Miroslav Šedivý
fa168a53c9
webrtc extract connection.
2021-09-26 22:26:22 +02:00
Miroslav Šedivý
e0f1857c51
fx WebRTC logging.
2021-09-05 22:44:16 +02:00
Miroslav Šedivý
00fc3afcd7
extract webrtc payload to own module.
2021-09-02 21:06:58 +02:00
Miroslav Šedivý
e812cb9fbf
pionlog to own folder.
2021-09-02 20:48:15 +02:00
Miroslav Šedivý
7e2f173460
unify shutdown logs.
2021-09-02 00:00:29 +02:00