Alessandro Ros
1021950db8
update linter settings ( #840 )
2025-07-26 16:28:03 +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
885a9975ef
rename auth.Validate into auth.Verify ( #698 )
2025-02-14 11:34:55 +01:00
Kevin Wang
21e06b0f68
Support relative Content-Base paths ( #636 )
2024-10-23 22:22:41 +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
01b3bfc6ab
move url.URL into base.URL ( #459 )
2023-11-07 16:51:45 +01:00
Alessandro Ros
7632ae5615
client: support receiving responses with spaces in CSeq ( #437 ) ( #446 )
2023-10-22 13:58:12 +02:00
Alessandro Ros
ed4bbe3986
client: support server-sent requests ( #93 ) ( #378 )
2023-08-24 16:07:09 +02:00
aler9
cdbecb1f5d
allow setting additional properties of streams through description.Stream
2023-08-22 16:46:18 +02:00
aler9
ca87733ded
remove suffix from new functions
2023-08-16 13:26:17 +02:00
aler9
80106144e6
bump to v4
2023-08-16 13:26:17 +02:00
aler9
8ef42a27e9
restore API compatibility
2023-07-31 10:07:25 +02:00
aler9
8b8b52e689
return an error in case the random number generator fails
2023-07-30 22:40:34 +02:00
Alessandro Ros
37dc292ee5
client: support URLs with IPv6 and no port ( #313 ) ( #316 )
2023-06-17 11:45:05 +02:00
Alessandro Ros
7c67221494
auth: add Validate() and deprecate Validator{} ( #272 )
2023-05-07 19:34:20 +02:00
Alessandro Ros
1694d9086d
use normalized trackID in place of mediaUUID ( #226 )
...
This is needed to support clients like the Grandstream GXV3500.
Fixes #190
2023-04-07 12:38:10 +02:00
Alessandro Ros
04f5a4041c
change owner ( #217 )
2023-03-31 12:34:07 +02:00
Alessandro Ros
1ad059a80b
server: use absolute RTSP URL as control attribute ( #210 )
...
this is necessary in order to make GStreamer's rtspsrc to send query parameters correctly in SETUP requests.
2023-03-24 10:54:14 +01:00
aler9
e3f21fc59f
client: send TEARDOWN even when PLAY or RECORD have not been sent yet
2023-01-19 10:31:28 +01:00
Alessandro Ros
ae9dac0ad3
use random UUIDs as media IDs ( #163 )
...
* remove Medias.Clone(), Media.Clone(), Format.Clone()
* server: use random UUIDs as media IDs
* client: use random UUIDs as media IDs
2022-12-22 20:32:28 +01:00
aler9
46cbb885b7
improve coverage
2022-12-11 23:40:01 +01: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
Alessandro Ros
51b8063325
rtph264: return error in decoder if packetization-mode is 2 ( #153 )
2022-11-14 21:23:13 +01:00
aler9
d9d6227906
client: simplify usage of Setup()
2022-11-01 09:58:08 +01:00
aler9
27f8015ac6
simplify usage of Conn
2022-08-15 00:10:21 +02:00
aler9
06bed24dd9
add intermediate layer between net.Conn and client / server
2022-08-14 23:43:01 +02:00
aler9
f3b0fc69b4
rename Read / Write into Unmarshal / Marshal when needed
...
Read() / Write() are used to read / write from streams, while
Unmarshal() / Marshal() are used to decode / encode from / to bytes.
2022-06-27 17:27:16 +02:00
aler9
9f4fea8a01
change track initialization method
2022-06-23 13:13:36 +02:00
aler9
2fa3148a27
move URL into dedicated folder
2022-06-05 01:27:19 +02:00
aler9
c1b10a80be
allow writing primitives to static buffers
2022-05-11 15:26:44 +02:00
aler9
edeef85e9e
accept io.Writer in Write() methods
2022-05-08 14:33:29 +02:00
aler9
bfe4e8cdaa
automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize
2022-04-09 20:16:14 +02:00
aler9
bc9be686d9
client: call Options() automatically
2022-02-19 22:51:54 +01:00
aler9
ad69a8957b
support h264 tracks with extradata in sprop-parameter-sets
2022-01-30 15:51:49 +01:00
aler9
6d5bf0c1bb
new track system
2022-01-30 15:51:49 +01:00
aler9
f3096ec102
improve write performance by
...
* buffering packets before sending them
* removing mutexes
2021-12-08 17:46:56 +01:00
aler9
a1de5ffdf9
add client TLS publish tests
2021-12-08 17:23:03 +01:00
aler9
9c3ee269f2
client: do not use InsecureSkipVerify by default
2021-12-03 23:11:49 +01:00
aler9
73f1c632c5
client: set ServerName when using TLS ( https://github.com/aler9/rtsp-simple-server/issues/708 )
2021-12-03 22:56:35 +01:00
aler9
1a62baecad
add client close test
2021-11-18 10:06:36 +01:00
aler9
1411cb33f5
server: support reading with VLC and multicast
2021-11-15 17:40:17 +01:00
aler9
e13b4289ec
client: simplify API, add StartReadingWait
2021-11-12 18:01:27 +01:00
aler9
d04381d787
client: allow calling Close() during a request
2021-11-12 18:01:27 +01:00
aler9
d1d766658b
client: merge Client and ClientConn
2021-11-12 18:01:27 +01:00
aler9
fdb0d70870
client: remove default client
2021-11-12 18:01:27 +01:00
aler9
1d5f3c92ae
add VLC authentication workaround
2021-10-30 14:47:58 +02:00
aler9
d744a2e0d3
change way tracks are initialized
...
A config object is now required to initialize tracks.
Config objects are provided for H264 and AAC.
This allows to pass parameters easily and treat AAC
parameters explicitly.
2021-08-25 19:16:51 +02:00
Daniel Mack
8062cfdf42
Add support for charset information in content-type header
...
Altough not explicitly allowed by RFC2326, some servers respond with
a `Content-Type` header field that contains charset information as
described in RFC2616 (sec 14.17).
The parser currently fails to read from such connections and bails
with
`unsupported Content-Type header '[application/sdp; charset=utf-8]'`
Change this by ignoring everything after a semicolon.
2021-06-25 19:05:40 +02:00