Commit Graph

6794 Commits (develop)

Author SHA1 Message Date
winlin 99f61cb225 Test: Add RTMP/FLV/TS blackbox test for HEVC. (#465) 2 years ago
winlin 7b27410ac9 SRS4: Security: Enable CIDR for allow/deny play/publish. (#2914)
PICK 55ca61ec9c
2 years ago
Winlin 3e5362fbff SRS5: Test: Add blackbox for MP3 audio codec. v5.0.129 (#296) (#465)
PICK e3a4ff9fa1
PICK 3b59972a90
2 years ago
Winlin c68db59eeb
Test: Add blackbox for HEVC over HLS. (#3356) 2 years ago
winlin 2cab98aa68 SRS5: Test: Add blackbox for HLS.
PICK 30779f3b5a
2 years ago
Winlin 4c2db0073a SRS5: Test: Support blackbox test by FFmpeg. v5.0.128 (#3355)
1. Enable blackbox test for each PR and push.
2. Refine Makefile and README for srs-bench.
3. Add blackbox using FFmpeg and ffprobe.
4. Add blackbox basic test for RTMP stream.
5. Add blackbox basic test for HTTP-FLV stream.
6. Fix utest rand seed issue.

PICK 2141d220b4
2 years ago
ChenGH e1f6661d1f SRS5: Asan: Disable asan for CentOS and use statically link if possible. v5.0.127 (#3347) (#3352)
* Asan: Disable asan for CentOS and use statically link if possible. v5.0.127 (#3347)

1. Disable asan for all CentOS by default, however user could enable it.
2. Link asan statically if possible.

* Update version to v5.0.127

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

PICK dd0f398296
2 years ago
chundonglinlin fff8d9863c
H265: Support HEVC over HLS. v6.0.11 (#465) (#3354)
* H265: Support HEVC over HLS.(#465)

* HLS: Support HEVC over HLS. v6.0.11 (#465)

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 4bfc4de710 SRS5: MP3: Upgrade mpegts.js to support HTTP-TS with mp3. v5.0.126 (#296)
PICK 02a18b328c
2 years ago
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
2 years ago
winlin e4e87c0403 SRS5: Live: Refine log for monotonically increase.
PICK 6caca900b3
2 years ago
winlin 7bd8682d40 SRS5: Script: Refine depends tools. v5.0.124
1. Never auto install tools now, user should do it.
2. Support --help and --version for SRS.
3. Install tools for cygwin64.

PICK e690c93bcf
2 years ago
winlin c46ef81ff2 SRS5: Update license date to 2023. v5.0.123
PICK 72f8ed4916
2 years ago
winlin 6ad7787c14 Asan: Refine asan warning message for macOS.
PICK 7bdb7270cf
2 years ago
winlin 3f7c4a7ff4 GB28181: Enable regression test for gb28181. v5.0.122
1. Build regression test tool for gb28181.
2. Run regression test for gb28181.
3. Format go code and eliminate logs.
4. Change base docker to ubuntu20.

PICK 7750bdae10
2 years ago
winlin bc381a0242 SRS5: Configure: Reorder the functions, nothing changed.
PICK 4b09a7d686
2 years ago
winlin 41f7951481 SRS5: Refine configure to guess OS automatically. v5.0.121
1. Guess for macOS and cygwin64.
2. Refine options for configure.

PICK 5559ac25fe
2 years ago
winlin 1e079d2860 SRS5: Update new authors.
PICK 6299dee1b6
2 years ago
winlin 4045971dea SRS5: Refine default config file for SRS. v5.0.120
1. Docker use srs.conf and env variables.
2. Show help if run SRS without any options.
3. Do not guess config file, use whatever from user.

PICK 07a9a005d5
2 years ago
winlin 39c9487a73 Support first SRS6 version. v6.0.10 2 years ago
winlin e4a9ff54f9 SRS5: Asan: Only link by statically for asan.
PICK ae3b367487
2 years ago
winlin 351f7590db SRS5: Script: Discover version from code.
PICK 87a2ef100a
2 years ago
winlin d5bf0ba2da TS: Support disable audio or video to make mpegts.js happy. v6.0.9 (#465) (#939) 2 years ago
winlin 4b6f1b0fd6 TS: Fix bug for codec detecting for HTTP-TS. v6.0.8 (#465) 2 years ago
winlin a6c926f985 SRS5: FLV: Fix bug for header flag gussing. v5.0.119 (#939)
PICK 8a0ac8e3a1
2 years ago
winlin bec23fc247 SRS5: Script: Fix configure help bug.
PICK 386bb41f63
2 years ago
winlin 6875876349 SRS5: MP3: Convert RTMP(MP3) to WebRTC(OPUS). v5.0.118 (#296) (#3340)
PICK 37867533cd
2 years ago
winlin f82f265ece SRS5: MP3: Support decode mp3 by FFmpeg natively. (#296) (#3340)
PICK 1c5788c638
2 years ago
winlin 35c89cc436 SRS5: MP3: Support dump stream information. v5.0.117 (#296) (#3339)
PICK 95defe6dad
2 years ago
winlin 2e1d99002f SRS5: Actions: Fix GitHub actions warnings.
PICK 23b7939574
2 years ago
winlin 5d48c9ce1b Refine code to allow search for conflicts. 2 years ago
winlin ead49e747b MP3: Support play HTTP-MP3 by H5(srs-player). v6.0.7 (#296) (#3338) 2 years ago
winlin b5aaf67c93 Merge branch v5.0.116 into develop
1. MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
2. MP3: Add config examples for MP3. #296
3. Script: Refine GitHub actions.
2 years ago
winlin f6e0b1c894 MP3: Support mp3 for RTMP/HLS/HTTP-FLV/HTTP-TS/HLS etc. v5.0.116 2 years ago
winlin 0a49638f54 MP3: Add config examples for MP3. #296 2 years ago
winlin 05d7400cd5 Merge branch v4.0.269 into 5.0release
1. MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
2 years ago
Winlin 577cd299e1
MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
* MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296)

1. Refresh HLS audio codec if changed in stream.
2. Refresh TS audio codec if changed in stream.
3. Fix mp3 demux bug in SrsFormat::audio_mp3_demux.
4. Use 3(MPEG1) not 4(MPEG2) as PMT stream type, follow FFmpeg.
5. MP3: Update utest for mp3 sample parsing.
6. MP3: Ignore empty frame sample.
7. UTest: Fix utest failed, do not copy files.
2 years ago
winlin 518c25aec3 Print version and signature to stdout. 2 years ago
winlin e45563e925 Merge branch v5.0.115 into develop
1. Asan: Support parse asan symbol backtrace log. v5.0.113 (#3324)
2. GB: Refine lazy object GC. v5.0.114 (#3321)
3. Fix #3328: Docker: Avoiding duplicated copy files. v5.0.115
2 years ago
winlin 5dcd6637e3 Fix #3328: Docker: Avoiding duplicated copy files. v5.0.115 2 years ago
Winlin 6f3d6b9b65
GB: Refine lazy object GC. v5.0.114 (#3321)
* GB: Refine lazy object GC.

1. Remove gc_set_creator_wrapper, pass by resource constructor.
2. Remove SRS_LAZY_WRAPPER_GENERATOR macro, use template directly.
3. Remove interfaces ISrsGbSipConn and ISrsGbSipConnWrapper.
4. Remove ISrsGbMediaConn and ISrsGbMediaConnWrapper.

* GC: Refine wrapper constructor.

* GB: Refine lazy object GC. v5.0.114
2 years ago
ChenGH 7eaee46f1f
Asan: Support parse asan symbol backtrace log. v5.0.113 (#3324)
* asan: support parse asan symbol log

* asan: refine srs_parse_asan_backtrace_symbols error code

* asan: Refine code, extract asan log to error file.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 2daf637aaa Merge 5.0: FLV header and SRT bugfix. v6.0.6
1. SRT: Fix srt to rtmp crash when sps or pps empty. v5.0.112 (#3323)
2. GB28181: Fix memory overlap for small packets. v5.0.111 (#3315)
3. FLV: Support set default has_av and disable guessing. v5.0.110 (#3311)
4. FLV: Drop packet if header flag is not matched. v5.0.109 (#3306)
5. FLV: Reset has_audio or has_video if only sequence header. (#3310)
2 years ago
winlin 2f7e474853 Merge branch v5.0.112 into develop
1. SRT: Fix srt to rtmp crash when sps or pps empty. v5.0.112 (#3323)
2. GB28181: Fix memory overlap for small packets. v5.0.111 (#3315)
3. FLV: Support set default has_av and disable guessing. v5.0.110 (#3311)
4. FLV: Drop packet if header flag is not matched. v5.0.109 (#3306)
5. FLV: Reset has_audio or has_video if only sequence header. (#3310)
2 years ago
john 09a96175e8
SRT: Fix srt to rtmp crash when sps or pps empty. v5.0.112 (#3323)
* SRT: fix crash when sps/pps empty. v5.0.112

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin 56040cab42
GB28181: Fix memory overlap for small packets. v5.0.111 (#3315) 2 years ago
Winlin a36cb57949
FLV: Support set default has_av and disable guessing. v5.0.110 (#3311)
* FLV: Support set default has_av and disable guessing. v5.0.110

1. Support config default has_audio and has_video.
2. Support disable guessing has_audio or has_video.

* FLV: Reset to false if start to guess has_av.

* FLV: Add regression test for FLV header av metadata.
2 years ago
Winlin 4551200e95
FLV: Drop packet if header flag is not matched. v5.0.109 (#3306)
1. Ignore audo or video packets if FLV header disable it.
2. Run: Add regression test config and run for IDEA.
3. Test: Refine regression test to allow no audio/video for FLV
4. Config: Whether drop packet if not match header.
2 years ago
Winlin 35185cf844
FLV: Reset has_audio or has_video if only sequence header. (#3310)
1. Reset has_audio if got some video frames but no audio frames.
2. Reset has_video if got some audio frames but no video frames.
3. Note that audio/video frames are not sequence header.
2 years ago
Winlin c39edf4788
Player: Support nginx-http-flv-module stream url. (#3305) 2 years ago
Winlin 476a32d417
Build: Fix build warnings (#3302)
1. Avoid default guess for expression.
2. Force to void* for memset.
2 years ago
winlin 72182865ef Merge branch v5.0.108 into develop
* DASH: Fix dash crash bug when writing file. v5.0.108 (#3301)
* Test: Refine cache for cygwin64 test.
2 years ago
john d1bc155c8b
DASH: Fix dash crash bug when writing file. v5.0.108 (#3301)
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 4f8f6ca6f8 Merge v5.0.107 into develop
* SRT: Support SRT to RTMP to WebRTC. v5.0.107 (#3296)
2 years ago
john bbe333d3ca
SRT: Support SRT to RTMP to WebRTC. v5.0.107 (#3296)
* SRT: Support SRT to RTMP to WebRTC. v5.0.107

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 3049fa70eb Merge branch v5.0.106 into develop
* Build: Refine cygwin64 test script.
* API: Parse fragment of URI. v5.0.106 (#3295)
2 years ago
Haibo Chen c5a0c5947f
API: Parse fragment of URI. v5.0.106 (#3295)
* parse fragment of uri
* adapt FMLE URL: 'rtmp://ip/app/app2#k=v/stream', then add more test case

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 7ac1475c39 Merge #3271: H265: The codec information is incorrect. v6.0.5 2 years ago
chundonglinlin a0803b556b
H265: Demux sps for log print and statistic streams.(#3271) (#3286)
* BitBuffer: add method to implement bit read operation.

* Codec: demux hevc sps for profile level resolution.

* Statistic: refine hevc profile level resolution.

* Kernel: return error code for demux hevc.

* Kernel: check bitstream length for hevc sps.

* UTest: add BitBuffer read bits utest.

* Kernel: refine print log and utest.

* Kernel: add comment for hevc sps.

Co-authored-by: winlin <winlin@vip.126.com>
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
winlin 0e550d496b Cygwin: Enable gb28181 for Windows. v5.0.105 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 41769308d2 GB28181: Enable GB for CentOS 7 package. v5.0.103 2 years ago
winlin 4b5ae7b3d2 Package script support extra options. v5.0.102 2 years ago
winlin e86e0c8999 Disable CLS and APM by default. v5.0.101 2 years ago
winlin fa177679a6 Merge 5.0.100, v5.0-a1 into develop. 2 years ago
mapengfei53 c7b7921712
Config: Add utest for configuring with ENV variables. v5.0.100 (#3284)
* Config: Add utest for configuring with ENV variables.

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
stone a4d9e45545
Live: Fix bug for gop cache limits. v5.0.99 (#3289)
* bugfix: setting srt bridge to rtmp gop cache limit while SrsMpegtsSrtConn::acquire_publish 

* setting http_stream gop cache limit while SrsHttpStreamServer::hijack

* if gop_cache_max_frames_ == 0, don't enable the got cache max frames limit

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin e83fc2388b
Docker: Remove CentOS 6 support. (#3287)
1. Remove CentOS 6 for test and utest.
2. Statically build FFmpeg, no so depends.
2 years ago
winlin 152099b734 Merge branch v5.0.98 into develop.
1. Config: Add ENV tips for config. 5.0.97
2. SRT: Support transform tlpkdrop to tlpktdrop. 5.0.98
2 years ago
Winlin 5cadfff2e5
SRT: Support transform tlpkdrop to tlpktdrop. 5.0.98 (#3279) 2 years ago
Winlin fdbfe59784
Config: Add ENV tips for config. 5.0.97 (#3278) 2 years ago
winlin 9b7db9aa68 DASH: Update README for MPEG-DASH. 2 years ago
john d927996890 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>
2 years ago
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>
2 years ago
Winlin e6ccd8ec9a For #3176: GB28181: Error and logging for HEVC. v5.0.95 (#3276)
1. Parse video codec from PSM packet.
2. Return error and logging if HEVC packet.
3. Ignore invalid AVC NALUs, drop AVC AUD and SEI.
4. Disconnect TCP connection if HEVC.
2 years ago
Winlin af192d6184
For #3176: GB28181: Error and logging for HEVC. v5.0.95 (#3276)
1. Parse video codec from PSM packet.
2. Return error and logging if HEVC packet.
3. Ignore invalid AVC NALUs, drop AVC AUD and SEI.
4. Disconnect TCP connection if HEVC.
2 years ago
winlin e17f2fc675 Config: Add hevc.ts.conf for HEVC over HTTP-TS. 2 years ago
Winlin 70d5618979
H265: Support HEVC over HTTP-TS. v6.0.4 (#3275)
1. Update TS video codec to HEVC during streaming.
2. Return error when HEVC is disabled.
3. Parse HEVC NALU type by SrsHevcNaluTypeParse.
4. Show message when codec change for TS.

Co-authored-by: runner365 <shi.weibd@hotmail.com>
2 years ago
winlin 8debbe6db8 Asan: Fix utest bug. 2 years ago
winlin f10412d289 Asan: Fix utest bug. 2 years ago
Winlin f316e9a0de
H265: Support parse multiple NALUs in a frame. v6.0.3 (#3274)
1. Fix parsing multiple NALUs bug.
2. Eliminate duplicated code for parsing NALU.
3. Return error when HEVC not enabled.
2 years ago
winlin 02d47c5c21 Docs: Update features with version. 2 years ago
Winlin 96b4918c25 For #3236: Live: Change gop cache limits to 2500. v5.0.94 (#3273) 2 years ago
Winlin 13918ed81f
For #3236: Live: Change gop cache limits to 2500. v5.0.94 (#3273) 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 7e02d972ea
H265: Update mpegts.js to play HEVC over HTTP-TS/FLV. v6.0.1 (#3268)
1. Update mpegts.js to support HEVC over HTTP-TS.
2. Merge https://github.com/xqq/mpegts.js/pull/68 for HEVC over HTTP-FLV.
2 years ago
Winlin 4b3fe68973
Init SRS 6. v6.0.0 (#3269) 2 years ago
stone ec76512e42
Live: Limit cached max frames by gop_cache_max_frames (#3236)
* add gop_cache_max_frames

* Live: Limit cached max frames by gop_cache_max_frames. v5.0.93

Co-authored-by: wanglei <wanglei@unicloud.com>
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 4ada0bc629 Asan: Cleanup for testing for asan. 2 years ago
winlin cdbebb3729 Merge branch '4.0release' into develop 2 years ago
johzzy e529536563 WebRTC: Fix no audio and video issue for Firefox. (#3079) v4.0.268
* Remove extern SrsPps* duplicate declarations

* fix(rtmp2rtc): fix video payload type for rtmp to rtc bridge (#3041)

* Revert changes not belongs to this PR.

* Fix naming issue, follow SRS style.

* Use srs_assert instead of assert.

* Fix firefox no audio issue.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin b72ad85502
Asan: Check libasan and show tips. v5.0.92 (#3266) 2 years ago
ChenGH 6b130d4205
Asan: Try to fix st_memory_leak for asan check (#3264)
* asan: try to fix st_memory_leak for asan check

* asan: srs_st_unit should be call in hybrid server stop

* Rename st_uninit to st_destroy. v5.0.91

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
chengh 6fa17aa3f8 ST: Support st_destroy to free resources for asan. 2 years ago
johzzy 6eb10afca2
WebRTC: Fix no audio and video issue for Firefox. (#3079)
* Remove extern SrsPps* duplicate declarations

* fix(rtmp2rtc): fix video payload type for rtmp to rtc bridge (#3041)

* Revert changes not belongs to this PR.

* Fix naming issue, follow SRS style.

* Use srs_assert instead of assert.

* Fix firefox no audio issue.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
mingo-wu 62ab1a1c69 Fix the recursively included issue for srs_core_time.hpp (#3159)
* Update srs_core_time.hpp

In included file: main file cannot be included recursively when building a preambleclang(pp_including_mainfile_in_preamble)
srs_core.hpp(43, 10): Error occurred here

* Update srs_core_time.hpp

Reference to trunk/src/protocol/srs_protocol_http_stack.hpp
  (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__)
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
typedef unsigned __int16 uint16_t;
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
2 years ago
ChenGH f4f9c70d79
Asan: Fix global ip address leak check bug. v5.0.90 (#3248)
* asan: fix global ips memory leak bug

* Asan: Fix global ip address leak check. v5.0.90

* Asan: Directly start SRS for daemon error fixed.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin 9191217e27
Player: Use xqq/mpegts.js to play HTTP-TS/HTTP-FLV (#3263)
1. Replace flv.js with mpegts.js
2. Use mpegts.js to play HTTP-FLV.
3. Use mpegts.js to play HTTP-TS.
2 years ago
Winlin 59d37abc2b
Player: Use H5 native to play mp4. (#3262) 2 years ago
Winlin 057b1392c0
Windows: Refine cygwin pipeline (#3260)
1. When cleanup, remove srs.exe
2. Refine NSIS command.
2 years ago
dev-clavis fe9e7abd84
SRT: Config file does not enable srt for srt2rtc.conf (#3250)
* adding enable stm

* SRT: Enable rtmp to rtc.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin b9284b6cc6 Windows: Support cygwin cache for test. (#3259) 2 years ago
Winlin b18ee398ed
Windows: Support cygwin pipline and packager. v5.0.89 (#3257)
1. Support github actions on Windows Server 2022.
2. Use cygwin64 in windows-latest to build SRS.
3. Package SRS-xxx-setup.exe by NSIS.exe
4. Patch crypto/include/config.h for libsrtp.
5. Support run as administrator.
6. Apply utest for cygwin.
7. Enable srtp over openssl.
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
winlin efea38c51a Update features for SRS 5.0 2 years ago
Winlin 88641b535c UTest: Enable sanitizer for utest. (#3247)
1. Enable sanitizer for utest.
2. Allow auto detect jobs for make.
3. Show more information about build cache.
2 years ago
winlin 5bae930621 Fix #3215: Callback: Fix bug for response string 0. v5.0.88 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 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.
2 years ago
chundonglinlin 9f4338bd9d
For #2899: Exporter: Add metrics cpu, memory and uname. (#3224)
* Exporter: metrics support cpu gauge.
* Exporter: metrics support memory and uname..
* Exporter: Ignore error when uname fail.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 9673bfb92c Config: Support set env_only by SRS_ENV_ONLY. 2 years ago
winlin 9f7a06bc9e Config: Support startting with environment variable only. v5.0.85 2 years ago
winlin ef0aefd546 GC: Eliminate unused code. v5.0.84 2 years ago
john 7d9dc69ae1
SRT: Support encrypt, with utest (#3223)
* SRT: support encrypt, with utest

* SRT: refine set srt option error log
2 years ago
winlin 8dcbcd1656 GB28181: Update README for GB28181. 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
john 20c38e07c0
SRT: Print socket status string when error (#3217) 2 years ago
winlin b8461ba236 Refine print constant string. 2 years ago
winlin e9915c3bd7 Log: Refine the log interface. v5.0.82 2 years ago
winlin 252851d1b0 For #3216: Support Google Address Sanitizer. v5.0.81 2 years ago
winlin 764e9a6751 For #3216: Support force daemon for sanitizer. 2 years ago
ChenGH 961f701929
Sanitizer: Support address sanitizer for x86_64 platform (#3212)
* Sanitizer: Support address sanitizer for x86_64 platform
* Sanitizer: Not mac os need -static-libasan
* Sanitizer: Add script for docker test.
* Sanitizer: Refine build script.
* Santizer: Fix ossrs/srs:dev-gcc7-cache cannot find libasan bug
* Sanitizer: Support sanitizer when use ossrs/srs:dev-cache and ubuntuxx-cache
* Sanitizer: Add sanitizer-static config

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin e10fa6dc91 Kernel: Support grab backtrace stack when assert fail. v5.0.80 2 years ago
winlin 5a1a234855 ST: Refine tools and CMakeLists.txt. Add backtrace example. v5.0.79 2 years ago
winlin d9cf874033 Build: Refine build script. 2 years ago
winlin 21b9345387 Fix #2901: Edge: Fast disconnect and reconnect. v5.0.78 2 years ago
winlin 7d782ee8c9 Fix #2901: Edge: Fast disconnect and reconnect. v4.0.267 2 years ago
winlin 7ddabd2cc2 Config: Remove space of directive. 2 years ago
winlin 5b3dd61deb GB28181: Fix sip.candidate configuration bug. v5.0.77 2 years ago
mapengfei53 dd563d45ca
Config: Support overwrote by environment variables. (#3200)
Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
2 years ago
john f1be2ebd3b
SRT: use default streamid when empty (#3202)
* SRT: use default streamid when empty

* Fix #3198: SRT: Support PUSH SRT by IP and optional port. v5.0.76

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin c12deded98 GB28181: Fix bug for parsing GB to RTC. 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 9c81a0e1bd UTest: Fix utest warnings. 2 years ago
winlin cfbbe3044f HTTP: Skip body and left message by upgrade. v5.0.73 2 years ago
winlin d4ce877407 Kernel: Refine lazy sweep resource. 2 years ago
mapengfei53 eb04f92176
Config: Support overwrote by environment variables. (#3197)
* Support overwrite by environment virable.

* modify duplicated code

* Config: Add stat for envrionment config.

* Config: Fix utest fail.

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin dc20d5ddbc ST: Support set context id while thread running. v5.0.72 2 years ago
chundonglinlin 9525511032
Exporter: Listen at port 9972 for Prometheus exporter. (#3195) 2 years ago
winlin 4ad4dd0975 RTC: Refine SDP to support GB28181 SSRC spec. v5.0.71 2 years ago
winlin d32bd72527 Micro changes and fix utest fail. 2 years ago
winlin 1e6143e2eb GB28181: Refine HTTP parser to support SIP. v5.0.70 2 years ago
winlin dae46a59ae Fix utest failed. 2 years ago
winlin 927dd473eb Kernel: Support lazy sweeping simple GC. v5.0.69 2 years ago
winlin 4b7d9587f4 HTTP: Support HTTP header in creating order. v5.0.68 2 years ago
winlin d65c699829 Micro changes and refines. 2 years ago
winlin 378bffa34f Micro changes and refines. 2 years ago
winlin 173c683566 GB28181: Refine SRS listeners without wrapper. 2 years ago
winlin b452144fb7 GB28181: Remove unused RTSP protocol stack. 2 years ago
winlin 912cd6a59c Merge branch '4.0release' into develop 2 years ago
winlin 8bd8c1146d WebRTC: Eliminate unused debugging log. 2 years ago
winlin 5f8da02ee7 API: Refine stat and config for prometheus exporter. 2 years ago
chundonglinlin 981cab40d3
API: support metrics for prometheus.(#2899) (#3189)
* API: support metrics for prometheus.

* Metrics: optimize metrics statistics info.

* Refine: remove redundant code.

* Refine: fix metrics srs_streams param.

* Metrics: add major param.

* Metrics: refine params and metric comments.

* For #2899: API: Support exporter for Prometheus. v5.0.67

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin e31f3b0e64 For #3167: WebRTC: Refine sequence jitter algorithm. v5.0.66 2 years ago
winlin 0c6d30861b Merge branch '4.0release' into develop 2 years ago
winlin 386b92e9ab For #3167: WebRTC: Refine sequence jitter algorithm. v4.0.266 2 years ago
winlin ccd9eee2c9 For #3187: Fix build warning for unused variable. 2 years ago
john 62cd2fba85
SRT: do not ignore AUD nalus (#3187) 2 years ago
john b328142140
Printf warn log when SRT audio duration too large (#3186)
* SRT: print warning log when audio duration too large

* Fix #3164: SRT: Choppy when audio ts gap is too large. v5.0.65

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
hondaxiao 4acb246c57 Fix #3181: SRT & WebRTC: Use SrsRawH264Stream to mux SPS/PPS. 2 years ago
winlin f974c7c8b0 Fix #3183: Fix build fail for HDS. 2 years ago
winlin d4898bec3c APM: Check endpoint port and team. 2 years ago
winlin 6f7b242ce2 APM: Extract research to projects. 2 years ago
winlin b95734fb09 STAT: Update statistic for RISCV. 2 years ago
winlin e63c02e928 APM: Update statistic for APM. 2 years ago
winlin 3e2f8622f8 APM: Support distributed tracing by Tencent Cloud APM. v5.0.63 2 years ago
winlin 4d0a4faa9d For #3179: WebRTC: Make sure the same m-lines order for offer and answer. v5.0.63 2 years ago
winlin 1b25ef9028 Merge branch '4.0release' into develop 2 years ago
winlin 686f57799e Fix #3179: WebRTC: Make sure the same m-lines order for offer and answer. v4.0.265 2 years ago
winlin b2ad3bcdc8 WebRTC: Print offer if negotiate failed. 2 years ago
winlin 98ba8ae541 For #3174: WebRTC: Support Unity to publish or play stream. v5.0.62 2 years ago
winlin 6d18093e16 Merge branch '4.0release' into develop 2 years ago
winlin aea2bfbaf9 For #3174: WebRTC: Support Unity to publish or play stream. v4.0.264 2 years ago
winlin 8ac8ae1c2e Fix #3093: WebRTC: Error when SDP not matched. 2 years ago
winlin 1c0236aa0d Fix #3093: WebRTC: Ignore unknown fmtp for h.264. v4.0.263 2 years ago
faicker ef3347e37e
WebRTC: Fix missing type in track desc when backup H.264 payload type is chosen.
Signed-off-by: faicker <faicker.mo@gmail.com>

Signed-off-by: faicker <faicker.mo@gmail.com>
2 years ago
winlin 3eb046612b Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v5.0.61 2 years ago
winlin e47c3c410c Merge branch '4.0release' into develop 2 years ago
winlin 15610ca488 Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v4.0.262 2 years ago
winlin 297a104fef Update state-threads to v1.9.4. 2 years ago
winlin 0410915ddd Update features for SRS 5.0 2 years ago
winlin 2144ff8c40 For #2852: WebRTC: Support only one TCP connected candidate. 2 years ago
Li Peng efa0851476 WebRTC: Refine code and destroy session when tcp close. 2 years ago
Li Peng 07339e1417 WebRTC: Support TCP network. 2 years ago
winlin 625069af7f WebRTC: Extract SrsRtcNetwork layer for UDP/TCP. 2 years ago
winlin 770d959148 WebRTC: Support config, listener and SDP for TCP transport. 2 years ago
winlin 424713a31d Merge branch '4.0release' into develop 2 years ago
winlin e0c8c199d5 Fix HTTP url parsing bug. v4.0.261 2 years ago
winlin 79358673ef Merge branch '4.0release' into develop 2 years ago
winlin 34196ea7f7 Fix #3167: WebRTC: Play stucked when republish. v4.0.260 2 years ago
winlin 38c3d9f1a7 Config: Refine config file, nothing changed. 2 years ago
winlin 77e1f81f91 For #1405: Fix utest build failed, for parsing SPS/PPS. 2 years ago
winlin 84c96076a9 Merge branch '4.0release' into develop 2 years ago
winlin 4a225c5640 For #307: WebRTC: Support use domain name as CANDIDATE. v4.0.259 2 years ago
winlin 6988e60ad6 Fix #1405: Restore the stream when parsing failed. v5.0.59 2 years ago
chundonglinlin ef04d411c0 Main: remove extra space and refine code. (#3127) 2 years ago
mingo-wu 232fbfa4c3
Update srs_core_performance.hpp (#3160)
In included file: main file cannot be included recursively when building a preamble
    clang(pp_including_mainfile_in_preamble)
    srs_core.hpp(43, 10): Error occurred here
2 years ago
winlin 783aea7ac3 Fix #1405: Support guessing IBMF first. v5.0.58 2 years ago
winlin e027d28c4d HLS: Support disable hls_ts_ctx. 2 years ago
winlin eb2056db25 ST: Define and use a new jmpbuf. v5.0.57 2 years ago
winlin 7d47017a00 Ingest: Still use -re for stream to ingest HLS better. 2 years ago
winlin dd37a041b9 Fix URL parsing bug for __defaultVhost__. v5.0.55 2 years ago
winlin b009860b11 UTest: Split utest to smaller file. 2 years ago
winlin 6a108fab6d Fix #2837: Callback: Support stream_url and stream_id. v5.0.55 2 years ago
winlin 9c6774b644 STAT: Refine tcUrl for SRT/RTC. v5.0.54 2 years ago
winlin d877c0b76f Tools: Update console and httpx. 2 years ago
winlin 2c259bd95b Refactor: Extract SrsNetworkKbps from SrsKbps. v5.0.53 2 years ago
winlin 937605b18c Remove bandwidth check because falsh is disabled. v5.0.52 2 years ago
winlin 1630918b0f Refactor: Use compositor for ISrsKbpsDelta. v5.0.51 2 years ago
winlin 29ae29c693 Merge branch '4.0release' into develop 2 years ago
winlin 88ba3d25f8 Copy libxml2-dev for FFmpeg. v4.0.258 2 years ago
winlin db91102e67 STAT: Extract an ephemeral delta object. 2 years ago
winlin 4fe90d4885 RTC: Stat the WebRTC clients bandwidth. v5.0.50 2 years ago
winlin d7c2d5ab01 HLS: Stat the HLS streaming clients bandwidth. v5.0.49 2 years ago
winlin c1df280211 HLS: Rebuild m3u8 to make ts with id, for stat. 2 years ago
winlin bc569d91a0 STAT: Ignore stat for API, only for HTTP streaming clients. 2 years ago
winlin 28154e820c URL: Use SrsHttpUri to parse URL and query. 2 years ago
winlin 9bd3c51818 RTMP: Refine code for gussing stream by app. 2 years ago
chundonglinlin 96add9be3d RTMP: Support publish with Server without StreamKey using OBS.(#3018) 2 years ago
winlin f492d8b03a HTTP: Support API with body, for RTC. 2 years ago
winlin 457738f6eb Fix #2881: HTTP: Support merging api to server. v5.0.47 2 years ago
winlin 6508a082e9 Fix #3108: STAT: Update stat for SRT. v5.0.46 2 years ago
winlin 4e3ea99ccd STAT: Refine stat for global server. 2 years ago
winlin da24de5ecb STAT: Update stat for SRT connection. 2 years ago
winlin 101e4fa3b9 STAT: Add hls-play, flv-play, srt-play and srt-publish. 2 years ago
winlin 2944fe430f STAT: Only stat media streaming clients. 2 years ago
winlin ccf83a3f68 HLS: Extract a HLS streaming to serve pseudo session. 2 years ago
winlin d39995cc31 HLS: Enable hls_ctx by default. 2 years ago
ChenHaibo ca7b5a1c4e HLS: Add utest for HLS streaming. 2 years ago
ChenHaibo 2c569f568c HLS: Support config hls_ctx to disable HLS streaming. 2 years ago
winlin 6dc86b8a2e CLS: Refine logging to global object. 2 years ago
winlin 8bc7342c3c Protobuf: Extract protobuf encoder. 2 years ago
winlin a54d371549 Log: Stat the number of logs. v5.0.45 2 years ago
winlin 5757950860 Merge 4.0release 2 years ago
winlin cdccdf70b8 Hooks: Remove on_connect and on_close from doc. 2 years ago
winlin 5225a07727 Merge 4.0release 2 years ago
winlin d5293e34e1 Refine release doc and wiki link. 2 years ago
winlin 18d25eacfb Merge 4.0release 2 years ago
winlin 95cd0e84eb Log: Support write log to tencentcloud CLS. v5.0.44 2 years ago
winlin 3da0b57121 Merge 4.0release. 2 years ago
winlin 9923c749d4 STAT: Support config server_id and generate one if empty. v4.0.257 2 years ago
winlin 8e6d207e56 For #2136: API: Cleanup no active streams for statistics. v4.0.256 2 years ago
winlin 41155b7789 STAT: Add kbps for client. 2 years ago
winlin 2438bc99e0 Config: Refine ulimit check. 2 years ago
winlin 9b010ac158 Fix #3114: Origin cluster config bug. v5.0.43 2 years ago
winlin e9d6601f7d For #2136: API: Cleanup no active streams for statistics. v5.0.42 2 years ago
winlin 4edf33326d Merge branch '4.0release' into develop 2 years ago