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ý
fa69ddd984
streamsink total bytes metric counter.
2023-03-17 20:20:23 +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ý
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ý
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ý
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ý
095f9fe8ee
gst as interface. ( #11 )
2022-10-13 19:57:31 +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ý
3cd59b9f30
rename module name from gitlab to github.
2022-07-14 22:10:41 +02:00
Miroslav Šedivý
e37f5c13ca
fix bug.
2022-07-04 18:03:35 +02:00
Miroslav Šedivý
8e80ef2c69
streamsrc mutex.
2022-06-25 23:53:19 +02:00
Miroslav Šedivý
555fd803bc
add active pipelines.
2022-06-19 01:03:16 +02:00
Miroslav Šedivý
5ab4848580
join pipelines_total.
2022-06-19 00:51:17 +02:00
Miroslav Šedivý
6deaa64884
capture metrics.
2022-06-15 00:23:16 +02: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ý
f32e7e7075
fix-races.
2022-02-14 17:41:47 +00:00
Miroslav Šedivý
d068698836
update logging.
2022-02-12 18:55:56 +01:00
Miroslav Šedivý
c2cf9277dc
emit /recevie samples on demand.
2022-01-22 17:58:05 +01:00
Miroslav Šedivý
8b6a2ed6d6
add webcam resolution + to config.
2022-01-08 23:53:45 +01:00
Miroslav Šedivý
6b14e01415
add media to capture config.
2021-12-09 23:22:24 +01:00
Miroslav Šedivý
b653856994
fix v4l2sink sync.
2021-12-05 22:25:35 +01:00
Miroslav Šedivý
6431f63da7
v4l2 drop-allocation.
2021-12-05 22:11:52 +01:00
Miroslav Šedivý
9a6eb942a4
keep appsrc / appsink in ctx.
2021-12-05 22:06:42 +01:00
Miroslav Šedivý
8de5cb2f4a
fix gst log.
2021-12-05 21:33:30 +01:00
Miroslav Šedivý
f9fe303b50
gst destroy remove.
2021-12-05 21:31:40 +01:00
Miroslav Šedivý
b932e94f77
gst refactor to use ctx.
2021-12-05 18:16:26 +01:00
Miroslav Šedivý
7c3a24a613
add zerolog to gst.
2021-12-05 17:52:25 +01:00
Miroslav Šedivý
09cb1e9c6a
webcam add videoconvert.
2021-12-05 16:35:04 +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ý
0a94191a5f
rename to StreamSink.
2021-12-01 20:30:18 +01:00
Miroslav Šedivý
065a7a2e84
gst minor changes.
2021-12-01 19:55:57 +01:00
Miroslav Šedivý
7bc9a40677
gst push function.
2021-11-28 22:37:17 +01:00
Miroslav Šedivý
710d0c9cd0
gst extract appsink.
2021-11-28 22:19:06 +01:00
Miroslav Šedivý
e45bd7098f
replace chan struct{}.
2021-10-04 14:40:20 +02:00
Miroslav Šedivý
8960fc2371
MoveListenerTo ensure atomic execution.
2021-10-01 14:41:21 +02:00
Miroslav Šedivý
27cb473ef9
stream implement MoveListenerTo.
2021-10-01 13:46:10 +02:00
Miroslav Šedivý
c9c8cc67ca
refactor broadcast pipeline.
2021-09-30 20:06:43 +02:00
Miroslav Šedivý
4debddf27d
remove leftover variable from capture manager.
2021-09-30 20:03:30 +02:00
Miroslav Šedivý
550084e195
refactor screencast pipeline.
2021-09-30 20:01:26 +02:00
Miroslav Šedivý
325af8fc5a
RemoveListener add dispatcher.
2021-09-29 01:03:39 +02:00
Miroslav Šedivý
77d2ef9aaf
stream listener use channel dispatcher.
2021-09-29 00:22:51 +02:00