1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00
Commit graph

68 commits

Author SHA1 Message Date
Winlin
23d2602c34
UniquePtr: Support SrsUniquePtr to replace SrsAutoFree. v6.0.136 (#4109)
To manage an object:

```cpp
// Before
MyClass* ptr = new MyClass();
SrsAutoFree(MyClass, ptr);
ptr->do_something();

// Now
SrsUniquePtr<MyClass> ptr(new MyClass());
ptr->do_something();
```

To manage an array of objects:

```cpp
// Before
char* ptr = new char[10];
SrsAutoFreeA(char, ptr);
ptr[0] = 0xf;

// Now
SrsUniquePtr<char[]> ptr(new char[10]);
ptr[0] = 0xf;
```

In fact, SrsUniquePtr is a limited subset of SrsAutoFree, mainly
managing pointers and arrays. SrsUniquePtr is better than SrsAutoFree
because it has the same API to standard unique ptr.

```cpp
SrsUniquePtr<MyClass> ptr(new MyClass());
ptr->do_something();
MyClass* p = ptr.get();
```

SrsAutoFree actually uses a pointer to a pointer, so it can be set to
NULL, allowing the pointer's value to be changed later (this usage is
different from SrsUniquePtr).

```cpp
// OK to free ptr correctly.
MyClass* ptr;
SrsAutoFree(MyClass, ptr);
ptr = new MyClass();

// Crash because ptr is an invalid pointer.
MyClass* ptr;
SrsUniquePtr<MyClass> ptr(ptr);
ptr = new MyClass();
```

Additionally, SrsAutoFreeH can use specific release functions, which
SrsUniquePtr does not support.

