84 Commits

Author SHA1 Message Date
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
9259df7cff modernize code (#884) 2025-09-07 16:05:13 +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
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
314288ef12 client: prevent setting up undesired back channels (#856) 2025-08-09 17:14:22 +02:00
Alessandro Ros
1021950db8 update linter settings (#840) 2025-07-26 16:28:03 +02:00
Alessandro Ros
800dd9c850 move MPEG-4 audio LATM to dedicated format (bluenviron/mediamtx#4403) (#834) 2025-07-20 17:28:52 +02:00
Alessandro Ros
68245663ec fix race condition in test (#826) 2025-07-06 21:02:00 +02:00
Alessandro Ros
ff94dc956b improve tests (#823) 2025-07-05 14:24:09 +02:00
Alessandro Ros
9c1011567a client: add Start2; deprecate Start (#801) 2025-07-05 13:02:45 +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
3055b4f9a1 client: when reading multicast streams, write unicast reports (#817)
Previously, receiver reports were broadcasted to all connected clients. Now they are sent to the server only.
2025-06-30 20:07:19 +02:00
Alessandro Ros
bf3ce11479 client: prevent downgrading from RTSPS to RTSP during redirect (#816) 2025-06-30 16:03:05 +02:00
Alessandro Ros
6cf27aac05 remove useless code from tests (#815) 2025-06-30 10:15:11 +02:00
Alessandro Ros
33a87b2270 client: deprecate Seek() (#806) 2025-06-29 10:27:54 +02:00
Alessandro Ros
ff85f6156a client: fix reading sources without server ports (bluenviron/mediamtx#4253) (#796)
RTCP packets were sent out to nil addresses, due to the lack of server
ports, causing an error.
2025-06-08 12:45:05 +02:00
Alessandro Ros
4e3c5e6c0d client: skip firewall opening when writing back channels (#776) 2025-05-04 15:47:06 +02:00
Alessandro Ros
904b0a1920 client: enable keepalives in most cases (#775) 2025-05-04 15:39:07 +02:00
Alessandro Ros
2cbdc2a0b7 client: fix timeout when writing to back channels (#575) (#774)
Keep alives are now sent when writing to back channels too.
2025-05-04 13:17:53 +02:00
Alessandro Ros
61372cfa68 rename OnPacketLost2 into OnPacketsLost (#736) 2025-03-24 18:42:48 +01:00
Alessandro Ros
885a9975ef rename auth.Validate into auth.Verify (#698) 2025-02-14 11:34:55 +01:00
Alessandro Ros
ed078672e4 switch to mediacommon/v2 (#695) 2025-02-10 14:50:05 +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
87c6d81053 add statistics to Client, ServerSession, ServerConn, ServerStream (#556) (#656) 2024-12-25 13:30:08 +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
c9bf79f340 client: omit mode from Transport header (#611) (#574) (#614) 2024-09-09 10:28:34 +02:00
Alessandro Ros
ff5bda0e67 client: prevent switching protocol when protocol is fixed to UDP (#607) 2024-08-25 20:40:56 +02:00
Alessandro Ros
f283abc2e7 fix authentication when algorithm field is not supported (#558)
(https://github.com/bluenviron/mediamtx/issues/3116)

This fixes authentication issues with some TP-LINK cameras.
2024-05-15 10:21:30 +02:00
Alessandro Ros
3f62e11795 simplify usage of auth.Validate (#557) 2024-05-03 22:42:50 +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
f040e20ac4 support authenticating with SHA-256 digest (#524) 2024-02-22 19:12:17 +01:00
Alessandro Ros
c10f7aaedb split headers.Authenticate and headers.Authorization (#523) 2024-02-22 13:19:31 +01:00
Alessandro Ros
63a81d0896 support G711 multiple channels and custom sample rates (#497) 2024-01-08 21:16:47 +01:00
Alessandro Ros
f78b04cf4e client: support writing to ONVIF back channels (#101) (#462) 2023-11-15 13:20:29 +01:00
Alessandro Ros
93b02bc0e8 simplify tests (#461) 2023-11-07 23:21:33 +01:00
Alessandro Ros
01b3bfc6ab move url.URL into base.URL (#459) 2023-11-07 16:51:45 +01:00
Alessandro Ros
8fdc7193f2 client: support cameras that don't reply to keepalives (#412)
(https://github.com/bluenviron/mediamtx/issues/2302)
2023-09-11 17:49:46 +02:00
Alessandro Ros
4495e7d689 move most errors into pkg/liberrors (#408) 2023-09-10 17:32:16 +02:00
aler9
70c719a211 allow publishers to set the title of the stream
(https://github.com/bluenviron/mediamtx/issues/979)
2023-08-22 18:59:39 +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