Commit graph

263 commits

Author SHA1 Message Date
Eugene Marushchenko
9e9fae9a10
add structured logging (#5219)
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
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-12-27 20:42:06 +01:00
KHuynh
ade0cddeb3
support multiple CORS origins (#5150)
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-11-21 02:00:46 +01:00
Alessandro Ros
ff187b6d8a
update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
Alessandro Ros
8858bf1db9
simplify code with ptrOf (#5179) 2025-11-11 12:01:03 +01:00
Alessandro Ros
adc4a6ceb6
add udpReadBufferSize parameter (#5129)
this allows to set a global UDP read buffer, applied to every UDP socket.
2025-10-29 11:28:22 +01:00
Alessandro Ros
f81c50ee68
rtsp: support reading streams tunneled with HTTP or WebSocket (#4986)
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-17 22:31:20 +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
e0f4748839
modernize code (#4947)
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-07 16:08:47 +02:00
Alessandro Ros
03623799f5
use slices.Contains when possible (#4859) 2025-08-12 12:28:20 +02:00
Alessandro Ros
462fb2bd0f
allow setting UDP read buffer size (#3308) (#4846)
new parameters: rtspUDPReadBufferSize, rtpUDPReadBufferSize, mpegtsUDPReadBufferSize
2025-08-11 12:21:00 +02:00
Alessandro Ros
d0430d8ea5
support ingesting RTP streams (#1515) (#4843)
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_e2e (push) Waiting to run
2025-08-09 16:12:10 +02:00
Alessandro Ros
7feff1d1dc
support MPEG-TS over unix sockets (#4388) (#4389) (#4828)
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_e2e (push) Waiting to run
2025-08-08 18:03:38 +02:00
Alessandro Ros
d423a71aaa
update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro Ros
7ac752097b
rpi: allow setting software H264 profile and level (#3965) (#4786)
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_e2e (push) Waiting to run
2025-07-25 13:40:15 +02:00
Alessandro Ros
0fe12f8bf6
rpi: rename rpiCameraProfile into rpiCameraH264Profile, rpiCameraLevel into rpiCameraH264Level (#3965) (#4785) 2025-07-25 11:44:55 +02:00
Alessandro Ros
1cabc382b0
rpi: rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality (#4784) 2025-07-25 11:40:09 +02:00
Alessandro Ros
94e001e736
rpi: add validity checks on rpiCameraProfile and rpiCameraLevel (#4783) 2025-07-25 11:36:40 +02:00
Alessandro Ros
9ddcbf5c97
recorder: limit maximum part size (#4674) (#4760)
this prevents RAM exhaustion.
2025-07-20 19:16:33 +02:00
Alessandro Ros
c475f84e5d
rtsp: support encrypting UDP and UDP-multicast streams (#4690) 2025-07-05 13:46:59 +02:00
Alessandro Ros
adf6ca9f90
delete paths that belong to a new configuration (#4013) (#4568)
when a new configuration is pushed with either API or hot reloading,
the server now checks whether existing paths belong to a new
configuration. If they do, these paths are deleted.
2025-05-27 22:02:37 +02:00
Alessandro Ros
5013d585fc
allow using colon in path names (#4377) (#4519) 2025-05-11 10:55:14 +02:00
Alessandro Ros
74bfb988d7
allow disabling JWT in HTTP query parameters (#4518) 2025-05-11 10:21:08 +02:00
Alessandro Ros
db3c2f8cae
add authJWTJWKSFingerprint (#4409) (#4514) 2025-05-10 16:12:35 +02:00
Dimitri Marechal
1827e062bd
add authJWTExclude to exclude actions when using JWT (#3431)
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_e2e (push) Has been cancelled
* Added authJWTExclude to allow exclusion of actions while using the JWT authentication method

* add test

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-04-25 19:55:11 +02:00
Alessandro Ros
8ce49727d6
rpi: support exposing a secondary stream from the same camera (#4426) 2025-04-14 11:56:08 +02:00
Alessandro Ros
517ba4124c
restore support for using unix timestamp in record path (#4330) (#4417) 2025-04-12 12:16:08 +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
Vyacheslav Kadyshev
1069e131b0
allow to customize syslog prefix (#4356)
Co-authored-by: Кадышев Вячеслав <v.kadyshev@dssl.ru>
2025-03-24 15:54:33 +01:00
Alessandro Ros
b64650ca4a
record: prevent recordDeleteAfter from deleting current segment (#4331) 2025-03-16 12:24:40 +01:00
Alessandro Ros
44136b3045
api: fix crash in /recordings/list (#4040) (#4291)
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
The API crashed when

- '%path%' is not present in 'recordPath'
- 'all_others' is in 'paths'
- there's at least one recording segment

A recording segment without path is parsed as a segment with an empty
path. This path is then passed to FindPathConf(), that returns an error
in case of empty or invalid paths. This error is not checked for
performance reasons, leading to the crash.

This PR prevents empty or invalid paths from reaching FindPathConf().
2025-02-28 19:04:05 +01:00
Alessandro Ros
386be42784
rtsp: rewrite authentication around ServerConn.VerifyCredentials (#4267)
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-02-18 17:54:13 +01:00
Alessandro Ros
7ade2896e5
warn users when non-existent fields are used in conf (#4261) 2025-02-18 15:23:44 +01:00
Alessandro Ros
d822c2a200
rtsp: support using relative URLs in sourceRedirect (#4260) 2025-02-18 15:23:07 +01:00
Alessandro Ros
b950a0a601
rtsp: fix authentication when rtspAuthMethods is empty (#4266)
when rtspAuthMethods is nil, digest+SHA256 gets enabled, resulting in
the inability of FFmpeg and most clients to connect due to
compatibility issues.
2025-02-18 15:18:17 +01:00
Alessandro Ros
244da930a1
switch to mediacommon/v2 (#4259)
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
2025-02-17 14:54:58 +01:00
Jean-Philippe Bergeron
e8297478f3
Configurable webrtcSTUNGatherTimeout (#4221) 2025-02-07 16:34:17 +01:00
Alessandro Ros
ac0ddc9e8a
playback: improve /list response time (#3637) (#4096)
Response times of the /list endpoint were slow because the duration of
each segment was computed from scratch by summing the duration of each
of its parts.

This is improved by storing the duration of the overall segment in the
header and using that, if available.
2025-01-03 13:08:46 +01:00
Alessandro Ros
b49acb1e00
accept durations expressed as days (i.e. '1d') (#4094) 2025-01-02 12:44:15 +01:00
Alessandro Ros
df3362aef8
warn users if deprecated parameters are being used (#4080)
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-12-25 19:28:54 +01:00
Alessandro Ros
dfb792eb90
rtsp: rename encryption, protocols, serverKey, serverCert into rtspEncryption, rtspProtocols, rtspServerKey, rtspServerCert (#4078) 2024-12-25 18:26:14 +01:00
Alessandro Ros
d641392da5
fix race condition when checking configuration (#4044)
* simplify configuration parser

* fix race condition when checking configuration
2024-12-15 12:34:51 +01:00
Alessandro Ros
576a117c7c
bump Golang to 1.23 (#3702)
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-11-04 14:02:05 +01:00
Alessandro Ros
1dd975504f
rpi: increase default camera bitrate to 5 Mbps (#3896)
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-10-21 01:25:32 +02:00
Alessandro Ros
a532779e33
simplify Path.HasStaticSource() (#3876)
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-10-14 14:47:51 +02:00
Alessandro Ros
4d0ce87f09
hls: support generating streams with multiple audio tracks (#2728) (#3793) 2024-10-03 19:38:54 +02:00
Alessandro Ros
7b01f48d40
prevent setting readTimeout / writeTimeout to zero (#3750) 2024-09-09 12:36:53 +02:00
Alessandro Ros
73a300afd0
fix cleaning of recordings in case of multiple recordDeleteAfter values (#3557) (#3741) 2024-09-08 20:33:18 +02:00
Alessandro Ros
0d1da6bd5b
allow to set the JWT claim key that contains permissions (#3560) (#3692) 2024-08-26 12:43:28 +02:00
Alessandro Ros
3700d5e5b9
rpi: fix passing unsigned integers to component (#3672)
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
2024-08-21 00:08:54 +02:00