Commit Graph

52 Commits

Author SHA1 Message Date
john
02c6e60e3a update copyright to 2025. v6.0.159 (#4271)
update copyright to 2025

---------

Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
2025-02-24 19:34:34 +08:00
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
1f9309ae25
SmartPtr: Support load test for source by srs-bench. v6.0.130 (#4097)
1. Add live benchmark support in srs-bench, which only connects and
disconnects without any media transport, to test source creation and
disposal and verify source memory leaks.
2. SmartPtr: Support cleanup of HTTP-FLV stream. Unregister the HTTP-FLV
handler for the pattern and clean up the objects and resources.
3. Support benchmarking RTMP/SRT with srs-bench by integrating the gosrt
and oryx RTMP libraries.
4. Refine SRT and RTC sources by using a timer to clean up the sources,
following the same strategy as the Live source.

---------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-06-21 07:13:12 +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
john
26b3154724
Fix dash crash if format not supported. v5.0.177 v6.0.73 (#3795)
Fix the issue of DASH crashing when audio/video formats are not
supported.

---------

Co-authored-by: Haibo Chen <495810242@qq.com>
2023-09-07 22:56:15 +08:00
winlin
c46ef81ff2 SRS5: Update license date to 2023. v5.0.123
PICK 72f8ed4916
2023-01-01 08:56:20 +08:00
john
d1bc155c8b
DASH: Fix dash crash bug when writing file. v5.0.108 (#3301)
Co-authored-by: winlin <winlin@vip.126.com>
2022-12-13 00:42:46 +08:00
john
271afbbf82
DASH: Fix number mode bug to make it run. v5.0.96 (#3240)
* Add utc time utility
* Fix calculate duration in fmp4
* Refine dash code, use segment template timeline
* Shrink m4s file and cleanup
* Support play by dash.js
* Use SegmentTemplate timeline mode with $Number$

Co-authored-by: winlin <winlin@vip.126.com>
2022-11-24 18:09:50 +08:00
winlin
d117145b95 Update date from 2021 to 2022. 2022-06-20 19:22:25 +08:00
winlin
fa78cf3354 Prefix with srs_protocol in protocol directory. 2022-06-09 20:26:58 +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
Haibo Chen
aad90c7f42
fix coredump bug: caused by publish stream that codec is unsupport, sush as G.711, H.263 (#2526) 2021-08-13 12:05:28 +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
8b74c7cb89 SquashSRS4: Happy 2021 2021-04-16 09:29:43 +08:00
winlin
a2d9f0a9ad Fix bug 2020-08-20 18:22:36 +08:00
winlin
d783a12f89 Happy 2020 2019-12-30 10:10:35 +08:00
winlin
8a28a11648 For #299, increase dash segment size for avsync issue. 3.0.89 2019-12-29 18:21:45 +08:00
winlin
d11a7b2e00 For #299, fix some bugs in dash, it works now. 3.0.88 2019-12-27 20:47:33 +08:00
winlin
288bed6e26 Refine SrsTcpClient.timeout in time unit. 2019-04-18 07:58:37 +08:00
winlin
61afca7160 Refine SrsTcpClient timeout in time unit 2019-04-17 07:56:28 +08:00
winlin
e9770933a6 Refine dash controller publish or unpublish 2019-04-17 07:34:01 +08:00
winlin
bc1189caee Refine SrsFragment.duration in time unit. 2019-04-12 08:04:06 +08:00
winlin
6c12aa0eca Refine srs_update_system_time in time unit 2019-04-10 09:07:03 +08:00
winlin
9b7c0802a9 Refine srs_update_system_time in time unit 2019-04-10 08:32:46 +08:00
winlin
170872135d Refine get_publish_1stpkt_timeout in time unit 2019-04-10 07:53:09 +08:00
winlin
5937304717 Refine get_dash_timeshift in time unit 2019-04-08 09:20:02 +08:00
winlin
12cf17ef6b Refine get_dash_update_period in time unit 2019-04-08 09:10:06 +08:00
winlin
4302ab7708 Refine get_dash_fragment to time unit 2019-04-08 09:02:39 +08:00
winlin
b2d1d84634 Change to 2019 2019-01-01 21:37:28 +08:00
winlin
ca1395a807 Change date from 2017 to 2018 2018-01-07 10:58:53 +08:00
winlin
db08f1586c For #913, APP support complex error. 2018-01-01 22:32:54 +08:00
winlin
abcaba33ee For #913: TS/HLS/MPEGTS support complex error 2017-09-22 21:50:54 +08:00
winlin
7cac35a289 For #913, source cycle error 2017-06-11 09:40:07 +08:00
winlin
0e9e1792fe For #299, write fMP4 for DASH. 2017-06-04 15:10:35 +08:00
HungMingWu
98d4b6ae11 Refine srs_kernel_codec audio & video config code (#854) 2017-04-24 10:08:57 +08:00
HungMingWu
14acc59a19 Refine kernel/mp4 code (#823) 2017-04-15 17:05:05 +08:00
winlin
0a57a46016 Refine LICENSE 2017-03-25 21:29:29 +08:00
winlin
f32aab3d92 For #299, refine code. 2017-03-25 17:21:39 +08:00
winlin
9ab5e6a916 For #299, fix bug of fragment url 2017-03-19 12:49:58 +08:00
winlin
c71e8fa947 For #299, fragment reap workflow 2017-03-19 12:30:02 +08:00
winlin
721a8457c2 For #299, Refine init mp4, use fragment 2017-03-19 12:29:38 +08:00
winlin
da4c390d69 For #299, extract fragment and fragment window for hls 2017-03-18 21:29:08 +08:00
winlin
3ec9df6578 For #299, A/V init mp4 are fine. 2017-03-05 18:44:37 +08:00
winlin
886930c22a For #299, refine the comments. 2017-03-05 14:17:39 +08:00
winlin
747d6f2f52 For #299, write legal MPD, fix CORS. 2017-02-26 21:45:08 +08:00
winlin
8ab727f3c5 For #299, write MPD file. 2017-02-26 20:40:33 +08:00
winlin
cee9d736a4 for #299, refine code. 2017-02-19 22:03:51 +08:00
winlin
ede1c34a25 for #299, refine the signature of api for hls/dash 2017-02-19 21:48:32 +08:00