Commit Graph

76 Commits (develop)

Author SHA1 Message Date
Winlin f8319d6b6d
Fix crash when quiting. v6.0.151 v7.0.10 (#4157)
1. Remove the srs_global_dispose, which causes the crash when still
publishing when quit.
2. Always call _srs_thread_pool->initialize for single thread.
3. Support `--signal-api` to send signal by HTTP API, because CLion
eliminate the signals.

---

Co-authored-by: Jacob Su <suzp1984@gmail.com>
5 months ago
Winlin 0d76081430
API: Support new HTTP API for VALGRIND. v6.0.149 v7.0.6 (#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>
5 months ago
winlin 3c6ade8721 SRS5: FFmpeg: Support build with FFmpeg native opus. v5.0.131 (#3140)
PICK a27ce1d50f
2 years ago
winlin 6ad7787c14 Asan: Refine asan warning message for macOS.
PICK 7bdb7270cf
2 years ago
winlin e6c395e473 Merge branch v5.0.105 into develop.
* v5.0, 2022-12-04, Cygwin: Enable gb28181 for Windows. v5.0.105
* v5.0, 2022-12-04, Asan: Set asan loging callback. v5.0.104
2 years ago
chengh 8be4c8e334 Asan: Set asan loging callback. v5.0.104 2 years ago
winlin 5999e446de Merge branch v5.0.103 into develop
1. GB28181: Enable GB for CentOS 7 package. v5.0.103
2. Package script support extra options. v5.0.102
3. Disable CLS and APM by default. v5.0.101
2 years ago
winlin e86e0c8999 Disable CLS and APM by default. v5.0.101 2 years ago
Winlin 178e40a5fc
H265: Support HEVC over RTMP or HTTP-FLV. (#3272)
1. Support configure with --h265=on.
2. Parse HEVC(H.265) from FLV or RTMP packet.
3. Support HEVC over RTMP or HTTP-FLV.

Co-authored-by: runner365 <shi.weibd@hotmail.com>
2 years ago
Winlin d741f81110
For #2532: Windows: Support CYGWIN64 for SRS (#3255)
1. Support cygwin by '--cygwin64=on'
2. Detect cygwin automatically.
3. Disalbe sanitizer, srt and srtp with openssl.
4. Disable multiple threads, use single threads.
5. Support utest for cygwin64.
6. Query features for windows by API.
7. Disable stat APIs for cygwin.
8. Use ST select event driver.

Co-authored-by: wenjie.zhao <740936897@qq.com>
2 years ago
winlin 3d0dcb2a17 Windows: Support run in single thread mode. 2 years ago
wenjie.zhao e9503a9c9a For #2532: Windows: Replace ln by cp for windows. v5.0.87 (#3246)
1. Replase ln by cp for windows.
2. Refine OS and CPU arch detecting.
3. Support configure from any directory by `SRS_WORKDIR`.
4. Support output to any directory by `SRS_OUTPUT`.
5. Disable sanitizer for gperf.
6. Use parallels build for make.
7. Refine bash variable check.
2 years ago
Winlin 2d1ba46e37
Fix #3218: Log: Follow Java/log4j log level specs. v5.0.83 (#3219)
1. Support Java/log4j log level text.
2. Support configuring by `--log-new-level=on` which is enabled by default.
3. Support `--log-new-level=off` to use SRS 4.0 log level for compatibility.
2 years ago
winlin e10fa6dc91 Kernel: Support grab backtrace stack when assert fail. v5.0.80 2 years ago
Winlin 5a420ece3b
GB28181: Support GB28181-2016 protocol. v5.0.74 (#3201)
01. Support GB config as StreamCaster.
02. Support disable GB by --gb28181=off.
03. Add utests for SIP examples.
04. Wireshark plugin to decode TCP/9000 as rtp.rfc4571
05. Support MPEGPS program stream codec.
06. Add utest for PS stream codec.
07. Decode MPEGPS packet stream.
08. Carry RTP and PS packet as helper in PS message.
09. Support recover from error mode.
10. Support process by a pack of PS/TS messages.
11. Add statistic for recovered and msgs dropped.
12. Recover from err position fastly.
13. Define state machine for GB session.
14. Bind context to GB session.
15. Re-invite when media disconnected.
16. Update GitHub actions with GB28181.
17. Support parse CANDIDATE by env or pip.
18. Support mux GB28181 to RTMP.
19. Support regression test by srs-bench.
2 years ago
winlin 93aa0eb5ba Squash: Fix bugs 3 years ago
winlin 69faf06f0f API: For #2508, query feature docker and packager. 4 years ago
winlin 12ba584ea3 Fix build failed 4 years ago
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
4 years ago
winlin 9f5d011687 Squash: Fix build fail for arm/aarch64 4 years ago
winlin efdbf37255 Squash: Move GB28181 to feature/gb28181. 5.0.4 4 years ago
winlin 6dc8d9dd6f SquashSRS4: Remove srs-librtmp 4 years ago
winlin 4ef1acb700 Remove dead code: memory watch 4 years ago
winlin 25be6d6bc0 Support to disable stats by default 4 years ago
winlin 1371a47962 Refine options with default value 4 years ago
winlin d552a1a5fb For #1657, support HTTPS client, for http-callback. 4.0.45 4 years ago
winlin 4984bcbaef Revert "supprot LAS(live adaptive stream)"
This reverts commit c1f98ddcc8.
5 years ago
liulichuan c1f98ddcc8 supprot LAS(live adaptive stream)
Change-Id: I2f9fd889fc924a3b080667bd2114f4632be461a0
5 years ago
winlin be5d76009e RTC: Support build without RTMP2RTC bridger, no FFmpeg fit. 5 years ago
莫战 db8d91cbee add c++14 support 5 years ago
winlin 6e04c66402 Support enable C++11. 4.0.29 5 years ago
winlin a3388bf624 RTC: Remove export srs-librtmp support 5 years ago
winlin 01f05f920f RTC: Remove sendmmsg 5 years ago
winlin db503975fb Disable simulator API by default. 5 years ago
winlin 2a0562da5e Refine RTC, disable NASM, SENDMMSG, SRTP-NASM 5 years ago
winlin ed338f4c0a Refactor macro SRS_AUTO_XXX to SRS_XXX. 5 years ago
winlin a80084289b Support debug 5 years ago
winlin b8db61bd9c For #307, Support disable sendmmsg 5 years ago
winlin dc3df926eb For #307, support configure with sendmmsg. 5 years ago
winlin 608f3d0fae For #1500, support push stream by GB28181. 4.0.18 5 years ago
winlin c2b02f86fa Merge 4.0release 5 years ago
winlin 217b8b94b6 Merge 3.0release 5 years ago
winlin c339542ce0 Support macOS OSX 5 years ago
winlin 602a478e1b For #1659, #307, add switch to disable rtc 5 years ago
winlin 5f174552f3 Merge SRT 5 years ago
winlin f143757429 Use macro to disable SRT in code 5 years ago
winlin 0df108740a Fix #1547, support crossbuild for ARM/MIPS. 5 years ago
winlin 024433f327 For #1547, refine configure, remove some macros 5 years ago
winlin a11461905b Remove FFMPEG and NGINX, please use srs-docker instead . 3.0.82 5 years ago
winlin dffc96d2fe For #1537, disable crossbuild for ARM/MIPS. 5 years ago