Commit Graph

788 Commits

Author SHA1 Message Date
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ý
bfabee12e2
gst emit video keyframe on demand. (#27) 2023-02-07 21:43: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ý
a72648c409
add dockerfile. (#22) 2023-01-27 22:32:33 +01:00
Gheorghe
94981e30aa chore: add more resolutions
- 25 fps 2k
- 25 fps 1600x900
- 25 fps 1368x768
- 25 fps 800x1600
2023-01-23 17:04:32 +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ý
ba0dea8022 switch to xkb. 2023-01-16 13:54:17 +01:00
Miroslav Šedivý
eac9796c47 no free keycodes, pick last two keycodes anyway. 2023-01-16 13:54:17 +01:00
Miroslav Šedivý
67cc23fd53 circular list for free keycodes. 2023-01-16 13:54:17 +01:00
Miroslav Šedivý
bd04ca88e8 fix missing error message on wrong config. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
8381020415 default provider: multiuser. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
7601af9917 fix default pipeline. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
1fb5ae43dd allow multiple users to be set in object provider. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
107eba22a5 select profile primarily from corresponding session, if exists. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
2ff8d84ba2 fix errors. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
af95cb4d72 change dummy to noauth mode. 2023-01-13 12:01:58 +01:00
Miroslav Šedivý
319bd457f3 add multiuser 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ý
6574470278 login logout proper http error handling. 2023-01-12 23:21:56 +01:00
Miroslav Šedivý
b793e5b377 add stereo to opus codec. 2023-01-12 20:34:09 +01:00
Miroslav Šedivý
3c3042d691
Add batch endpoint (#19)
* add batch endpoint.

* keep error code.

* use utils.HttpSuccess.

* add batch to openapi.

* body omitempty.
2023-01-09 23:18:47 +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ý
b49f545094 properly log unhandled panics. 2022-12-15 22:15:50 +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ý
05c4fa34c5 fix indirect dependencies. 2022-11-28 22:09:33 +01:00
Miroslav Šedivý
833c0d5e86 upgrade dependencies. 2022-11-28 21:32:20 +01:00
Miroslav Šedivý
09f213f442 remove /var/log/neko fom Dockerfile. 2022-11-11 19:46:25 +01:00
Miroslav Šedivý
7946afaffe fix dev supervisord. 2022-11-11 19:43:09 +01:00
Miroslav Šedivý
2cb64d15a0
send heartbeat with ping. (#16) 2022-11-11 17:58:54 +01:00
Miroslav Šedivý
482476489e
supervisord add -s flag (#15)
* fix duplicate supervisord logs.

* add -s flag.
2022-11-11 17:40:50 +01:00
Miroslav Šedivý
3d131bb42a supervisord separate logging. 2022-11-10 18:18:39 +01:00
Miroslav Šedivý
d894e888b8 fix generic plugin error message. 2022-10-25 22:46:21 +02: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ý
e0bee67e85 fix build pipe redirection. 2022-10-24 22:54:28 +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ý
095f9fe8ee
gst as interface. (#11) 2022-10-13 19:57:31 +02:00
Miroslav Šedivý
0badeeee36
Fix cursor size. (#10)
* fix cursor size.

* folders -> config.
2022-10-04 20:21:40 +02:00
Miroslav Šedivý
c34a76c8a3 broadcast url in config. 2022-09-23 17:21:33 +02:00
Miroslav Šedivý
194fd29679 capture fix replaces for pipelines. 2022-09-23 17:21:33 +02:00
Miroslav Šedivý
da24f92e72 broadcast log url. 2022-09-23 17:21:33 +02:00
Miroslav Šedivý
3eedbbf8ea broadcast pipeline fn. 2022-09-23 17:21:33 +02:00
Miroslav Šedivý
a6f117686f create pipeline fn return error. 2022-09-23 17:21:33 +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ý
f512b97708 fix whitespace. 2022-09-13 22:21:08 +02:00
Miroslav Šedivý
23ce5c0cdd switch to gtk popup window. 2022-09-12 21:19:21 +02:00
Miroslav Šedivý
d35c237f48 gst remove main loop. 2022-09-12 21:19:21 +02:00