Commit Graph

37 Commits

Author SHA1 Message Date
aler9
cdbecb1f5d allow setting additional properties of streams through description.Stream 2023-08-22 16:46:18 +02:00
aler9
4e000eb2dd emit a decode error in case of packets with wrong SSRC 2023-08-18 18:20:13 +02:00
aler9
bfef17b717 add Client.PacketNTP(), ServerSession.PacketNTP() 2023-08-17 13:23:16 +02:00
aler9
939c065f6f client: invert arguments of Setup() and SetupAll() 2023-08-17 13:23:15 +02:00
aler9
5e5a21240d rename pkg/formats into pkt/format 2023-08-16 13:26:17 +02:00
aler9
ca87733ded remove suffix from new functions 2023-08-16 13:26:17 +02:00
aler9
80106144e6 bump to v4 2023-08-16 13:26:17 +02:00
aler9
98e6e8239e simplify tests 2023-08-14 16:56:54 +02:00
aler9
18ddae4c50 enable errcheck 2023-08-13 16:29:53 +02:00
aler9
8ef42a27e9 restore API compatibility 2023-07-31 10:07:25 +02:00
aler9
8b8b52e689 return an error in case the random number generator fails 2023-07-30 22:40:34 +02:00
Alessandro Ros
e583556d86 server, client: allow using odd interleaved IDs (#304)
(https://github.com/bluenviron/mediamtx/issues/1762)
2023-06-08 23:40:37 +02:00
Alessandro Ros
0f97e8158c client: return an error in case of invalid packet (#305)
when reading with TCP and packet has an unknown format.
2023-06-08 23:33:29 +02:00
Alessandro Ros
b0947c133e move each goroutine in a dedicated struct (#285) 2023-05-17 21:14:00 +02:00
Alessandro Ros
7c67221494 auth: add Validate() and deprecate Validator{} (#272) 2023-05-07 19:34:20 +02:00
Alessandro Ros
a9a7426412 client, server: print number of lost packets even when using TCP (#269) 2023-05-02 14:30:32 +02:00
Alessandro Ros
a955288571 replace Format.Marshal() with RTPMap() and FMTP() (#253) 2023-04-15 13:46:19 +02:00
Alessandro Ros
c56eee37f8 do not listen on IPv6 when host is 0.0.0.0 (#240)
(https://github.com/aler9/mediamtx/issues/1665)
2023-04-10 22:42:19 +02:00
Alessandro Ros
1694d9086d use normalized trackID in place of mediaUUID (#226)
This is needed to support clients like the Grandstream GXV3500.

Fixes #190
2023-04-07 12:38:10 +02:00
Alessandro Ros
2fbba142cc add OnTransportSwitch, OnPacketLost, OnDecodeError to server and client (#225)
These new hooks replace the generic hooks Log() and OnWarning().
2023-04-04 17:10:37 +02:00
Alessandro Ros
f905598d2e link to mediacommon (#223)
* move codecs and bits to mediacommon

* add SafeSetParams() to H264 and H265

* update README
2023-04-01 16:38:08 +02:00
Alessandro Ros
af3ed2bd83 merge format and formatdecenc into formats (#222) 2023-04-01 13:23:16 +02:00
Alessandro Ros
04f5a4041c change owner (#217) 2023-03-31 12:34:07 +02:00
Alessandro Ros
1ad059a80b server: use absolute RTSP URL as control attribute (#210)
this is necessary in order to make GStreamer's rtspsrc to send query parameters correctly in SETUP requests.
2023-03-24 10:54:14 +01:00
Alessandro Ros
d369d215c2 client: replace OnWarning with Log (#208) 2023-03-19 18:15:33 +01:00
aler9
1d915dcc81 change error message 2023-01-23 13:52:11 +01:00
Alessandro Ros
a2d6ce8af6 replace OnDecodeError with OnWarning (#177) 2023-01-23 12:54:57 +01:00
Alessandro Ros
14fcde1c69 client: call OnDecodeError() during protocol switch from UDP to TCP (#176) 2023-01-23 12:41:14 +01:00
aler9
e3f21fc59f client: send TEARDOWN even when PLAY or RECORD have not been sent yet 2023-01-19 10:31:28 +01:00
Alessandro Ros
71bd86cff9 client: improve automatic protocol switching (#169)
(https://github.com/aler9/rtsp-simple-server/issues/1105)

when a camera receives a UDP request and replies with a TCP response,
switch protocol from UDP to TCP.
2023-01-19 09:41:24 +01:00
aler9
5f2ac979c5 move pkg/mpeg4audio into pkg/codecs/mpeg4audio 2022-12-27 17:30:53 +01:00
Alessandro Ros
ae9dac0ad3 use random UUIDs as media IDs (#163)
* remove Medias.Clone(), Media.Clone(), Format.Clone()

* server: use random UUIDs as media IDs

* client: use random UUIDs as media IDs
2022-12-22 20:32:28 +01:00
aler9
ffe8c87c38 fix overriding of previously-received RTP packets that leaded to crashes
RTP packets were previously take from a buffer pool. This was messing
up the Client, since that buffer pool was used by multiple routines at
once, and was probably messing up the Server too, since packets can be
pushed to different queues and there's no guarantee that these queues
have an overall size less than ReadBufferCount.

This buffer pool is removed; this decreases performance but avoids bugs.
2022-12-19 13:51:49 +01:00
aler9
6141afcfc4 add H264 NALU types 2022-12-14 14:57:02 +01:00
aler9
38b24b8e26 rename 'track' references into 'format' 2022-12-13 18:06:41 +01:00
aler9
46cbb885b7 improve coverage 2022-12-11 23:40:01 +01:00
Alessandro Ros
a1396206b5 convert Tracks into Medias and Formats (#155)
* split tracks from medias

* move tracks into dedicated package

* move media into dedicated package

* edit Medias.Marshal() in order to return SDP

* add medias.Find() and simplify examples

* improve coverage

* fix rebase errors

* replace TrackIDs with MediaIDs

* implement media-specific and track-specific callbacks for reading RTCP and RTP packets

* rename publish into record, read into play

* add v2 tag

* rename tracks into formats
2022-12-11 22:03:22 +01:00