Commit Graph

63 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
41b3623296 API: Support new HTTP API for VALGRIND. v6.0.149 (#4150)
New features for valgrind:

1. ST: Support /api/v1/valgrind for leaking check.
2. ST: Support /api/v1/valgrind?check=full|added|changed|new|quick

To use Valgrind to detect memory leaks in SRS, even though Valgrind
hooks are supported in ST, there are still many false positives. A more
reasonable approach is to have Valgrind report incremental memory leaks.
This way, global and static variables can be avoided, and detection can
be achieved without exiting the program. Follow these steps:

1. Compile SRS with Valgrind support: `./configure --valgrind=on &&
make`
2. Start SRS with memory leak detection enabled: `valgrind
--leak-check=full ./objs/srs -c conf/console.conf`
3. Trigger memory detection by using curl to access the API and generate
calibration data. There will still be many false positives, but these
can be ignored: `curl http://127.0.0.1:1985/api/v1/valgrind?check=added`
4. Perform load testing or test the suspected leaking functionality,
such as RTMP streaming: `ffmpeg -re -i doc/source.flv -c copy -f flv
rtmp://127.0.0.1/live/livestream`
5. Stop streaming and wait for SRS to clean up the Source memory,
approximately 30 seconds.
6. Perform incremental memory leak detection. The reported leaks will be
very accurate at this point: `curl
http://127.0.0.1:1985/api/v1/valgrind?check=added`

> Note: To avoid interference from the HTTP request itself on Valgrind,
SRS uses a separate coroutine to perform periodic checks. Therefore,
after accessing the API, you may need to wait a few seconds for the
detection to be triggered.

---------

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-08-21 15:39:59 +08:00
Winlin
6834ec208d
SmartPtr: Use shared ptr to manage GB objects. v6.0.126 (#4080)
The object relations: 

![gb](https://github.com/ossrs/srs/assets/2777660/266e8a4e-3f1e-4805-8406-9008d6a63aa0)

Session manages SIP and Media object using shared resource or shared
ptr. Note that I actually use SrsExecutorCoroutine to delete the object
when each coroutine is done, because there is always a dedicate
coroutine for each object.

For SIP and Media object, they directly use the session by raw pointer,
it's safe because session always live longer than session and media
object.

---

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-06-12 22:40:20 +08:00
Jacob Su
954b1b7ef2
Typo: Fix some typos for #3973 #3976 #3982. v6.0.114 (#3973) 2024-03-18 10:17:00 +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
9c81a0e1bd UTest: Fix utest warnings. 2022-10-06 16:09:07 +08:00
winlin
dc20d5ddbc ST: Support set context id while thread running. v5.0.72 2022-10-02 10:05:01 +08:00
winlin
0a025fc4b6 Remove unneccessary depends headers. 2022-08-09 18:32:01 +08:00
winlin
d117145b95 Update date from 2021 to 2022. 2022-06-20 19:22:25 +08:00
winlin
665ad564fb Rename service to protocol files. 2022-06-09 19:59:51 +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
716e578a19 Squash: Fix bugs 2021-12-26 17:30:51 +08:00
winlin
93242918ad Squash: For #1708 2021-11-15 11:10:44 +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
f4f85a98d2 Perf: Refine player cycle, use fast coroutine 2021-02-27 17:40:19 +08:00
winlin
0a82719bd3 Refine connection structure 2020-11-04 18:15:43 +08:00
winlin
97880f6bb7 ST: Allow set the default stack size 2020-10-22 17:06:36 +08:00
winlin
64705d1cc8 RTC: Refine resouce management 2020-09-19 10:30:05 +08:00
winlin
6624b8acca Log: Use object as context id for complex context 2020-07-05 23:26:55 +08:00
winlin
8a0c2e01f8 Log: Change cid from int to string 2020-06-18 11:45:43 +08:00
winlin
10464a5fbe Always use string instance to avoid crash risk. 3.0.95 2020-01-05 22:17:15 +08:00
winlin
d783a12f89 Happy 2020 2019-12-30 10:10:35 +08:00
winlin
45009785fb Refine typo in app. 2019-04-30 08:24:52 +08:00
winlin
7037f6a197 Cover more ST Coroutine code 2019-04-07 15:22:09 +08:00
winlin
1ce040cc2c Cover more ST Coroutine code 2019-04-07 14:35:11 +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
5c9a12e72a For #913, use complex error for listener 2017-07-29 12:45:17 +08:00
winlin
9db2a04c3b For #913, coroutine support complex error. 2017-06-11 18:44:20 +08:00
winlin
9ca36970aa Fix #908, use empty coroutine to avoid NULL pointer. 2017-06-04 19:13:56 +08:00
winlin
1bf99e8f3e For #907, Wrap ST, only use in service ST. 2017-05-30 09:05:02 +08:00
winlin
fc380fe48d For #906, #902, refine thread object. 2017-05-29 17:19:06 +08:00
winlin
e3526c0cf6 For #820, modules use service only. 2017-03-26 13:40:39 +08:00
winlin
ff822b55cd For #820, extract service module. 2017-03-26 10:16:21 +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
308c6fee18 Fix #786, simply don't reuse object. 3.0.20 2017-03-02 16:43:06 +08:00
winlin
44014683e1 Refine thread. 2017-03-01 12:23:44 +08:00
winlin
a3ea83f504 directly free the transport, not need to close for maybe NULL 2017-01-20 12:11:52 +08:00
winlin
3fe338d1c5 for #742, use ms for application clock tbn. 2017-01-17 12:25:30 +08:00
winlin
dca9749f37 for #742, refine the object live cycle. 3.0.15 2017-01-17 10:44:13 +08:00
winlin
7ac932cfa0 update to 2013-2017 2016-12-16 11:57:25 +08:00
winlin
7d96a33207 Merge branch '2.0release' into develop 2016-09-01 16:51:18 +08:00
winlin
e2865c6ac1 workaround for #511, the fly stfd in close. 2.0.211 2016-09-01 16:51:09 +08:00
winlin
d0c74fa7cd update 2015 to 2016 2015-12-23 11:35:40 +08:00
winlin
01c46bdbfd rename org simle-rtmp-server to ossrs 2015-11-11 10:45:45 +08:00