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
9a257e65c8
simplify code with ptrOf ( #943 )
2025-11-11 11:51:31 +01:00
Alessandro Ros
b6f80fd5f2
fix SP payload of MIKEY messages ( #827 ) ( #935 )
...
fill PayloadSPPolicyParamTypeAuthTagLen and
PayloadSPPolicyParamTypeSessionAuthKeyLen properly.
2025-11-02 17:04:51 +01:00
Alessandro Ros
1214bdc17e
server: fix timeout when reading with Media Foundation (bluenviron/mediamtx#5090) ( #932 )
2025-11-02 17:03:44 +01:00
Tristan Matthews
69481ce0bd
Apply modernize changes ( #917 )
2025-11-02 17:00:34 +01:00
Alessandro Ros
2b3d77d465
server: fix crash when calling PAUSE ( #922 )
...
this happened when playing and protocol is UDP-multicast.
2025-10-20 14:12:14 +02:00
Alessandro Ros
1486bce64a
server: fix timeout when recording with FFmpeg and UDP (bluenviron/mediamtx#5100) ( #921 )
2025-10-20 14:11:51 +02:00
Alessandro Ros
449624b60f
server: add idle timeout ( #912 )
...
this prevents idle connections and sessions from stacking up.
2025-10-13 18:06:27 +02:00
Alessandro Ros
6107dea9a0
add RTSP-over-WebSocket ( #891 ) ( #898 )
2025-09-17 21:30:11 +02:00
Alessandro Ros
1616c8c634
rename Transport2 into Transport ( #897 )
2025-09-16 12:28:28 +02:00
Alessandro Ros
25aecc7b96
server: prevent using UDP when tunneling through HTTP ( #896 )
2025-09-16 12:19:54 +02:00
Alessandro Ros
425fce20fc
rename Transport* into Protocol* ( #895 )
2025-09-16 12:06:50 +02: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
ead4471b5c
support RTSP-over-HTTP ( #433 ) ( #768 ) ( #887 )
2025-09-15 19:00:50 +02:00
Alessandro Ros
9db34842c8
move host resolution from headers to client/server ( #883 )
2025-09-07 15:39:02 +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
3c2625c7cf
make most methods thread safe ( #882 )
...
Client: Stats
ServerConn: Session, Stats
ServerSession: State, Stats, Medias, Path, Query, Stream,
SetuppedSecure, SetuppedTransport, AnnouncedDescription
2025-09-06 15:42:07 +02:00
Alessandro Ros
702cd0a70f
server: remove Setupped* prefix from most methods ( #881 )
2025-09-05 23:30:20 +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
367eb4dffd
fix encoding and decoding of NTP fractional part ( #869 ) ( #870 )
...
Fractional part now is in 1/(2^32) units, while it was in 1/(1^9) units.
2025-08-31 12:36:17 +02:00
Alessandro Ros
63f7ffc3e3
improve Stats performance ( #839 )
...
Build aggregated statistics by using already-available data.
2025-07-26 14:01: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
ff08b85700
server: add ServerStreamStatsFormat.LocalSSRC ( #804 )
2025-06-28 16:56:44 +02:00
Alessandro Ros
b407cb1dd0
server: support reading back channels ( #597 ) ( #777 )
2025-05-04 17:04:15 +02:00
Alessandro Ros
74a65e4c08
expose back rtcpreceiver, rtcpsender, rtpreorderer, rtplossdetector ( #755 )
2025-04-12 10:10:05 +02:00
Alessandro Ros
8c6495c33b
server: prevent wrong OnSetup / OnDescribe usage ( #732 )
2025-03-23 16:42:29 +01:00
Alessandro Ros
376fb9e821
replace New* with Initialize ( #723 )
2025-03-16 13:58:35 +01:00
Alessandro Ros
64309126c6
server: fix panic during PAUSE due to race condition ( #689 ) ( #692 )
2025-02-07 16:30:10 +01: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
Sijmen
b2cfa93d13
client: fix panic when writing packets after connection error ( #681 )
...
* Fix writer nullpointer panic on network reconnect
* add additional code and tests
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-01-18 19:40:47 +01:00
Alessandro Ros
6240aa2847
server: fix resetting writer when OnPlay fails ( #683 )
2025-01-18 19:12:59 +01:00
Alessandro Ros
4d3d6bc108
prevent RTPPacketsJitter from being NaN ( #670 )
2024-12-25 15:32:16 +01:00
Alessandro Ros
5d44205cbe
rename RTPJitter into RTPPacketsJitter ( #669 )
2024-12-25 15:14:40 +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
db334b3a8d
server: fix crash with invalid SETUP request (bluenviron/mediamtx#4025) ( #652 )
2024-12-08 18:58:13 +01:00
Alessandro Ros
01fd8033a2
use new time decoder in place of deprecated one ( #643 )
2024-11-04 13:26:14 +01:00
Alessandro Ros
49ee03f0b1
reuse UDP buffers when possible ( #639 )
2024-10-24 14:28:53 +02:00
Alessandro Ros
d43cce3086
server: fix error message ( #634 )
...
Return error 'can't setup medias with different protocols' when trying
to use UDP and TCP in sequence.
2024-10-14 12:28:03 +02:00
Alessandro Ros
2ca0bffa20
use native timestamps instead of time.Duration ( #627 )
...
this improves timestamp precision
2024-10-07 15:58:43 +02:00
Alessandro Ros
6ed93de46c
server: fix SETUP in case of no track ID and query parameters ( #623 )
2024-09-15 23:24:34 +02:00
Alessandro Ros
72e74f349e
server: use relative control attributes ( #620 )
2024-09-15 22:51:55 +02:00
Alessandro Ros
c682ff53bf
server: fix compatibility with rtspclientsink and query parameters (bluenviron/mediamtx#3295) ( #619 )
2024-09-15 22:18:23 +02:00
Alessandro Ros
5865d7b7ac
server: fix panic when recording with wrong transport header ( https://github.com/bluenviron/mediamtx/issues/3677 ) ( #604 )
2024-08-25 20:40:31 +02:00
Katie Holly
9f6428bdb8
avoid returning partial RTP-Info header, omit seq/rtptime if needed ( #568 )
...
* avoid returning partial RTP-Info header, omit seq/rtptime if needed
* adjust test to align with new behavior of RTP-Info header
2024-05-09 22:17:26 +02:00
Alessandro Ros
363b48e632
update golangci-lint ( #554 )
2024-04-28 18:20:25 +02:00