Commit Graph

68 Commits

Author SHA1 Message Date
aler9
e6e7f11ee1 improve coverage 2022-12-09 12:31:18 +01:00
Alessandro Ros
51b8063325 rtph264: return error in decoder if packetization-mode is 2 (#153) 2022-11-14 21:23:13 +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
Alessandro Ros
035ee70202 speed up tests (#143) 2022-11-01 10:13:07 +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
e8fde26d55 return error in OnDecodeError when there are lost RTP packets 2022-10-31 15:05:42 +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
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
4e41b1c88b improve tests 2022-06-11 19:19:38 +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
cec5326ccf downgrade pion/rtp to v1 (#110) (#113) 2022-04-01 11:19:43 +02:00
aler9
7f6383aa3c server: make calling ServerStream.Close() mandatory 2022-03-24 12:44:20 +01: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
e12b22ae77 fix encoding of RTP packets with padding
this fixes a SIGSEGV with GStreamer
2022-03-08 12:47:55 +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
86fb4181c7 server: allow calling ServerSession.WritePacketRTCP() inside OnRecord and OnPlay (#99) 2022-02-18 23:19:33 +01:00
aler9
3a2f9adbd5 server: decode and encode RTP/RTCP packets 2022-02-18 00:03:39 +01:00
Tristan Matthews
1b2a78a744 track: expose Set/GetControl
This is useful for clients that need to override the control field, which was
possible prior to 6d5bf0c1bb via the Media field.
2022-02-11 20:28:57 +01:00
Tristan Matthews
247571eec8 track: expose MediaDescription() 2022-02-11 20:28:57 +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
7634076eb5 send receiver reports only after receiving a sender report 2021-12-06 17:09:59 +01:00
aler9
d5bdc197be allow client and server to override most parameters 2021-11-18 12:17:04 +01:00
aler9
a4c43fc1e8 use UDP in sender / receiver report tests 2021-11-18 11:51:32 +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
19568f2d42 fix tests 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
6e38851a09 add non standard frame tests 2021-11-06 13:28:16 +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
aler9
e7ab15750c server: replace SetuppedProtocol() with SetuppedTransport() 2021-10-22 17:40:18 +02:00
aler9
d744a2e0d3 change way tracks are initialized
A config object is now required to initialize tracks.
Config objects are provided for H264 and AAC.
This allows to pass parameters easily and treat AAC
parameters explicitly.
2021-08-25 19:16:51 +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
db28e87ecb server: fill SSRC in SETUP responses and RTP-Info in PLAY responses automatically 2021-06-17 16:45:24 +02:00
aler9
3f3226b53d server: support reading with multicast 2021-06-17 16:45:24 +02:00