Commit Graph

1382 Commits

Author SHA1 Message Date
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
aler9
2844e6dfef fix tests 2022-02-19 15:53:37 +01:00
aler9
7f799ffea8 add client-read-republish example (#91) 2022-02-19 15:13:07 +01:00
aler9
0515539831 add WriteBufferCount; set both ReadBufferCount and WriteBufferCount to 256 2022-02-19 15:09:00 +01:00
aler9
86fb4181c7 server: allow calling ServerSession.WritePacketRTCP() inside OnRecord and OnPlay (#99) 2022-02-18 23:19:33 +01:00
aler9
cbc228acbf remove useless code 2022-02-18 23:02:14 +01:00
aler9
fc2dcf1cfe save RAM by allocating interleaved frames only when needed 2022-02-18 22:46:23 +01:00
aler9
82b03f368f update docs 2022-02-18 10:35:29 +01:00
aler9
a7ce5b7a53 update docs 2022-02-18 10:08:47 +01:00
aler9
433426ff07 rename example 2022-02-18 10:04:19 +01:00
aler9
fe99404495 server: sync states with client ones 2022-02-18 10:02:20 +01:00
aler9
d44f1eb03a server: save RAM by releasing read buffers earlier 2022-02-18 00:03:39 +01:00
aler9
8c7b4c1ce7 client: save RAM by releasing read buffers earlier 2022-02-18 00:03:39 +01:00
aler9
bca6756cd6 improve performance 2022-02-18 00:03:39 +01:00
aler9
3a2f9adbd5 server: decode and encode RTP/RTCP packets 2022-02-18 00:03:39 +01:00
aler9
b7df36d4ad client: decode and encode RTP/RTCP packets 2022-02-18 00:03:39 +01:00
aler9
9a0eed07b3 server: improve performance 2022-02-17 21:23:10 +01:00
aler9
1c9fb77630 improve coverage 2022-02-17 21:19:38 +01:00
aler9
a235613fd6 fix wrong timestamp computation that happened at 28h28m
this was caused by a int64 overflow.
2022-02-13 17:00:13 +01:00
aler9
ab50034c93 improve coverage 2022-02-12 17:03:24 +01:00
aler9
9627570643 print track IDs from 1 instead of 0 in error messages 2022-02-12 16:34:30 +01:00
aler9
8e0b393a47 update docs 2022-02-11 20:28:57 +01:00
Tristan Matthews
1b2a78a744 track: expose Set/GetControl
This is useful for clients that need to override the control field, which was
possible prior to 6d5bf0c1bb via the Media field.
2022-02-11 20:28:57 +01:00
Tristan Matthews
247571eec8 track: expose MediaDescription() 2022-02-11 20:28:57 +01:00
aler9
6f69b9bab9 add NewTrackGeneric() 2022-02-11 20:25:04 +01:00
aler9
2c613ddf7a rewrite track tests 2022-02-11 20:22:56 +01:00
aler9
9a7ccdff3a fix test workflow 2022-02-11 19:37:25 +01:00
aler9
f2c1b88453 server: fix multicast listen error on Windows (https://github.com/aler9/rtsp-simple-server/issues/742)
This happened when the system has network interfaces that don't support multicast.
2022-02-02 18:27:28 +01:00
aler9
88e1244e9f improve coverage 2022-02-01 19:43:59 +01:00
aler9
0c9bd7a575 fix track.clone() (https://github.com/aler9/rtsp-simple-server/issues/808) 2022-02-01 19:09:56 +01:00
aler9
5cf71f59d8 disable buffer alignment in decode examples 2022-02-01 18:03:51 +01:00
aler9
db69235e30 improve h264 decode examples 2022-02-01 17:40:50 +01:00
aler9
3eda3e45e6 replace client-read-h264 example with client-read-h264-decode 2022-01-31 18:47:09 +01:00
aler9
79fdb2b7b4 use log.Print instead of fmt.Print in examples 2022-01-31 18:39:36 +01:00
aler9
8251fe3556 fix comments 2022-01-31 18:39:08 +01:00
aler9
6e2aeade7c new example client-read-h264-convert-to-jpeg 2022-01-31 18:33:11 +01:00
aler9
9603037fb3 client: fix panic 2022-01-31 09:59:02 +01:00
aler9
8c02b12955 fix tests 2022-01-30 16:50:47 +01:00
aler9
e2019c1205 add TrackAAC.Type(), TrackAAC.ChannelCount(), TrackAAC.AOTSpecificConfig() 2022-01-30 16:16:07 +01:00
aler9
30c5a94df6 add TrackH264.SetSPS(), TrackH264.SetPPS() 2022-01-30 15:58:49 +01:00
aler9
ad69a8957b support h264 tracks with extradata in sprop-parameter-sets 2022-01-30 15:51:49 +01:00
aler9
5aefa9e271 add tests for #96 2022-01-30 15:51:49 +01:00
aler9
6d5bf0c1bb new track system 2022-01-30 15:51:49 +01:00
aler9
cd0db96a5d client: test case in which session is not sent in a PLAY response 2022-01-30 14:27:15 +01:00
Lars The
0014b6a82c fix ExtractConfigH264() when extradata is present
The `sprop-parameter-sets` parameter in a SDP description of a H.264 stream could contain more that two fields. These fields could be considered extradata. Some tools like ffmpeg incorporate them if they are available. You can read about specs of this parameter at https://www.ietf.org/archive/id/draft-lennox-avt-h264-source-fmtp-00.html#anchor3 .

This is an example of a working description:
`a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AKJJSgPAIj7wEQAAAAwBAAAAMo8WLZYA=,aP48gAA=; profile-level-id=4D4028`

And this is another example that fails without this PR:
`a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAKawTMUB4BEfeA+oCAgPgAAADACAAAAZSgA==,aPqPLA==,aF6jzAMA; profile-level-id=640029`

So assuming the optional presence of more than two fields in the `sprop-parameter-sets` parameter with PR solves the bug.
2022-01-28 17:45:07 +01:00
aler9
3438279d73 server: move multicast handler into separate file 2022-01-28 00:22:11 +01:00
aler9
7bf111f98a client: cleanup 2022-01-23 22:39:44 +01:00
aler9
b12468d26e server: remove useless check 2022-01-23 12:50:03 +01:00
aler9
8ef623f56d do not treat generic bytes as strings into errors 2022-01-23 12:39:21 +01:00