Commit Graph

77 Commits

Author SHA1 Message Date
Alessandro Ros
07ff79f553 api: return 500 instead of 404 in case of non-existing items (#2582)
This is needed to differentiate between calls to non-existent andpoints
and calls to valid endpoints, but with an ID pointing to a non-existing
item, and to return JSON in the latter case.
2023-10-27 20:23:46 +02:00
Alessandro Ros
99bc327d67 move protocol-related code into internal/protocols (#2572) 2023-10-26 21:46:18 +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
42aa979309 api: save errors in logs (#2426)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-09-27 15:18:02 +02:00
Alessandro Ros
61b77a3ff9 api: return 400 in case of non-existent config fields (#2425) 2023-09-27 14:56:31 +02:00
Alessandro Ros
659f19f8bb enable errcheck (#2201)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-08-13 16:38:23 +02:00
Alessandro Ros
efcc4c4e65 fix crash in case of specially-crafted HTTP requests (#2166) (#2169) 2023-08-07 17:16:33 +02:00
Alessandro Ros
b4e3033ea3 support publishing, reading, proxying with SRT (#2068)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-07-31 21:20:09 +02:00
Alessandro Ros
119d6abf19 move HTTP utilities in a dedicated package (#2123)
needed by #2068
2023-07-30 23:03:00 +02:00
Alessandro Ros
f7a30e7b38 api: return 404 when a path configuration is not found (#2067) (#2074)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
this involves /v2/config/paths/edit and /v2/config/paths/remove
2023-07-19 00:22:52 +02:00
Alessandro Ros
3e8a1674ab cleanup code (#2044) 2023-07-11 16:51:23 +02:00
Jordy84
1103e935c4 api: fix error in case of nested paths (#2040)
* Fixed API paths/get with nested paths

* Lint error

* Same fix for /v2/hlsmuxers/get

---------

Co-authored-by: Jordy Boezaard <jordy@boezaard.com>
2023-07-10 19:53:25 +02:00
Alessandro Ros
f1b975707a api: return 404 in /get and /kick endpoints (#1994) (#1995)
when an entity is not found
2023-06-27 23:55:31 +02:00
Alessandro Ros
e2a6c380b0 api: fix setting default parameters when creating a path (#1853) (#1905)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
this fixes a regression introduced in v0.23.0.
2023-06-02 18:43:04 +02:00
Alessandro Ros
e10055ad69 api: add item count to /list endpoints (#1813) (#1829) 2023-05-18 20:05:59 +02:00
Alessandro Ros
67672ea9c6 api: fix wrong pageCount in /list endpoints (#1813) (#1824) 2023-05-18 18:59:51 +02:00
Alessandro Ros
b93eed64bc api: add /get endpoints (#1577) (#1823)
this allows to get entities by ID or name after /list endpoints were
changed in v0.23.0.
2023-05-18 15:07:47 +02:00
Alessandro Ros
586df289e2 bump API prefix from /v1 to /v2 (#1815)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-05-17 15:44:30 +02:00
Alessandro Ros
adf94092a8 add base class to all HTTP servers (#1809) 2023-05-16 20:12:45 +02:00
Alessandro Ros
9c79197f36 api: add pagination to all /list endpoints (#1808) 2023-05-16 19:48:13 +02:00
Alessandro Ros
39c072edd6 change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Alessandro Ros
a14246d776 webrtc: support publishing with WHIP and reading with WHEP (#1800) 2023-05-16 15:59:37 +02:00
Alessandro Ros
e998688757 allow setting rpiCameraSaturation to 0 (#1651) (#1772)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-05-06 23:00:42 +02:00
Alessandro Ros
225220ddd5 print warning in case no key frames are being received (#1763) 2023-05-04 20:16:41 +02:00
Alessandro Ros
88953f36a6 add read deadline to all incoming HTTP requests (#1689) 2023-04-11 20:47:19 +02:00
Alessandro Ros
2a5e6e2651 metrics: log HTTP requests when logLevel is debug (#1687) 2023-04-11 20:42:40 +02:00
Alessandro Ros
34757620b8 do not listen on IPv6 when host is 0.0.0.0 (#1665) (#1678)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-04-10 22:48:33 +02:00
Alessandro Ros
3ba133bc60 add remote port to HTTP requests in logs (#1663)
Some checks failed
test32
test64
test_highlevel
apidocs
code
mod-tidy
2023-04-09 17:12:50 +02:00
Alessandro Ros
053f2ec282 rename repository and executable (#1641) 2023-04-01 19:52:06 +02:00
Alessandro Ros
bca3013bd0 general: add Clone() method to Conf and PathConf (#1633)
this allows to detect errors during cloning
2023-03-31 16:22:08 +02:00
aler9
f3f55452e5 webrtc muxer: fix multiple race conditions 2023-01-08 13:36:55 +01:00
Alessandro Ros
5efe97abf1 Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
Alessandro Ros
4ac175d3cc api, metrics: add endpoints and metrics for RTSP connections (#1233)
new API endpoints:

* /v1/rtspconns/list
* /v1/rtspsconns/list

new metrics:

* rtsp_conns
* rtsps_conns
2022-11-09 18:31:31 +01:00
aler9
fdb1955e1d api: autogenerate structs from configuration 2022-10-23 18:01:51 +02:00
aler9
a8d1f91646 fix tests that involve HTTP clients 2022-08-31 08:53:19 +02:00
aler9
f25e14183d api, hls, metrics, pprof: always close HTTP listeners
due to a race condition, HTTP listeners could remain open even after
the closure of a component.
2022-08-30 18:43:41 +02:00
Alessandro Ros
820ba067f2 support RTMPS (#1089) 2022-08-16 18:44:31 +02:00
Alessandro Ros
8c2b12a314 Add native support for the raspberry pi camera (#1057) 2022-08-16 18:44:31 +02:00
aler9
055e08ac6c remove "on" prefix from most communication functions between components 2022-08-04 21:07:45 +02:00
aler9
e45820b2c0 hls server: show real client IPs when behind a proxy (#955) 2022-06-21 13:54:19 +02:00
Alessandro Ros
e115983296 Implement Low-Latency HLS (#938)
* add hlsVariant parameter

* hls: split muxer into variants

* hls: implement fmp4 segments

* hls muxer: implement low latency mode

* hls muxer: support audio with fmp4 mode

* hls muxer: rewrite file router

* hls muxer: implement preload hint

* hls muxer: add various error codes

* hls muxer: use explicit flags

* hls muxer: fix error in aac pts

* hls muxer: fix sudden freezes with video+audio

* hls muxer: skip empty parts

* hls muxer: fix video FPS

* hls muxer: add parameter hlsPartDuration

* hls muxer: refactor fmp4 muxer

* hls muxer: fix CAN-SKIP-UNTIL

* hls muxer: refactor code

* hls muxer: show only parts of last 2 segments

* hls muxer: implementa playlist delta updates

* hls muxer: change playlist content type

* hls muxer: improve video dts precision

* hls muxer: fix video sample flags

* hls muxer: improve iphone audio support

* hls muxer: improve mp4 timestamp precision

* hls muxer: add offset between pts and dts

* hls muxer: close muxer in case of error

* hls muxer: stop logging requests with the info level

* hls muxer: rename entry into sample

* hls muxer: compensate video dts error over time

* hls muxer: change default segment count

* hls muxer: add starting gap

* hls muxer: set default part duration to 200ms

* hls muxer: fix audio-only streams on ios

* hls muxer: add playsinline attribute to video tag of default web page

* hls muxer: keep mpegts as the default hls variant

* hls muxer: implement encryption

* hls muxer: rewrite dts estimation

* hls muxer: improve DTS precision

* hls muxer: use right SPS/PPS for each sample

* hls muxer: adjust part duration dynamically

* add comments

* update readme

* hls muxer: fix memory leak

* hls muxer: decrease ram consumption
2022-05-31 19:17:26 +02:00
aler9
98c6cd4650 RTSP: automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:20:14 +02:00
aler9
b4649ef60b remove runOnPublish (breaking change) 2022-03-04 18:09:49 +01:00
aler9
343a5f17fb hls: add new parameter hlsSegmentMaxSize 2022-01-30 17:54:05 +01:00
aler9
b48e2f1f1b add TODO comments 2022-01-20 10:46:05 +01:00
aler9
49449eb5ad Add new parameter 'runOnReady' (#752)
This is called when a stream is ready, whether it is published or proxied.
It replaces 'runOnPublsh'.
2022-01-19 22:50:32 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +01:00
aler9
11760fd79f support external authentication (#504) (#517) 2021-12-22 19:13:56 +01:00
aler9
779d5b61cd update docs 2021-12-22 00:27:58 +01:00
aler9
7352244fd9 print closing message before an object is closed 2021-12-22 00:15:15 +01:00