Commit graph

34 commits

Author SHA1 Message Date
Alessandro Ros
ff187b6d8a
update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
Alessandro Ros
1ef5db5b3c
extend udpReadBufferSize to WebRTC UDP sockets (#5130)
Some checks failed
code_lint / go (push) Has been cancelled
code_lint / go_mod (push) Has been cancelled
code_lint / docs (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
this allows to decrease packet losses without touching system parameters.
2025-10-29 11:45:15 +01:00
Alessandro Ros
0cdae40fe3
estimate absolute timestamp more precisely (#5078)
When the absolute timestamp of incoming frames was not available, it
was filled with the current timestamp, which is influenced by latency
over time.

This mechanism is replaced by an algorithm that detects when latency is
the lowest, stores the current timestamp and uses it as reference
throughout the rest of the stream.
2025-10-12 11:02:14 +02:00
Alessandro Ros
e3b8af8933
switch to gortsplib/v5 (#4978)
Some checks failed
code_lint / go (push) Has been cancelled
code_lint / go_mod (push) Has been cancelled
code_lint / docs (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-09-16 13:10:34 +02:00
Alessandro Ros
35aceaa4a9
send server name (SNI) when opening TLS connections (#4973)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-09-15 19:38:36 +02:00
Alessandro Ros
b627128d0f
remove context from webrtc.PeerConnection arguments (#4854)
contexts are useless since there's already PeerConnection.Close().
2025-08-12 15:19:59 +02:00
Alessandro Ros
61382e496b
fix memory leak when reloading the configuration (#4855)
When a path has a MPEG-TS, RTP or WebRTC source and the path
configuration is reloaded, a routine was left open because the reload
channel was not handled. This fixes the issue.
2025-08-11 17:50:40 +02:00
Alessandro Ros
b59c37ad4b
remove redundant definitions (#4793) 2025-07-27 12:01:52 +02:00
Alessandro Ros
77a3c7ae6e
webrtc: route original absolute timestamp of packets (#1300) (#4415) 2025-04-12 11:34:27 +02:00
Alessandro Ros
8b98c02903
rtsp: route original absolute timestamp of packets (#1300) (#4378)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
2025-03-29 19:08:42 +01:00
Alessandro Ros
c692f3b78c
webrtc: rewrite WHIP client (#4299)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
2025-03-01 17:01:57 +01:00
Alessandro Ros
aa101c680c
webrtc: make client always provide UDP candidates (#4298) 2025-03-01 16:52:59 +01:00
Alessandro Ros
5c6cf58d75
webrtc: fix connecting to TCP-only sources (#4293) 2025-03-01 11:07:50 +01:00
Jean-Philippe Bergeron
e8297478f3
Configurable webrtcSTUNGatherTimeout (#4221) 2025-02-07 16:34:17 +01:00
Alessandro Ros
8f6267deb8
bump pion/webrtc to v4 (#4145) 2025-01-13 23:19:29 +01:00
Alessandro Ros
b49acb1e00
accept durations expressed as days (i.e. '1d') (#4094) 2025-01-02 12:44:15 +01:00
Alessandro Ros
8cb584b514
api, metrics: fix RTC lowercase in webRTCSession and webRTCSource (#4076) 2024-12-25 17:47:24 +01:00
Andres Uribe
f8b366c604
webrtc: restart ICE only on failed connection states (#3899)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
* webrtc: Restart ICE only on failed connection states

* rename "connected" into "ready" since WebRTC can emit the "connected" state multiple times

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-10-31 12:47:35 +01:00
Alessandro Ros
6a38c87a5b
hls, webrtc: add FromStream / ToStream (#3752)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
2024-09-09 12:59:23 +02:00
Alessandro Ros
65d90f7cc6
allow using MTX_QUERY inside source (#3486)
this allows to pass query parameters to sources, for instance:

source: rtsp://my_host/my_path?$MTX_QUERY
sourceOnDemand: true
2024-06-18 22:10:26 +02:00
Jason Walton
1c2f95f609
webrtc: allow configuring timeouts (#3404) (#3406)
* webrtc: allow configuring timeouts (#3404)

* fix from code inspect
2024-05-30 13:36:58 +02:00
Alessandro Ros
407702380a
webrtc: in answer, include codecs that are actually in use (#3374) 2024-05-19 19:41:42 +02:00
Alessandro Ros
e283725cde
support routing multichannel Opus between RTSP, SRT, HLS, UDP and recording in MPEG-TS and fMP4 (#3355) (#3368) 2024-05-19 14:38:57 +02:00
Alessandro Ros
1204f76eb7
update golangci-lint (#3300) 2024-04-28 18:20:08 +02:00
Rafael Scheidt
2bd8ac7e19
fix support for JWT authentication in API, metrics, playback, pprof (#3253)
Co-authored-by: Rafael Scheidt <rafaelscheidt@Rafaels-MacBook-Air.local>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-04-18 23:55:48 +02:00
Alessandro Ros
24cc62e344
hls: decrease number of idle connections kept open after a reconnection (#3128) 2024-03-10 11:51:15 +01:00
Jonathan Martin
1989997fe1
webrtc: fix memory leak when WHEP track gathering fails and decrease count of idle HTTP connections (#3124)
* fix: whep gathering failure leaks peer connections

* fix: failure to create whep client leaks

when read fails, client is not closed

* fix: close idle connection with whip client

* fix: no link check on early whip client close

* move http.Client.CloseIdleConnections() outside WHIPClient

* automatically call WHEPClient.Close() in case of errors during WHEPClient.Read() or WHEPClient.Publish()

---------

Co-authored-by: Jonathan Martin <jonathan.martin@marss.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-03-10 11:33:00 +01:00
Alessandro Ros
b6eaa6bc18
move test utilities into 'test' (#3016)
* move test utilities into 'test'

* rename newEmptyTimer into emptyTimer
2024-02-13 18:49:27 +01:00
Alessandro Ros
d261bfe773
support static sources in paths with regular expressions (#824) (#2799)
This allows to proxy requests to other servers by using regular
expressions.
2023-12-10 21:23:41 +01:00
Alessandro Ros
11988249df
move servers into internal/servers (#2792) 2023-12-08 19:17:17 +01:00
Alessandro Ros
687d8685ef
webrtc: improve connectivity mechanism (#2686) 2023-11-12 23:55:28 +01:00
Alessandro Ros
15f1c73314
hls: apply readTimeout to HLS sources (#2627) 2023-11-02 12:45:46 +01:00
Alessandro Ros
68b862c7f6
webrtc: allow using sourceFingerprint with WebRTC sources (#2618) (#2626) 2023-11-02 12:38:20 +01:00
Alessandro Ros
43d41c070b
move static sources into dedicated package (#2616) 2023-10-31 14:19:04 +01:00