Commit Graph

72 Commits

Author SHA1 Message Date
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
Alessandro Ros
24ed937861 update golangci-lint (#535) 2024-03-19 12:50:26 +01:00
Alessandro Ros
9cd54f56b4 client: prevent UDP listener from closing twice (#515) 2024-01-31 22:10:31 +01:00
Alessandro Ros
6371b78b5b update documentation (#506) 2024-01-21 16:18:51 +01:00
Alessandro Ros
7d30b5f1b7 update golangci-lint (#494) 2024-01-03 21:12:19 +01:00
Alessandro Ros
2d0c530d97 replace new() with initialize() (#490) 2023-12-26 12:48:35 +01:00
Alessandro Ros
01b3bfc6ab move url.URL into base.URL (#459) 2023-11-07 16:51:45 +01:00
Alessandro Ros
2f7ed32139 server: add methods SetuppedStream, SetuppedPath, SetuppedQuery (#444) 2023-10-17 20:31:54 +02:00
Alessandro Ros
644cd50e3a server: stop sending multicast packets when all multicast readers have disconnected (#411) 2023-09-11 10:57:49 +02:00
Alessandro Ros
4495e7d689 move most errors into pkg/liberrors (#408) 2023-09-10 17:32:16 +02:00
Alessandro Ros
efc7783650 server: fix crash when calling RECORD and PAUSE (#392) 2023-08-31 22:42:17 +02:00
Alessandro Ros
3bdae4ed46 make WritePacket*() return errors when write queue is full (#388) 2023-08-26 18:09:45 +02:00
Alessandro Ros
b97aed00fe remove ReadBufferCount; rename WriteBufferCount into WriteQueueSize (#384) 2023-08-26 12:57:33 +02:00
aler9
67062787f6 Merge branch 'main' into v4 2023-08-25 16:10:42 +02:00
Alessandro Ros
72aa55a012 log decode errors and lost packets by default (#380) 2023-08-25 16:08:28 +02:00
Alessandro Ros
ed4bbe3986 client: support server-sent requests (#93) (#378) 2023-08-24 16:07:09 +02:00
Alessandro Ros
29ddbbbbf5 align PacketPTS() and PacketNTP(); add example (#374) 2023-08-22 20:53:23 +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
8b047b545b decode RTP time globally 2023-08-17 13:41:01 +02:00
aler9
bfef17b717 add Client.PacketNTP(), ServerSession.PacketNTP() 2023-08-17 13:23:16 +02:00
aler9
5e5a21240d rename pkg/formats into pkt/format 2023-08-16 13:26:17 +02:00
aler9
e2c526b3b8 remove ServerHandler.Server 2023-08-16 13:26:17 +02:00