Commit graph

123 commits

Author SHA1 Message Date
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
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
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
d822c2a200
rtsp: support using relative URLs in sourceRedirect (#4260) 2025-02-18 15:23:07 +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
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
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
73a300afd0
fix cleaning of recordings in case of multiple recordDeleteAfter values (#3557) (#3741) 2024-09-08 20:33:18 +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
Alessandro Ros
41a3fd503d
rpi: add H264 software encoder (#2581) (#3670)
This allows to use the RPI camera on the Raspberry Pi 5 too.
2024-08-21 00:05:40 +02:00
Alessandro Ros
f4051eb63d
rpi: add rpiCameraFlickerPeriod (#3463) (#3667)
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-08-19 11:22:54 +02:00
Alessandro Ros
aade940296
Revert "enable runOnDemandRestart by default (#3605)" (#3609)
This reverts commit 547e56e82b.
2024-08-04 12:32:37 +02:00
Alessandro Ros
547e56e82b
enable runOnDemandRestart by default (#3605)
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-03 20:51:54 +02:00
Alessandro Ros
9554fc4ba0
prevent mixing together legacy and current auth mechanism (#3258) (#3460) 2024-06-12 17:38:55 +02:00
Alessandro Ros
c0ad6e4dc5
raise an error in case recordPath is incompatible with the playback server (#3356) 2024-05-14 17:40:45 +02:00
Alessandro Ros
575d3585fe
fix unexpected behavior of authInternalUsers or authHTTPExclude (#3316)
when some subfields of authInternalUsers or authHTTPExclude were not
set explicitly in the configuration file, default values were used in
their place. This is caused by a strange behavior of Go
(https://github.com/golang/go/issues/21092)
2024-05-04 10:12:43 +02:00
Alessandro Ros
9a67eb8bb6
record: increase default part duration to 1s (#3264) 2024-04-18 00:11:28 +02:00
Alessandro Ros
0b5519d30c
deprecate path.playback parameter (#3217)
this has become useless after the introduction of the new
authentication system, that already allows to select which paths are
available for playback
2024-04-09 10:04:12 +02:00
Alessandro Ros
dd3b268346
do not switch to legacy authentication system when readUser, readPass, publishUser, publishPass are present but are empty (#3113) 2024-03-06 18:04:08 +01:00
Alessandro Ros
9c6ba7e2c7
New authentication system (#1341) (#1992) (#2205) (#3081)
This is a new authentication system that covers all the features exposed by the server, including playback, API, metrics and PPROF, improves internal authentication by adding permissions, improves HTTP-based authentication by adding the ability to exclude certain actions from being authenticated, adds an additional method (JWT-based authentication).
2024-03-04 14:20:34 +01:00
Alessandro Ros
b6db3121b5
rtsp: add random value to timestamp of tracks from other protocols (#3071) 2024-02-26 00:41:05 +01:00
Alessandro Ros
c7bdcea741
move RTSP tests into internal/servers/rtsp (#3049) 2024-02-20 19:35:35 +01:00
Alessandro Ros
0f733bab26
add rpiCameraAWBGains (#2858) (#2954) 2024-01-28 21:48:21 +01:00
Alessandro Ros
57c2d5aecb
add playback server (#2452) (#2906)
* add playback server

* add playback switch

* update readme
2024-01-23 20:52:05 +01:00
Sijmen
397c58a882
Add Argon2 credential hash support (#2888)
* Add argon2 credential hash support

* update README, tests and documentation

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-01-13 12:49:08 +01:00
Alessandro Ros
7437ee7a09
update golangci-lint (#2868) 2024-01-03 21:13:20 +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
c3d9be322d
allow using 'fallback' with static sources (#2606) (#2706) 2023-11-16 23:37:43 +01:00
Alessandro Ros
7a1e155531
update dependencies (#2687) 2023-11-13 00:09:42 +01:00
Alessandro Ros
813611057d
add runOnUnDemand hook (#2645) 2023-11-04 13:07:51 +01:00
Alessandro Ros
1d1d64cb89
rename sourceProtocol into rtspTransport, sourceAnyPortEnable into rtspAnyPort (#2644) 2023-11-04 11:12:22 +01:00
Alessandro Ros
4b4d57f18e
api: add path name to config/paths/list and config/paths/get (#2535) (#2596) 2023-10-28 15:06:06 +02:00
Alessandro Ros
bbb989ee87
api: return full configuration in config/paths/list and config/paths/get (#2535) (#2595) 2023-10-28 14:53:23 +02:00
Alessandro Ros
c42fa76afd
rpi: switch default autofocus mode to 'continuous' (#2591) 2023-10-28 12:32:39 +02:00
Alessandro Ros
6d27d690dc
update docs (#2590) 2023-10-28 11:52:31 +02:00
Alessandro Ros
95ab9375c7
support recording to MPEG-TS (#2505) 2023-10-14 22:52:10 +02:00
Alessandro Ros
4ec12a6c8b
add runOnRecordSegmentCreate hook (#2451) (#2503) 2023-10-14 16:48:02 +02:00
Alessandro Ros
6c727b4472
rename 'all' path configuration into 'all_others' (#2443) 2023-10-09 18:13:44 +02:00
Alessandro Ros
8a633d2b79
allow setting different recording parameters for each path (#2410) (#2457) 2023-10-07 23:48:37 +02:00
Alessandro Ros
9a01ab7fd5
allow changing default path settings; bump API in order to allow so (#2455) 2023-10-07 23:32:15 +02:00
Alessandro Ros
eb975027b2
add runOnRecordSegmentComplete and rclone integration (#2404) (#2428) 2023-09-29 18:24:10 +02:00
Alessandro Ros
2d929e1132
move 'srtReadPassphrase' into the right section (#2435) 2023-09-28 19:40:24 +02:00