Commit Graph

158 Commits

Author SHA1 Message Date
Alessandro Ros
7951b2e4af allow to set NTP of outgoing packets in both client and server (#148) 2022-11-14 16:55:40 +01:00
aler9
62f597457b fix support for 32bit architectures 2022-11-10 22:06:33 +01:00
aler9
d75423d185 rename ReadBytes and WrittenBytes into BytesReceived and BytesSent 2022-11-09 19:28:05 +01:00
Alessandro Ros
95d1562735 server: add methods to get read and written bytes (#147)
ServerConn.ReadBytes()
ServerConn.WrittenBytes()
ServerSession.ReadBytes()
ServerSession.WrittenBytes()
2022-11-09 13:41:48 +01:00
aler9
9216576d49 server: allow to associate user data to connections 2022-11-03 12:57:42 +01:00
Alessandro Ros
7a4c7d6d66 remove h264 decoding and re-encoding (#144)
* stop re-encoding H264

* stop decoding H264

* improve tests
2022-11-02 14:38:05 +01:00
aler9
0e6a0b8b25 call OnDecodeError when rtpcleaner returns an error 2022-10-31 18:51:29 +01:00
aler9
b1f72f9392 return error in OnDecodeError when there are oversized UDP packets 2022-10-31 15:53:15 +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
Alessandro Ros
df7336b5e8 implement packet reordering for UDP / Multicast transports (#132)
* implement packet reordering for UDP transport

* rtcpreceiver: stop handling unordered / duplicate packets

* remote useless Sleep() from tests
2022-07-05 23:29:03 +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
ac910c63db rename rtpproc into rtpcleaner 2022-06-11 19:50:38 +02:00
aler9
92ed04ad6c optimize RTP packet handling 2022-06-11 19:11:24 +02:00
aler9
98b6515c33 move RTP packet handling into separate package 2022-06-11 13:47:26 +02:00
aler9
2fa3148a27 move URL into dedicated folder 2022-06-05 01:27:19 +02:00
aler9
c1b10a80be allow writing primitives to static buffers 2022-05-11 15:26:44 +02:00
aler9
ff34f5ac1d improve performance 2022-04-10 15:12:33 +02:00
aler9
7bf907e94c improve performance 2022-04-10 11:29:15 +02:00
aler9
bfe4e8cdaa automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:16:14 +02:00
aler9
0463e6b510 server: parse incoming RTP/H264 packets; fix RTCP receiver jitter 2022-04-08 16:45:09 +02:00
aler9
9d12c345f8 support go 1.18 2022-04-07 12:57:23 +02:00
aler9
e12b22ae77 fix encoding of RTP packets with padding
this fixes a SIGSEGV with GStreamer
2022-03-08 12:47:55 +01:00
aler9
dd0904407f cleanup code 2022-03-02 22:19:09 +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
c7a36478b4 server: remove useless code 2022-02-19 17:54:11 +01:00
aler9
fe99404495 server: sync states with client ones 2022-02-18 10:02:20 +01:00
aler9
d44f1eb03a server: save RAM by releasing read buffers earlier 2022-02-18 00:03:39 +01:00
aler9
bca6756cd6 improve performance 2022-02-18 00:03:39 +01:00
aler9
3a2f9adbd5 server: decode and encode RTP/RTCP packets 2022-02-18 00:03:39 +01:00
aler9
f3096ec102 improve write performance by
* buffering packets before sending them
* removing mutexes
2021-12-08 17:46:56 +01:00
aler9
289c272469 server: simplify tcp handling 2021-12-07 22:46:47 +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
9b88ede6a9 server: remove useless line 2021-12-07 21:53:55 +01:00
aler9
e9bb3e12bf remove tcp/udp comments 2021-12-06 13:55:57 +01:00
aler9
e98cb8b108 rename tcpFrameBuffer into tcpReadBuffer 2021-12-04 22:11:10 +01:00
aler9
d5bdc197be allow client and server to override most parameters 2021-11-18 12:17:04 +01:00
aler9
3ff70157d0 server: do not send receiver reports when using TCP 2021-11-18 12:17:04 +01:00
aler9
1411cb33f5 server: support reading with VLC and multicast 2021-11-15 17:40:17 +01:00
aler9
b81267e310 server: improve performance 2021-11-13 12:36:12 +01:00
aler9
e2b52d0b84 server: do not use StreamType 2021-11-12 18:01:27 +01:00
aler9
e8e2059b0d remove StreamType from base 2021-11-12 18:01:27 +01:00
aler9
6d340cdf39 rtcp*: split ProcessFrame into ProcessPacketRTP and ProcessPacketRTCP 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