Commit Graph

86 Commits

Author SHA1 Message Date
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
a2d6ce8af6 replace OnDecodeError with OnWarning (#177) 2023-01-23 12:54:57 +01:00
aler9
645f9462e2 server: support publishing/reading to/from path '/' or '' 2023-01-11 00:39:58 +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
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
Alessandro Ros
51b8063325 rtph264: return error in decoder if packetization-mode is 2 (#153) 2022-11-14 21:23:13 +01:00
Jon Lech Johansen
76460d6404 Fix parsing of Transport header with multiple transports. (#145)
* Fix parsing of Transport header with multiple transports.

* Lint.

* Add test for Transport header with multiple transports.

* Filter out unsupported transports.

* Handle multicast properly when filtering out unsupported transports.

* Minor code cleanup.

* add Transports.Unmarshal(), add additional tests

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2022-11-09 12:00:33 +01:00
aler9
ededb490bc server: when a session is closed, close all associated connections
regardless of the fact that they use TCP or UDP
2022-11-03 21:10:26 +01:00
aler9
9216576d49 server: allow to associate user data to connections 2022-11-03 12:57:42 +01:00
aler9
08a16e7b38 server: allow to associate user data to sessions (#50) 2022-11-03 12:02:38 +01:00
aler9
30e029011b add OnDecodeError callback to both client and server
This allows to detect decode errors of RTP and RTCP packets
2022-10-31 12:36:30 +01:00
aler9
27f8015ac6 simplify usage of Conn 2022-08-15 00:10:21 +02:00
aler9
06bed24dd9 add intermediate layer between net.Conn and client / server 2022-08-14 23:43:01 +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
f3b0fc69b4 rename Read / Write into Unmarshal / Marshal when needed
Read() / Write() are used to read / write from streams, while
Unmarshal() / Marshal() are used to decode / encode from / to bytes.
2022-06-27 17:27:16 +02:00
aler9
9f4fea8a01 change track initialization method 2022-06-23 13:13:36 +02:00
aler9
f4cc42eccc server: correctly close sessions in case of errors during SETUP
(https://github.com/aler9/rtsp-simple-server/issues/965)
2022-06-21 14:55:17 +02:00
aler9
322a7e2f95 split high level tests from standard tests 2022-06-03 11:08:11 +02:00
aler9
c1b10a80be allow writing primitives to static buffers 2022-05-11 15:26:44 +02:00
aler9
edeef85e9e accept io.Writer in Write() methods 2022-05-08 14:33:29 +02:00
aler9
bfe4e8cdaa automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:16:14 +02:00
aler9
d0cab3c8bd server: add parameter 'containsKeyFrame' to WritePacketRTP; fix RTCP sender reports and RTP-Info 2022-04-08 16:45:09 +02:00
aler9
9d12c345f8 support go 1.18 2022-04-07 12:57:23 +02:00
aler9
7d9c882cc9 server: generate RTCP sender reports automatically; remote RTCP routing from examples 2022-03-24 15:27:19 +01:00
aler9
7f6383aa3c server: make calling ServerStream.Close() mandatory 2022-03-24 12:44:20 +01:00
aler9
95117f0aa4 server: rename Req field into Request 2022-02-19 22:20:01 +01:00
aler9
d7f6567e20 server: restore authentication support 2022-02-19 21:56:27 +01:00
aler9
0e8595a31d server: remove Session header from ANNOUNCE responses (https://github.com/aler9/rtsp-simple-server/issues/840) 2022-02-19 19:23:30 +01:00
aler9
7dd4842fc0 server: do not allow a connection to communicate with multiple sessions 2022-02-19 18:52:05 +01:00
aler9
3a2f9adbd5 server: decode and encode RTP/RTCP packets 2022-02-18 00:03:39 +01:00
aler9
ad69a8957b support h264 tracks with extradata in sprop-parameter-sets 2022-01-30 15:51:49 +01:00
aler9
6d5bf0c1bb new track system 2022-01-30 15:51:49 +01:00
aler9
f6a86b8789 server: send session timeout to clients through the session header (https://github.com/aler9/rtsp-simple-server/issues/702) 2022-01-20 16:32:32 +01:00
aler9
f3096ec102 improve write performance by
* buffering packets before sending them
* removing mutexes
2021-12-08 17:46:56 +01:00
aler9
a1de5ffdf9 add client TLS publish tests 2021-12-08 17:23:03 +01:00
aler9
73f1c632c5 client: set ServerName when using TLS (https://github.com/aler9/rtsp-simple-server/issues/708) 2021-12-03 22:56:35 +01:00
aler9
1876546d05 fix tests 2021-11-26 16:58:59 +01:00
aler9
1411cb33f5 server: support reading with VLC and multicast 2021-11-15 17:40:17 +01:00
aler9
f304ec52fb server: make Close() wait for all resources to close 2021-11-12 18:01:27 +01:00
aler9
3ead94477f server: cleanup error 2021-11-12 18:01:27 +01:00
aler9
1f5dec4a02 server: move address into Server struct 2021-11-12 18:01:27 +01:00
aler9
2882bacdf2 server: split WriteFrame into WritePacketRTP and WritePacketRTCP 2021-11-12 18:01:27 +01:00
aler9
472430f900 server: split OnFrame into OnPacketRTP and OnPacketRTCP 2021-11-12 18:01:27 +01:00
aler9
78bfa5d6a8 use require.EqualError() in tests 2021-11-03 17:52:45 +01:00
aler9
b5f1d7ccb6 fix tests 2021-10-30 14:58:02 +02:00
aler9
653b3ee993 update golangci-lint 2021-10-30 13:06:23 +02:00
aler9
61c39f9062 rename StreamProtocol and StreamDelivery into TransportProtocol and TransportDelivery 2021-10-22 17:59:36 +02:00