Alessandro Ros
c7da004e03
merge rtplossdetector and rtpreorderer into rtcpreceiver ( #842 )
2025-08-02 12:41:10 +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
74a65e4c08
expose back rtcpreceiver, rtcpsender, rtpreorderer, rtplossdetector ( #755 )
2025-04-12 10:10:05 +02: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
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
8b8b52e689
return an error in case the random number generator fails
2023-07-30 22:40:34 +02:00
Alessandro Ros
22c2c72ef1
generate RTCP receiver reports even before receiving RTCP sender reports ( #318 )
...
(https://github.com/bluenviron/mediamtx/issues/1739 )
2023-06-26 10:58:02 +02: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
aler9
d521a785c4
support tracks without clock rate
2022-11-27 21:17:48 +01:00
aler9
b1ed0a8abb
rtcpreceiver: rename variable
2022-11-05 17:26:52 +01: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
5b37e9d5bb
rtcp sender/report: do not send reports until all needed data is available
2022-04-08 16:45:43 +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
cec5326ccf
downgrade pion/rtp to v1 ( #110 ) ( #113 )
2022-04-01 11:19:43 +02:00
aler9
b2a849dbd8
move RTCP sender / receiver writes into dedicate routine
2022-03-13 01:30:37 +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
b7df36d4ad
client: decode and encode RTP/RTCP packets
2022-02-18 00:03:39 +01:00
aler9
8251fe3556
fix comments
2022-01-31 18:39:08 +01:00
aler9
7634076eb5
send receiver reports only after receiving a sender report
2021-12-06 17:09:59 +01:00
aler9
d12c0a6cd4
rtcpreceiver: rename frames into packets
2021-12-04 19:31:14 +01:00
aler9
6d340cdf39
rtcp*: split ProcessFrame into ProcessPacketRTP and ProcessPacketRTCP
2021-11-12 18:01:27 +01:00
aler9
b9042282ab
update doc
2021-09-23 20:03:53 +02:00
aler9
239b71d975
server: do not allow a client to control a session created with a different IP
2021-09-23 19:52:57 +02:00
aler9
0454e5407f
use crypto/rand instead of math/rand to avoid port conflicts and security issues
2021-09-23 19:37:26 +02:00
aler9
88608152cc
rename buf into payload
2021-07-03 11:52:51 +02:00
aler9
94e69f9c7f
update golangci-lint
2021-05-23 18:50:50 +02:00
aler9
9ea2f797ea
rtpaac: add decoder, add tests
2021-03-07 16:53:53 +01:00
aler9
8e70ac4d59
normalize names
2021-01-06 12:26:07 +01:00
aler9
71861bd132
switch to golangci-lint
2020-12-05 18:44:05 +01:00
aler9
6b4fe73270
rename OnFrame into ProcessFrame
2020-11-30 15:09:21 +01:00
aler9
b2054747b8
add jitter to rtcp receiver reports; fix #15
2020-11-28 22:56:04 +01:00
aler9
3b5901ba01
add delay to rtcp receiver reports ( #15 )
2020-11-28 12:14:02 +01:00
aler9
f82fe2309d
move time as first argument in rtcpreceiver, rtcpsender, rtpaac, rtph264
2020-11-28 11:44:41 +01:00
aler9
7d1e3afff3
cleanup rtcpreceiver
2020-11-27 20:50:53 +01:00
aler9
673acb657a
rtcpsender: extract clock rate from sdp instead of estimating it
2020-11-22 15:11:05 +01:00
aler9
2eebf48fca
implement rtcp sender reports
2020-11-21 23:54:32 +01:00
aler9
a21bced1dd
add number of lost packets to rtcp receiver reports
2020-11-21 15:55:04 +01:00
aler9
0c1d087dde
fix generation of rtcp receiver reports
2020-11-21 15:04:41 +01:00
aler9
c31922be16
move subfolders in pkg/
2020-11-15 17:26:09 +01:00