Commit Graph

60 Commits

Author SHA1 Message Date
ChenGH
13597d1b7f
update copyright to 2025. v5.0.218 v6.0.159 v7.0.21 (#4271)
update copyright to 2025

---------

Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
2025-01-14 17:35:18 +08:00
Marc Olzheim
f76be5fe9b
HLS: Add missing newline to end of session manifest. v6.0.143 (#4115)
The session HLS manifest file lacks a terminating newline in the final
line.
This may cause strict players to reject it.

---------

Co-authored-by: winlin <winlinvip@gmail.com>
2024-07-24 22:37:30 +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
Haibo Chen
771ae0a1a6
API: Support HTTP basic authentication for API. v6.0.4, v5.0.152 (#3458)
Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2023-04-01 12:45:29 +08:00
Haibo Chen
57cc843000 SRS5: API: Fix duplicated on_stop callback event bug. v5.0.125 (#3349)
* fix hls bug:Duplicated on_stop callback

* improve utest

* Refine magic number.

* API: Fix duplicated on_stop callback event bug. v5.0.125

Co-authored-by: winlin <winlin@vip.126.com>

PICK 3727d0527c
2023-01-01 19:28:10 +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
1e6143e2eb GB28181: Refine HTTP parser to support SIP. v5.0.70 2022-09-30 19:21:31 +08:00
winlin
4b7d9587f4 HTTP: Support HTTP header in creating order. v5.0.68 2022-09-30 18:22:25 +08:00
winlin
d7c2d5ab01 HLS: Stat the HLS streaming clients bandwidth. v5.0.49 2022-08-29 12:09:26 +08:00
winlin
d39995cc31 HLS: Enable hls_ctx by default. 2022-08-27 19:41:07 +08:00
ChenHaibo
ca7b5a1c4e HLS: Add utest for HLS streaming. 2022-08-27 19:41:07 +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
665ad564fb Rename service to protocol files. 2022-06-09 19:59:51 +08:00
Haibo Chen
b94ce1485a
Fix bug when the value of http header is empty (#2888)
* Fix bug when the value of http header is empty

* add utest
2022-02-03 15:05:09 +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
f901831362
Enhance HLS: support http callback on_play/stop, support statistic (#2578)
* Enhance HLS: support http callback on_play/stop, support statistic

* make code readable

* make code readable

* rename secret
2021-09-23 13:31:45 +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
6a980683f7 SquashSRS4: Remove object cache and stat api 2021-05-14 18:17:42 +08:00
winlin
8b74c7cb89 SquashSRS4: Happy 2021 2021-04-16 09:29:43 +08:00
winlin
61f62ceec6 Fix build warnings 2021-01-08 11:48:56 +08:00
莫战
b38f30c3ee support query parsing and escape 2020-12-01 16:27:37 +08:00
winlin
07c04a042a URI: Refine uri parser 2020-11-10 18:51:21 +08:00
winlin
d67b050935 For #1657, fix the jsonp bug 2020-11-05 17:57:22 +08:00
winlin
5f951ca126 HTTP: Fix the http parser fail bug, always reset the parser. 2020-07-04 21:25:56 +08:00
winlin
671af4369b HTTP: Only enable infinite chunked for HTTP_REQUEST 2020-07-03 17:05:01 +08:00
winlin
9bd8b363b3 Improve test coverage for http service. 2020-01-05 17:02:57 +08:00
winlin
d783a12f89 Happy 2020 2019-12-30 10:10:35 +08:00
winlin
8075628d9e Fix utest fail. 2019-12-29 19:16:16 +08:00
winlin
eb8e7ad479 Fix #1255, support vhost/domain in query string for HTTP streaming. 3.0.90 2019-12-29 18:56:35 +08:00
winlin
32a2b7f0a5 For #1488, improve coverage for parsing client ip. 2019-12-26 12:20:53 +08:00
winlin
2115d5d22a For #1488, add test and improve coverage for parsing client ip. 2019-12-26 12:07:52 +08:00
winlin
7eccc9da26 For #1508, support chunk length and content in multiple parts. 2019-12-24 14:58:35 +08:00
winlin
a35a7f915e Fix bug for HTTP write jsonp for srs-console. 2019-12-24 10:32:52 +08:00
winlin
da7e76c96a For#1508, check the error correctly for strtol. 2019-12-20 16:48:51 +08:00
winlin
216a23f709 Fix the http implicit handler bug 2019-12-17 21:24:24 +08:00
winlin
b247c9759a Improve test coverage for http handler 2019-12-17 21:17:44 +08:00
winlin
6c50d85671 Improve test coverage for http message 2019-12-17 21:08:18 +08:00
winlin
43a5cea158 Improve test coverage for HTTP CORS 2019-12-17 21:03:28 +08:00
winlin
dc1afc142f Fix HTTP CORS bug when sending response for OPTIONS. 3.0.72 2019-12-17 20:52:10 +08:00
winlin
ec0fb82c0e Improve test coverage for http server mux. 2019-12-17 19:39:36 +08:00
winlin
81947df819 Enhance HTTP response write for final_request. 2019-12-17 19:09:39 +08:00
winlin
d9842b0371 Refactor HttpResponseWriter.write, default to single text mode. 2019-12-17 15:14:59 +08:00
winlin
8cdb7cc727 Add test for vod stream handler 2019-12-17 14:33:47 +08:00
winlin
97f2c5bf0c Refactor http static file server path resolving. 2019-12-16 20:07:06 +08:00