Commit Graph

46 Commits

Author SHA1 Message Date
Alessandro Ros
c0c275e6a6 expose number of lost packets without passing through an error (#735) 2025-03-24 16:39:55 +01:00
Alessandro Ros
55556f1ecf add ServerConn.VerifyCredentials() (#555) 2025-02-18 17:39:04 +01:00
Alessandro Ros
db334b3a8d server: fix crash with invalid SETUP request (bluenviron/mediamtx#4025) (#652) 2024-12-08 18:58:13 +01:00
Alessandro Ros
5865d7b7ac server: fix panic when recording with wrong transport header (https://github.com/bluenviron/mediamtx/issues/3677) (#604) 2024-08-25 20:40:31 +02:00
Alessandro Ros
8fdc7193f2 client: support cameras that don't reply to keepalives (#412)
(https://github.com/bluenviron/mediamtx/issues/2302)
2023-09-11 17:49:46 +02:00
Alessandro Ros
4495e7d689 move most errors into pkg/liberrors (#408) 2023-09-10 17:32:16 +02:00
Alessandro Ros
3bdae4ed46 make WritePacket*() return errors when write queue is full (#388) 2023-08-26 18:09:45 +02:00
Alessandro Ros
ed4bbe3986 client: support server-sent requests (#93) (#378) 2023-08-24 16:07:09 +02:00
aler9
80106144e6 bump to v4 2023-08-16 13:26:17 +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
2342abb240 server: support TCP read requests without interleaved IDs (#246)
(https://github.com/aler9/mediamtx/issues/1650)
2023-04-13 17:03:50 +02:00
Alessandro Ros
04f5a4041c change owner (#217) 2023-03-31 12:34:07 +02:00
Nils Zottmann
1c50779598 Allow RTCP packets for keepalive also in state PLAY (#185) (#186)
* Allow RTCP packets for keepalive also in state PLAY (#185)

* use sessionTimeout instead of ReadTimeout

* reset udpLastPacketTime before PLAY and RECORD

* change error message in case of timeouts

* fix comment

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-02-13 13:22:38 +01:00
aler9
82f69e94f6 server: update error message
replace 'teared down' with 'torn down'
2023-02-05 19:02:42 +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
aler9
2a5b3e3ee5 server: return error in case of unexpected interleaved frames 2022-12-11 17:59:58 +01:00
aler9
9029c3a9a3 clarify error 2022-11-09 12:54:35 +01:00
aler9
630b1ebce1 change and check error message 2022-10-28 15:28:05 +02:00
aler9
a2c6a7fb97 server: change behavior in case of unhandled methods
(https://github.com/aler9/rtsp-simple-server/issues/1066)

Return 501 and keep connection open instead of returning 400 and
closing the connection.
2022-08-07 13:51:12 +02:00
aler9
4940e8faeb server: add Session to ServerHandlerOnSetParameterCtx 2022-08-07 13:43:59 +02:00
aler9
e7efb0c405 client: skip tracks with an invalid clock rate (https://github.com/aler9/rtsp-simple-server/issues/832) 2022-03-15 11:10:56 +01:00
aler9
95117f0aa4 server: rename Req field into Request 2022-02-19 22:20:01 +01:00
aler9
066ddd4423 server: write UDP packets in parallel.
A goroutine writer is allocated for each session and
for each multicast stream.

This increases bandwidth and prevents freezes caused
by lagging readers.
2021-12-07 22:45:24 +01:00
aler9
3ead94477f server: cleanup error 2021-11-12 18:01:27 +01:00
aler9
1a59346356 server: change error 2021-11-06 12:37:41 +01:00
aler9
70137268fb server: return dedicated error when a session is closed by the fact that there are no associated conns anymore 2021-10-27 19:39:28 +02:00
aler9
31a34d81c1 server: return the author of a tear down request 2021-10-27 19:11:19 +02:00
aler9
0ff969397d server: make errors more clear 2021-10-27 18:55:57 +02:00
aler9
d43d52fdff server: update error message 2021-10-27 18:46:05 +02:00
aler9
239b71d975 server: do not allow a client to control a session created with a different IP 2021-09-23 19:52:57 +02:00
aler9
5ef9076357 server: do not allow a reader to use the same UDP ports of another reader 2021-09-23 19:16:01 +02:00
aler9
7ac0d79ae9 server: do not allow a session to setup UDP tracks from different IPs 2021-09-23 19:12:46 +02:00
aler9
0840425ed2 server: return specific error message in case interleaved IDs are in use 2021-08-25 09:47:12 +02:00
aler9
45db8582b0 server: do not allow a client to change path name during PLAY or RECORD 2021-07-31 21:26:57 +02:00
aler9
a512762ba0 server: support setupping tracks with arbitrary interleaved IDs (#47) 2021-06-26 12:51:45 +02:00
aler9
7238502094 server: normalize errors 2021-06-18 00:08:04 +02:00
aler9
11a5fb68ad server: test invalid paths 2021-05-08 16:01:06 +02:00
aler9
e52fda806d add ServerConn.Close(), ServerSession.Close() 2021-05-07 11:42:01 +02:00
aler9
9d42a63102 server: add error to OnSessionClose() 2021-05-04 16:51:20 +02:00
aler9
6f749e6ba8 server: rewrite timeout system 2021-05-04 16:51:20 +02:00
aler9
b4dba4bfdd server: test invalid methods and double sessions 2021-05-04 16:51:20 +02:00
aler9
1906c9f776 server: test invalid session 2021-05-04 16:51:20 +02:00
aler9
ab7ede2c00 server: shut down session after a TEARDOWN request 2021-05-04 16:51:20 +02:00
aler9
259043685d server: implement sessions 2021-05-04 16:51:20 +02:00
aler9
2df9029f01 client: switch to TCP if no UDP packets have been received within a timeout (https://github.com/aler9/rtsp-simple-server/issues/173) 2021-03-26 23:02:36 +01:00
aler9
437b4cc87e move errors into subpackage 2021-03-21 11:19:35 +01:00