Commit Graph

72 Commits

Author SHA1 Message Date
Alessandro Ros
e8bdad8a1e rename Data into Unit (#1556) 2023-03-10 12:44:59 +01:00
Alessandro Ros
b461f15a4c rpicamera: support changing parameters without interrupting the stream (#1463) 2023-02-13 12:12:04 +01:00
aler9
79562b15ab update gortsplib 2023-01-11 01:11:05 +01:00
aler9
e3fff72b7c move format processors into dedicated folder 2023-01-05 12:54:00 +01:00
aler9
034e42f463 hls muxer: support reading Opus tracks (#1338) 2023-01-03 18:36:13 +01:00
Alessandro Ros
5efe97abf1 Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
aler9
57015e2bf0 fix authentication with VLC
This fixes the case in which VLC is trying to read a path with a query
(i.e. stream?mykey=myval) and the path requires read credentials.
2022-12-14 19:07:39 +01:00
aler9
4bafa4ea9b add dedicated processors for H265 and Opus 2022-12-13 21:26:35 +01:00
Alessandro Ros
c778c049ce switch to gortsplib v2 (#1301)
Fixes #1103

gortsplib/v2 supports multiple formats inside a single track (media). This allows to apply the resizing algorithm to single formats inside medias.

For instance, if a media contains a a proprietary format and an H264 format, and the latter has oversized packets, they can now be resized.
2022-12-13 20:54:17 +01:00
Alessandro Ros
e605727c78 produce same absolute time in RTSP and HLS (#1249)
* add a NTP timestamp to each data unit
* use that NTP timestamp in all protocols
2022-11-28 09:00:05 +01:00
aler9
282d155a4f update gortsplib 2022-11-15 23:47:12 +01:00
Alessandro Ros
8bee4af86a api, metrics: add number of bytes received and sent from/to all entities (#1235)
* API: number of bytes received/sent from/to RTSP connections
* API: number of bytes received/sent from/to RTSP sessions
* API: number of bytes received/sent from/to RTMP connections
* API: number of bytes sent to HLS connections
* API: number of bytes received from paths
* metrics of all the above
2022-11-11 11:59:52 +01:00
Alessandro Ros
423bb61daa use UUIDs as IDs in all entities (#1234) 2022-11-09 19:31:52 +01:00
aler9
eae895e321 decrease ram consumption 2022-11-03 15:44:34 +01:00
Alessandro Ros
0943b269ab Decode streams once and only when needed (#1218)
* split data into specialized structs

* move MPEG4-audio decoding into streamTrack

* restore video/audio synchronization in HLS muxer and RTMP server

* log decode errors

* move H264 decoding and re-encoding here from gortsplib

* add tests

* update gortsplib
2022-11-02 20:52:12 +01:00
aler9
f7fdd60966 rtsp server: log decode errors 2022-10-31 19:16:13 +01:00
aler9
86c5fa9ba4 cleanup interaction with external auth 2022-08-22 11:24:21 +02:00
aler9
83faae8a8e rename interaction functions between paths and readers / publishers
readers and publishers can now interact with paths by using:

readerAdd()
readerStart()
readerStop()

publisherAdd()
publisherStart()
publisherStop()
2022-08-22 09:39:16 +02:00
aler9
cb8aec8844 print track codecs into logs 2022-08-15 16:29:40 +02:00
aler9
f952ff25f6 remove useless append() 2022-08-14 13:14:08 +02:00
aler9
3606472e82 generate RTP packets after H264 remuxing
Previously, RTP packets coming from sources other than RTSP (that
actually are RTMP and HLS) were generated before the H264 remuxing, and
that leaded to invalid streams, expecially when sourceOnDemand is true
and the stream has invalid or dynamic SPS/PPS.
2022-08-14 13:03:04 +02:00
aler9
092a2be3a8 api: add "created" field to RTSP sessions, RTMP connections, HLS muxers 2022-08-05 14:39:07 +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
aler9
58b2e7d24f move trackID into data 2022-04-09 13:16:59 +02:00
aler9
d929197b21 propagate H264 packets throughout the server 2022-04-08 18:19:53 +02:00
aler9
a59ddf7176 rtsp server: remove useless check 2022-04-08 17:37:07 +02:00
aler9
0605a2f369 update linter 2022-04-07 13:05:07 +02:00
aler9
3fc4ca6465 update gortsplib; downgrade pion/rtp to v1 2022-04-01 12:04:21 +02:00
aler9
f53b316c0d rtsp server: generate RTCP sender reports automatically; stop routing RTCP packets 2022-03-24 15:44:34 +01:00
aler9
28063a1fbe rename stream.onPacketRTP/RTCP into stream.writePacketRTP/RTCP 2022-03-15 12:44:01 +01:00
aler9
6dc11c2906 RTSP server/source: fix encoding of RTP packets with padding
This fixes a SIGSEGV with GStreamer.
2022-03-08 12:54:23 +01:00
aler9
87f24f1704 update gortsplib 2022-02-19 23:06:24 +01:00
aler9
507afbf73d make logs more clear 2022-02-19 22:15:37 +01:00
aler9
43471a05ab update gortsplib 2022-02-18 10:24:33 +01:00
aler9
5504ff44b6 rtsp: parse all incoming RTP/RTCP packets 2022-02-18 00:14:52 +01:00
aler9
3e8668f9e2 rtsp server: allow again H264 tracks without SPS or PPS in the SDP (#787) 2022-01-30 17:59:24 +01:00
aler9
2bfdcc7d89 update gortsplib 2022-01-30 17:43:03 +01:00
ShiBen
e3f63a43c9 External authentication support send url raw query
Do some dynamic authentication, such as token
2022-01-23 23:04:36 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +01:00
aler9
ed635db87e print debug log message in case of non-critical authentication errors 2021-12-22 20:13:00 +01:00
aler9
11760fd79f support external authentication (#504) (#517) 2021-12-22 19:13:56 +01:00
aler9
1617d07ba3 do not wait for external commands to exit during runtime
wait for them during shutdown.
2021-12-21 12:43:45 +01:00
aler9
84735426eb print a message when a custom command exits suddently 2021-12-08 21:23:45 +01:00
aler9
ebc201bda2 make regexp groups available to custom commands (#642) 2021-12-08 20:50:09 +01:00
aler9
c65f4509bd update gortsplib 2021-12-05 14:36:57 +01:00
Tristan Matthews
4fcfd95619 rtsp_session: log error if config parsing fails 2021-12-01 10:06:47 +01:00
aler9
f7ea9a6b2d rtsp server: check validity of announced tracks 2021-11-22 15:06:18 +01:00
aler9
f7419586af update gortsplib 2021-11-12 22:29:56 +01:00
aler9
eab2663420 move VLC authentication hack into gortsplib 2021-10-30 15:05:27 +02:00