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
aler9
95117f0aa4
server: rename Req field into Request
2022-02-19 22:20:01 +01:00
aler9
d7f6567e20
server: restore authentication support
2022-02-19 21:56:27 +01:00
aler9
0e8595a31d
server: remove Session header from ANNOUNCE responses ( https://github.com/aler9/rtsp-simple-server/issues/840 )
2022-02-19 19:23:30 +01:00
aler9
7dd4842fc0
server: do not allow a connection to communicate with multiple sessions
2022-02-19 18:52:05 +01:00
aler9
eae1e120f1
server: do not allow a client to send TCP frames after TEARDOWN
2022-02-19 18:34:47 +01:00
aler9
c7a36478b4
server: remove useless code
2022-02-19 17:54:11 +01:00