Commit Graph

38 Commits

Author SHA1 Message Date
Alessandro Ros
e9db56f913 client: use server interface as multicast interface (#762) (#847)
this fixes most errors "found no interface that is multicast-capable
and can communicate with IP".
2025-08-04 15:17:49 +02:00
Alessandro Ros
572dedc400 remove redundant code (#843) 2025-08-02 14:25:17 +02:00
Alessandro Ros
616fa7ea89 support encrypted streams with SRTP and MIKEY (#520) (#809) 2025-07-05 12:48:13 +02:00
Alessandro Ros
4f3337f56c set SSRC of outgoing packets (#803)
In client and server, each format now has a fixed, unique, known in
advance SSRC, that is applied to outgoing packets belonging to each
format.

This is needed to support SRTP/MIKEY, that require each format to have
a fixed, unique, and known in advance SSRC.

A secondary effect is that SETUP responses now always contain SSRCs of
each format, regardless of the fact that the first packet has been
produced or not (previously we needed at least one packet, from which
the SSRC was extracted).
2025-07-05 11:08:57 +02:00
Alessandro Ros
3e555e2d18 fix crash when reading tracks with zero clock rate (bluenviron/mediamtx#4476) (#772)
also prevents RTCP sender and RTCP reports from being emitted when
track has clock rate set to zero.
2025-05-01 18:08:13 +02:00
Alessandro Ros
ca6286321d fix various race conditions when writing packets to closed clients or server sessions (#684) 2025-01-19 12:07:59 +01:00
Alessandro Ros
87c6d81053 add statistics to Client, ServerSession, ServerConn, ServerStream (#556) (#656) 2024-12-25 13:30:08 +01:00
Alessandro Ros
5506eb2f7f use a single TCP outgoing buffer each client / session (#665)
this saves memory.
2024-12-24 10:24:24 +01:00
Alessandro Ros
8f74559616 close connections in case of write errors (#613) (#655) 2024-12-14 13:45:11 +01:00
Alessandro Ros
a2df9d83b3 client: fix BytesSent / BytesReceived computation (#612) (#654)
When the TCP transport protocol is in use, BytesSent and BytesReceived
were increased twice.
2024-12-13 20:55:50 +01:00
Alessandro Ros
49ee03f0b1 reuse UDP buffers when possible (#639) 2024-10-24 14:28:53 +02:00
Alessandro Ros
72e74f349e server: use relative control attributes (#620) 2024-09-15 22:51:55 +02:00
Alessandro Ros
2d0c530d97 replace new() with initialize() (#490) 2023-12-26 12:48:35 +01:00
Alessandro Ros
f78b04cf4e client: support writing to ONVIF back channels (#101) (#462) 2023-11-15 13:20:29 +01:00
Alessandro Ros
78198a588b fix reading and writing multicast packets in case of multiple interfaces (#413)
(https://github.com/bluenviron/mediamtx/issues/2029)
2023-09-11 23:36:53 +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
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
4ad57d6a75 preserve NTP when generating sender reports 2023-08-17 13:23:16 +02:00
aler9
7532484041 add option MaxPacketSize to Client and Server 2023-08-16 13:26:17 +02:00
aler9
80106144e6 bump to v4 2023-08-16 13:26:17 +02:00
aler9
482b047999 server: allow ServerSession.WritePacket*() to return an error 2023-08-14 12:13:35 +02:00
aler9
18ddae4c50 enable errcheck 2023-08-13 16:29:53 +02:00
aler9
8b8b52e689 return an error in case the random number generator fails 2023-07-30 22:40:34 +02:00
Alessandro Ros
ed536f1d63 export callback prototypes (#333) 2023-07-28 21:05:10 +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
19dcd3e067 update golangci-lint (#292) 2023-05-28 13:40:00 +02:00
Alessandro Ros
30af49c412 rename maxPacketSize into udpMaxPayloadSize (#249) 2023-04-15 12:24:48 +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
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
04f5a4041c change owner (#217) 2023-03-31 12:34:07 +02:00
Alessandro Ros
d369d215c2 client: replace OnWarning with Log (#208) 2023-03-19 18:15:33 +01:00
Alessandro Ros
a2d6ce8af6 replace OnDecodeError with OnWarning (#177) 2023-01-23 12:54:57 +01:00
Alessandro Ros
7b6a5f8cb3 Add proxy example (#141) (#175)
* cleanup

* add proxy example
2023-01-23 11:23:16 +01:00
Alessandro Ros
f6438ed8d1 normalize file names (#173) 2023-01-22 11:44:20 +01:00