---------

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-07-09 10:29:36 +08:00
Winlin
9dba99a1cc
SmartPtr: Support shared ptr for RTC source. v6.0.128 (#4085)
---------

Co-authored-by: Haibo Chen <495810242@qq.com>
2024-06-14 08:07:26 +08:00
winlin
2a2da2253f Switch to 2013-2024. v6.0.109 2024-01-01 10:51:24 +08:00
winlin
29eff1a242 Refine LICENSE. 2023-10-23 14:33:19 +08:00
winlin
c46ef81ff2 SRS5: Update license date to 2023. v5.0.123
PICK 72f8ed4916
2023-01-01 08:56:20 +08:00
Winlin
368356c223
Support address sanitizer for utest and fix some leaks. (#3242)
* MP4: Fix memory leak when error.

* Kernel: Support free global objects for utest.

* HTTP: Fix memory leak when error.

* MP4: Support more sample rate for audio.

* RTMP: Support free field for utest.

* UTest: Support address sanitizer.
2022-11-18 11:19:01 +08:00
winlin
9c81a0e1bd UTest: Fix utest warnings. 2022-10-06 16:09:07 +08:00
winlin
0c6d30861b Merge branch '4.0release' into develop 2022-09-27 14:53:23 +08:00
winlin
386b92e9ab For #3167: WebRTC: Refine sequence jitter algorithm. v4.0.266 2022-09-27 14:53:05 +08:00
winlin
d117145b95 Update date from 2021 to 2022. 2022-06-20 19:22:25 +08:00
ChenGH
ab81696102 Bugfix: Fix rtcp nack blp encode bug (#2966). v4.0.248
Co-authored-by: Winlin <winlin@vip.126.com>
2022-03-15 08:43:03 +08:00
ChenGH
70aa6b66bb
bugfix: fix rtcp nack blp encode bug (#2966)
Co-authored-by: Winlin <winlin@vip.126.com>
2022-03-15 08:40:06 +08:00
winlin
d5c86dc5fa Switch LICENSE from MIT to **MIT or MulanPSL-2.0**. v5.0.21 2022-01-13 18:40:22 +08:00
winlin
f05e67e1a6 Squash: Fix bugs 2021-12-13 09:24:16 +08:00
long
4decc1fa6b
RTC: Fix nack encode seqnum (#2766)
* fix nack encode seqnum

* add nack encode utest

* change Variable naming

Co-authored-by: liyalong1 <liyalong1@100tal.com>
2021-12-06 12:42:39 +08:00
winlin
8576fa7052 Squash: Merge v4.0.203 2021-12-04 11:21:35 +08:00
john
f3c4023c25
Fix bugs for RTC2RTMP. (#2768)
1. Cache IDR frame's rtp timestamp instead of avsync timestamp.
2. Cache clock rate calculate by sender report.
3. Using srs_rtp_seq_distance instead of direct minus.
4. Add utest of av timestamp sync when duplicated sender report.
2021-12-04 11:15:02 +08:00
winlin
85620a34f5 Squash: Fix rtc to rtmp sync timestamp using sender report. #2470 2021-08-17 07:25:03 +08:00
john
ea8cff6163
RTC: Fix rtc to rtmp sync timestamp using sender report. (#2470)
* fix annotation spell failed

* RTC to RTMP using SenderReport to sync av timestamp

* update pion/webrtc versio from v3.0.4 -> v3.0.13, auto config sender/receiver report

* Add rtc push flv play regression test

* Add unit test of ntp and av sync time

* Take flag CXX to makefile of utest

* Add annotation about rtc unit test

* Fix compiler error in C++98

* Add FFmpeg log callback funciton.
2021-08-17 06:32:35 +08:00
Winlin
c8a1e0f3da
Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8 (#2464)
* Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8

* Update README.md

* Update README.md

* Refine format for AUTHORS.md
2021-07-08 14:30:47 +08:00
winlin
15901cacee SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3 2021-05-31 13:42:20 +08:00
winlin
3cd22b6e6e Use SPDX-License-Identifier: MIT. 4.0.124 2021-05-31 12:59:21 +08:00
winlin
a1d7fe46c1 SquashSRS4: Rename SrsRtpPacket2 to SrsRtpPacket. 2021-05-15 08:53:54 +08:00
winlin
ddd7a378b1 Rename SrsRtpPacket2 to SrsRtpPacket. 4.0.111 2021-05-15 08:47:09 +08:00
winlin
ab0979a4ea RTC: Remove DTLS utests, cover by regression test 2021-05-14 18:14:00 +08:00
winlin
717e811002 Change virtual public to public. 4.0.109 2021-05-14 09:13:15 +08:00
winlin
ea1f32526a RTC: Remove DTLS utest, cover by regression test 2021-04-27 18:54:10 +08:00
winlin
8b74c7cb89 SquashSRS4: Happy 2021 2021-04-16 09:29:43 +08:00
winlin
d01e603b25 Happy 2021 2021-04-16 09:25:55 +08:00
winlin
e74810230a SquashSRS4: Regine DTLS and add regression tests. 4.0.84 2021-03-10 08:29:40 +08:00
winlin
62987aa01f DTLS: Refine retransmit between ClientHello and Certificate. 2021-03-09 22:12:23 +08:00
winlin
dc93836489 SquashSRS4: Refine DTLS init, use specified API by role 2021-03-09 12:01:23 +08:00
winlin
3c6e466280 DTLS: Use specified init API, to decrease packet size 2021-03-09 11:54:27 +08:00
winlin
de87dd427d Fix utest fail 2021-03-04 14:18:54 +08:00
winlin
6bacccd1b8 Fix utest fail 2021-02-19 18:54:16 +08:00
winlin
044df17791 Fix utest fail 2021-02-19 18:53:23 +08:00
winlin
b6843428c6 Fix build warnings 2021-01-08 14:09:28 +08:00
winlin
81d78310a0 Fix build warnings 2021-01-08 13:29:32 +08:00
winlin
155587d2c1 RTC: Fix parse error stap playload crash bug 2021-01-05 10:56:05 +08:00
winlin
ba6462aab4 RTC: Refine DTLS ARQ, use step interval 2020-10-03 21:34:34 +08:00
winlin
e61391028e RTC: Refine utest for DTLS 2020-10-03 20:10:42 +08:00
winlin
776f24cf3d Refine resource manager, ignore unsubscribed handler 2020-10-02 09:13:41 +08:00
winlin
1a33452e95 Refine resource manager, fix loop and context switching bug 2020-09-20 22:09:03 +08:00
winlin
033e2f9210 Add utest for resource manager 2020-09-20 21:10:48 +08:00
winlin
4e2fca2b0f Fix utest fail 2020-09-19 12:37:39 +08:00
winlin
64705d1cc8 RTC: Refine resouce management 2020-09-19 10:30:05 +08:00
winlin
f7faa13dc5 RTC: Cover connection manager coroutine switch when dispoing conn 2020-09-17 11:44:16 +08:00
winlin
dd7587c497 Dispose session when DTLS alert 2020-09-14 10:47:06 +08:00
winlin
86a80396de Add utest for connection manager 2020-09-13 13:08:49 +08:00
winlin
b095c15720 Fix utest fail 2020-08-30 11:55:18 +08:00