Commit Graph

41 Commits

Author SHA1 Message Date
Miroslav Šedivý
728e27da34 minor changes, moving things around. 2023-04-18 12:07:49 +02:00
Miroslav Šedivý
dfea7fca42 refactor handler. 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ý
7cd469f7bd cleanup peer. 2023-04-18 12:07:49 +02: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ý
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ý
3cd59b9f30 rename module name from gitlab to github. 2022-07-14 22:10:41 +02: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ý
369d8f3ccf peer webrtc connection check. 2022-02-10 00:12:30 +01:00
Miroslav Šedivý
7b2c1570bf add SDP answer. 2021-11-28 18:36:47 +01:00
Miroslav Šedivý
44e74e3088 implement signal offer. 2021-11-25 00:07:17 +01:00
Miroslav Šedivý
137614c087 fix deadlock. 2021-09-18 00:56:03 +02:00
Miroslav Šedivý
75c1dd6d22 peer close simplified logging. 2021-09-02 21:58:00 +02:00
Miroslav Šedivý
e812cb9fbf pionlog to own folder. 2021-09-02 20:48:15 +02:00
Miroslav Šedivý
a95a987fb6 Destroy() does not return error. 2021-08-29 19:17:10 +02:00
Miroslav Šedivý
a03507227d webrtc logging. 2021-08-29 18:59:46 +02:00
Miroslav Šedivý
a852eddfb7 add mutex to webrtc peer. 2021-06-30 00:04:41 +02:00
Miroslav Šedivý
c2277c4917 webrtc: remove offer timeout as this is handled by lib. 2021-06-29 22:41:30 +02:00
Miroslav Šedivý
7df642a346 add iceTrickle for restart from config. 2021-06-27 22:05:37 +02:00
Miroslav Šedivý
09fdea1b11 add ice restarts. 2021-06-27 22:02:05 +02:00
Miroslav Šedivý
2b693f4e52 fix naming convention. 2021-02-14 17:11:21 +01:00
Miroslav Šedivý
45679f1b86 format Go source code. 2021-02-14 14:40:17 +01:00
Miroslav Šedivý
af3a28274d add customized WebRTC send functions. 2021-02-12 22:13:55 +01:00
Miroslav Šedivý
c8200e3bb7 add WebRTC send function. 2021-02-12 21:06:42 +01:00
Miroslav Šedivý
eb88c8dc62 independent tracks for users & stream switching. 2021-02-06 18:16:24 +01:00
Miroslav Šedivý
6756114e30 replace video track on demand. 2021-02-05 20:35:30 +01:00
Miroslav Šedivý
f62d36ac4f WebRTC SetVideoID. 2021-02-05 17:57:33 +01:00
Miroslav Šedivý
7902d7b1f1 Implement Audio & Video using custom StreamManager. 2021-02-04 20:39:48 +00:00
Miroslav Šedivý
cae8201908 add Trickle ICE support. 2021-02-02 20:43:33 +01:00
Miroslav Šedivý
ace7b254a3 split webrtc ConnectPeer function. 2021-02-02 19:21:48 +01:00
Miroslav Šedivý
91f1727723 lint remove whitespaces. 2021-02-02 18:28:32 +01:00
Miroslav Šedivý
4e79c487e5 bump pion v3 compatible. 2021-02-01 22:45:44 +01:00
Miroslav Šedivý
b73e2403af peer -> webrtc_peer. 2020-11-25 18:41:40 +01:00
Miroslav Šedivý
5d906e0a8b major refactor. 2020-11-01 16:09:48 +01:00
Miroslav Šedivý
dadac4f145 webrtc removed unused function. 2020-10-31 20:11:32 +01:00
Miroslav Šedivý
56de805f54 initial commit - from neko open source repository.. 2020-10-22 16:54:50 +02:00