aler9
ca3ab98cca
server: fix generation of RTP-Info
2023-01-11 00:57:30 +01:00
aler9
645f9462e2
server: support publishing/reading to/from path '/' or ''
2023-01-11 00:39:58 +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
ffe8c87c38
fix overriding of previously-received RTP packets that leaded to crashes
...
RTP packets were previously take from a buffer pool. This was messing
up the Client, since that buffer pool was used by multiple routines at
once, and was probably messing up the Server too, since packets can be
pushed to different queues and there's no guarantee that these queues
have an overall size less than ReadBufferCount.
This buffer pool is removed; this decreases performance but avoids bugs.
2022-12-19 13:51:49 +01:00
aler9
38b24b8e26
rename 'track' references into 'format'
2022-12-13 18:06:41 +01:00
aler9
0f87a1cf41
server: add ServerSession.SetuppedMedias()
2022-12-12 20:10:24 +01:00
aler9
256877086b
merge serverWriter and clientWriter
2022-12-11 22:54:16 +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
aler9
d521a785c4
support tracks without clock rate
2022-11-27 21:17:48 +01:00
aler9
62f597457b
fix support for 32bit architectures
2022-11-10 22:06:33 +01:00
aler9
d75423d185
rename ReadBytes and WrittenBytes into BytesReceived and BytesSent
2022-11-09 19:28:05 +01:00
Alessandro Ros
95d1562735
server: add methods to get read and written bytes ( #147 )
...
ServerConn.ReadBytes()
ServerConn.WrittenBytes()
ServerSession.ReadBytes()
ServerSession.WrittenBytes()
2022-11-09 13:41:48 +01:00
Jon Lech Johansen
76460d6404
Fix parsing of Transport header with multiple transports. ( #145 )
...
* Fix parsing of Transport header with multiple transports.
* Lint.
* Add test for Transport header with multiple transports.
* Filter out unsupported transports.
* Handle multicast properly when filtering out unsupported transports.
* Minor code cleanup.
* add Transports.Unmarshal(), add additional tests
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2022-11-09 12:00:33 +01:00
aler9
ededb490bc
server: when a session is closed, close all associated connections
...
regardless of the fact that they use TCP or UDP
2022-11-03 21:10:26 +01:00
aler9
08a16e7b38
server: allow to associate user data to sessions ( #50 )
2022-11-03 12:02:38 +01:00
Alessandro Ros
7a4c7d6d66
remove h264 decoding and re-encoding ( #144 )
...
* stop re-encoding H264
* stop decoding H264
* improve tests
2022-11-02 14:38:05 +01:00
aler9
0e6a0b8b25
call OnDecodeError when rtpcleaner returns an error
2022-10-31 18:51:29 +01:00
aler9
c51fddc784
server: move serverMulticastHandler inside serverStreamTrack
2022-10-28 14:56:03 +02:00
aler9
06bed24dd9
add intermediate layer between net.Conn and client / server
2022-08-14 23:43:01 +02:00
aler9
a2c6a7fb97
server: change behavior in case of unhandled methods
...
(https://github.com/aler9/rtsp-simple-server/issues/1066 )
Return 501 and keep connection open instead of returning 400 and
closing the connection.
2022-08-07 13:51:12 +02:00
aler9
4940e8faeb
server: add Session to ServerHandlerOnSetParameterCtx
2022-08-07 13:43:59 +02: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
fb39087150
client: avoid sending/receiving invalid packet when reading with multicast
2022-07-05 22:54:40 +02:00
aler9
18005a9cde
ringbuffer: force size to be a power of 2
...
otherwise buffer is used partially when writeIndex overflows.
2022-07-05 19:25:53 +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
f4cc42eccc
server: correctly close sessions in case of errors during SETUP
...
(https://github.com/aler9/rtsp-simple-server/issues/965 )
2022-06-21 14:55:17 +02:00
aler9
ac910c63db
rename rtpproc into rtpcleaner
2022-06-11 19:50:38 +02:00
aler9
92ed04ad6c
optimize RTP packet handling
2022-06-11 19:11:24 +02:00
aler9
98b6515c33
move RTP packet handling into separate package
2022-06-11 13:47:26 +02:00
aler9
2fa3148a27
move URL into dedicated folder
2022-06-05 01:27:19 +02:00
aler9
d40205e592
cleanup code
2022-06-02 18:04:22 +02:00
aler9
fdbd0ac73a
server: fix RTCP report computation
2022-06-02 13:00:04 +02:00
aler9
206506a8f0
fix wrong RTP-Info header ( https://github.com/aler9/rtsp-simple-server/issues/922 )
...
- fix truncation to seconds of RTP time in RTP-Info
- add a small quantity to rtptime in RTP-Info
- add 1 to last sequence number in RTP-Info
2022-05-16 14:34:17 +02:00
aler9
811e189b43
client: support cameras that provide base URL inside control attribute ( https://github.com/aler9/rtsp-simple-server/issues/683 )
2022-05-11 16:51:48 +02:00
aler9
c1b10a80be
allow writing primitives to static buffers
2022-05-11 15:26:44 +02:00
aler9
18f7fab361
update docs
2022-05-10 10:28:52 +02:00
aler9
edeef85e9e
accept io.Writer in Write() methods
2022-05-08 14:33:29 +02:00
aler9
7bf907e94c
improve performance
2022-04-10 11:29:15 +02:00
aler9
bfe4e8cdaa
automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize
2022-04-09 20:16:14 +02:00
aler9
0463e6b510
server: parse incoming RTP/H264 packets; fix RTCP receiver jitter
2022-04-08 16:45:09 +02:00
aler9
cec5326ccf
downgrade pion/rtp to v1 ( #110 ) ( #113 )
2022-04-01 11:19:43 +02:00
aler9
7d9c882cc9
server: generate RTCP sender reports automatically; remote RTCP routing from examples
2022-03-24 15:27:19 +01:00
aler9
e7efb0c405
client: skip tracks with an invalid clock rate ( https://github.com/aler9/rtsp-simple-server/issues/832 )
2022-03-15 11:10:56 +01:00
aler9
47caa2ed2c
server: remove useless code
2022-03-13 15:02:01 +01:00
aler9
6fad3354e9
restore support for multi-track RTCP reports
2022-03-13 14:52:51 +01:00
aler9
b2a849dbd8
move RTCP sender / receiver writes into dedicate routine
2022-03-13 01:30:37 +01:00
aler9
218e5ae226
server: set timeout in Session header only when client is playing and protocol is UDP
2022-03-09 10:03:15 +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
0cbd37002b
update docs
2022-03-07 19:50:21 +01:00
aler9
dd0904407f
cleanup code
2022-03-02 22:19:09 +01:00