27 Commits

Author SHA1 Message Date
Alessandro Ros 569226dd3a use safer atomic structs instead of atomic functions (#1039) 2026-03-31 11:31:08 +02:00
Alessandro Ros e55d889e89 refactor statistics (#1020) 2026-03-16 20:51:58 +01:00
Alessandro Ros 4c54b29a94 allocate a rtp sender for each server session (#1021)
this produces more realistic statistics and in the future will
allow to implement per-session statistics and packet retransmission.
2026-03-16 19:46:09 +01:00
Alessandro Ros 0e56f305d1 allow rtpreceiver and rtpsender to count received, lost and sent packets (#947) 2025-11-12 18:07:09 +01:00
Alessandro Ros ec81d388d1 switch to v5 (#890)
* switch from v4 to v5

* remove deprecated entities

* remove "2" suffix from entities

* rename TransportProtocol into Protocol
2025-09-16 11:46:52 +02:00
Alessandro Ros c466c342ba expose transport details (#850)
add Client.Transport, ServerConn.Transport ServerSession.Transport
2025-09-06 16:28:40 +02:00
Alessandro Ros 65da49ffc0 optimize code (#878)
* remove unused code

* initialize UDP listeners and SRTP before initializing medias

* make rtpSender and rtpReceiver available before PLAY / RECORD

* use writerMutex to protect writer only
2025-09-05 23:11:51 +02:00
Alessandro Ros 1f543a0331 rename rtcpreceiver into rtpreceiver, rtcpsender into rtpsender (#874)
These utilities were originally meant to handle RTCP only, now they are
in charge of every QoS mechanism.
2025-09-04 19:06:56 +02:00
Alessandro Ros cf2ff2b564 add Transport.Profile, media.Profile (#873)
this will allow to support AVPF in the future.
2025-09-04 18:08:51 +02:00
Alessandro Ros 1021950db8 update linter settings (#840) 2025-07-26 16:28:03 +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 ff08b85700 server: add ServerStreamStatsFormat.LocalSSRC (#804) 2025-06-28 16:56:44 +02:00
Alessandro Ros 74a65e4c08 expose back rtcpreceiver, rtcpsender, rtpreorderer, rtplossdetector (#755) 2025-04-12 10:10:05 +02:00
Alessandro Ros 376fb9e821 replace New* with Initialize (#723) 2025-03-16 13:58:35 +01:00
Alessandro Ros 87c6d81053 add statistics to Client, ServerSession, ServerConn, ServerStream (#556) (#656) 2024-12-25 13:30:08 +01:00
Alessandro Ros 8c4a3ca018 unexport RTCPSender, RTCPReceiver, LossDetector, Reorderer (#667) 2024-12-24 21:21:11 +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 2d0c530d97 replace new() with initialize() (#490) 2023-12-26 12:48:35 +01:00
Dr. Ralf S. Engelschall 0933bf9975 add BytesSent to ServerStream (#457)
* add BytesSent to ServerStream (to allow MediaMTX to gather bytes sent on all paths)

* improve performance

* add test

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-11-04 17:46:22 +01:00
Alessandro Ros 3bdae4ed46 make WritePacket*() return errors when write queue is full (#388) 2023-08-26 18:09:45 +02:00
Alessandro Ros 29ddbbbbf5 align PacketPTS() and PacketNTP(); add example (#374) 2023-08-22 20:53:23 +02:00
aler9 5e5a21240d rename pkg/formats into pkt/format 2023-08-16 13:26:17 +02:00
aler9 80106144e6 bump to v4 2023-08-16 13:26:17 +02:00
Alessandro Ros af3ed2bd83 merge format and formatdecenc into formats (#222) 2023-04-01 13:23:16 +02:00
Alessandro Ros 04f5a4041c change owner (#217) 2023-03-31 12:34:07 +02:00
Alessandro Ros f6438ed8d1 normalize file names (#173) 2023-01-22 11:44:20 +01:00