Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #2570, remove useless audio track info in PMT when no audio #2

Open
wants to merge 7,095 commits into
base: feature/gb28181
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7095 commits
Select commit Hold shift + click to select a range
27712fd
Rename ffmpeg-4.2-fit to ffmpeg-4-fit
winlinvip Mar 2, 2021
0bc3bdc
Refine gcov files
winlinvip Mar 3, 2021
e2b7795
Update README
winlinvip Mar 3, 2021
eaeacab
Update README
winlinvip Mar 3, 2021
dd8f7ff
Enable HTTP-FLV for conf/rtc.conf
winlinvip Mar 3, 2021
4ba4850
Fix #2106, #2011, RTMP/AAC transcode to Opus bug. 4.0.81
PieerePi Mar 3, 2021
8688991
CI: Add centos8 and ubuntu20 to CI
winlinvip Mar 4, 2021
212ff6f
Never force to openssl-1.0 for asm and srtp-asm, because openssl-1.1+…
winlinvip Mar 4, 2021
5a66d15
Support regression test in CI.
winlinvip Mar 4, 2021
de87dd4
Fix utest fail
winlinvip Mar 4, 2021
876210f
For regression test, add srs-bench to 3rdparty
winlinvip Mar 4, 2021
a29d0a6
Add CI for CentOS7, C++98(ANSI) and no FFmpeg-fit
winlinvip Mar 4, 2021
bb3bd17
Refine the regression test tool, add missing files
winlinvip Mar 4, 2021
3bb1b67
Merge SRS4, lots of features
winlinvip Mar 4, 2021
7d12c36
Merge ST, support utest and coverage by gtest.
winlinvip Mar 3, 2021
d6a6f98
Script: Support local fast coverage by gcovr
winlinvip Mar 4, 2021
990dc8c
Script: Fast coverage support module filter
winlinvip Mar 4, 2021
817c704
SquashSRS4: Support fast local coverage with module
winlinvip Mar 4, 2021
741b2eb
Merge branch '4.0release' into develop
winlinvip Mar 4, 2021
56b6468
SquashSRS4: Docker: Add conf/docker.conf, daemon off, log console, en…
winlinvip Mar 4, 2021
c3f057e
Squash SRS4: Update README for docker
winlinvip Mar 5, 2021
fe1b427
Update
winlinvip Mar 6, 2021
de65a33
SquashSRS4: Fix DTLS config bug, dup Alert bug. 4.0.83
winlinvip Mar 8, 2021
dc93836
SquashSRS4: Refine DTLS init, use specified API by role
winlinvip Mar 9, 2021
e748102
SquashSRS4: Regine DTLS and add regression tests. 4.0.84
winlinvip Mar 10, 2021
4f1aa92
SquashSRS4: Add security scan. Feed TWCC before drop PT.
winlinvip Mar 11, 2021
57f8a1a
Update doc.
winlinvip Mar 11, 2021
c07b7db
Test: Update srs-bench.
winlinvip Mar 12, 2021
ccbc11c
Test: Fix bug for srs-bench.
winlinvip Mar 12, 2021
33fa43c
Init SRS/5. 5.0.0
winlinvip Mar 15, 2021
3543174
Live: Support follow client protocol for edge.
winlinvip Dec 24, 2020
4f1d213
Live: Support follow HTTP/302 for HTTP/HTTPS FLV edge.
winlinvip Mar 17, 2021
4329c7e
Live: Refine edge to follow client and HTTP/302. 5.0.1
winlinvip Mar 17, 2021
25145b9
RTC: Use send_rtcp to encrypt and send RTCP bytes
winlinvip Mar 22, 2021
b7b474d
SquashSRS4: Update srs-bench.
winlinvip Mar 24, 2021
ecd4527
SquashSRS4: Use fast parse TWCCID, ignore in packet parsing
winlinvip Mar 24, 2021
ff268dc
SquashSRS4: Eliminate dead code, we never offer
winlinvip Mar 24, 2021
aab54b2
SquashSRS4: Refine RTC extension ID parsing
winlinvip Mar 24, 2021
4692e8b
SquashSRS4: Support WebRTC re-publish stream.
winlinvip Mar 26, 2021
45b83bd
SquashSRS4: Update comments and performance data
winlinvip Mar 31, 2021
0cc3063
SquashSRS4: Refine TWCC and SDP exchange. 4.0.88
winlinvip Apr 1, 2021
fa2fec3
SquashSRS4: Refine payload NALU type parser
winlinvip Apr 1, 2021
d80ba9d
SquashSRS4: Fix memory leak
winlinvip Apr 1, 2021
52644f5
SquashSRS4: Fix republish bug
winlinvip Apr 4, 2021
fcf72b4
SquashSRS4: Fix republish bug
winlinvip Apr 4, 2021
237c1e4
SquashSRS4: Fix DTLS warnings for HTTP api
winlinvip Apr 5, 2021
1ee7761
Refine comments
winlinvip Apr 5, 2021
4871c61
Update README
winlinvip Apr 5, 2021
55426c6
SquashSRS4: Fix RTC connection dispose bug
winlinvip Apr 6, 2021
3233061
SquashSRS4: Eliminate the dup code
winlinvip Apr 6, 2021
3eb3cb9
For #2275, fix bug for transcode engine config param.
bluestn Apr 8, 2021
8b74c7c
SquashSRS4: Happy 2021
winlinvip Apr 16, 2021
c22fc75
SquashSRS4: Update description
winlinvip Apr 16, 2021
6418ece
SquashSRS4: Update description
winlinvip Apr 16, 2021
aa07f45
SquashSRS4: Happy 2021
winlinvip Apr 20, 2021
b29827d
Modules: Enable app files for module
winlinvip Apr 21, 2021
7bdc9e8
Moduels: Refine the description
winlinvip Apr 21, 2021
7b413ed
Timer: Extract shared FastTimer to use one timer for all connections
winlinvip Apr 23, 2021
c95bfc4
Timer: Apply shared FastTimer to RTC server
winlinvip Apr 23, 2021
d4a8a72
SquashSRS4: Add console. Disable cherrypy by default.
winlinvip Apr 24, 2021
eba7814
SquashSRS4: Change push-RTSP as deprecated feature.
winlinvip Apr 24, 2021
fe1c3a4
SquashSRS4: Update readme
winlinvip Apr 24, 2021
d0fd0c4
SquashSRS4: Update README
winlinvip Apr 25, 2021
00a8eef
Fix utest fail
winlinvip Apr 25, 2021
f9d9f3a
Modules: Fix build fail for global variables.
winlinvip Apr 25, 2021
3d74b0e
SquashSRS4: Add crossdomain.xml for install script.
winlinvip Apr 26, 2021
e67207f
Script: Refine package and install script
winlinvip Apr 26, 2021
c2229d3
Add alone pithy print
winlinvip Apr 27, 2021
543377e
Test: Update srs-bench
winlinvip Apr 27, 2021
a300d1f
Fix bug for alone pithy print
winlinvip Apr 27, 2021
ea1f325
RTC: Remove DTLS utest, cover by regression test
winlinvip Apr 27, 2021
dbd9741
SquashSRS4: Update README
winlinvip Apr 28, 2021
b4b7917
SuqashSRS4: Update players
winlinvip Apr 28, 2021
84e649b
SquashSRS4: Update gitee url
winlinvip Apr 28, 2021
0b62216
SquashSRS4: Support av1 for Chrome M90 enabled it.
winlinvip Apr 30, 2021
74bb47c
SquashSRS4: Support RTC2RTMP.
winlinvip May 1, 2021
206d958
SquashSRS4: Add one to one RTC demo.
winlinvip May 2, 2021
becbe45
SquashSRS4: Add demo for RTC
winlinvip May 5, 2021
f41c0b4
SquashSRS4: Fix config bug for nack and twcc.
winlinvip May 6, 2021
f995bf7
SquashSRS4: Transform config for nack/twcc.
winlinvip May 6, 2021
fd6c653
SquashSRS4: Refine performance for FastTimer
winlinvip May 7, 2021
276bd22
SquashSRS4: Support circuit breaker
winlinvip May 8, 2021
3256c7c
SquashSRS4: Refine the init of global objects
winlinvip May 8, 2021
8895d36
SquashSRS4: Refine shared fast timer
winlinvip May 8, 2021
eb33943
SquashSRS4: Update benchmark data.
winlinvip May 10, 2021
3939844
SquashSRS4: Fix bugs
winlinvip May 11, 2021
47f3f4d
SquashSRS4: fix bugs
winlinvip May 12, 2021
f711eb7
SquashSRS4: Refine stat id. Fix SRT build bug
winlinvip May 14, 2021
6a98068
SquashSRS4: Remove object cache and stat api
winlinvip May 14, 2021
a1d7fe4
SquashSRS4: Rename SrsRtpPacket2 to SrsRtpPacket.
winlinvip May 15, 2021
e3bca88
SuqashSRS4: Build SRT native
winlinvip May 16, 2021
2e14d80
SquashSRS4: Refine GB28181
xialixin May 18, 2021
34aa11b
SquashSRS4: Update doc
winlinvip May 18, 2021
9709ca3
Doc: Update README
winlinvip May 19, 2021
442cf61
ST: Simplify it, only Linux/Darwin, epoll/kqueue, single process. 5.0.2
winlinvip Apr 26, 2021
f043a7e
SquashSRS4: Allow RTC play before publish.
winlinvip May 19, 2021
6dc8d9d
SquashSRS4: Remove srs-librtmp
winlinvip May 20, 2021
a7ab78a
SquashSRS4: Update SDK
winlinvip May 21, 2021
e50582f
SquashSRS4: Refine SDK
winlinvip May 21, 2021
a9f1711
SquashSRS4: Eliminate dead code
winlinvip May 24, 2021
bbd7ee0
Update README.md
winlinvip May 24, 2021
4d6f00e
GB28181: fix parse rtp-tcp failed (#2378)
cfw11 May 28, 2021
cc52e5b
GB28181: Fix parse rtp tcp failed (#2382)
xialixin May 28, 2021
81bda41
SquashSRS4: Refine srs.sdk.js
winlinvip May 28, 2021
2aad8ad
fix: fix typo about inactive. (#2380)
johzzy May 28, 2021
15901ca
SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3
winlinvip May 31, 2021
9e2c6d4
Fix build fail for SPDX
winlinvip May 31, 2021
7e657ae
Refine AUTHORS format
winlinvip Jun 1, 2021
785d2fc
Build: Support --shared-srt
winlinvip Jun 1, 2021
f75ef2f
Build: Support --shared-ffmpeg
winlinvip Jun 1, 2021
a7df978
Squash: Refine README
winlinvip Jun 10, 2021
283b3a2
Squash: Update README
winlinvip Jun 15, 2021
4982608
Squash: Update README
winlinvip Jun 15, 2021
efdbf37
Squash: Move GB28181 to feature/gb28181. 5.0.4
winlinvip Jun 16, 2021
a594678
Squash #1685, #1282, #1547: Support ARM platform. 5.0.5
winlinvip Jun 21, 2021
67ac720
srt publish core dump bug (#2429)
runner365 Jun 24, 2021
ce47d5c
Squash: Update README
winlinvip Jun 24, 2021
d987e19
fix bug: last segment of ts not trigger 'on_hls', because of 'on_unpu…
Jun 27, 2021
5ee2061
Squash: Support query lastest available version. 5.0.6
winlinvip Jun 27, 2021
d02ba80
Squash: Fix bug for building FFmpeg
winlinvip Jun 27, 2021
f986b59
check 'vhost' validity in 'http raw dvr api' (#2435)
Jun 27, 2021
0391e71
Squash: Merge SRS4
winlinvip Jun 28, 2021
346cc96
SRT: Fix bug for multiple NALUs, when configure OBS in zerolatency. (…
runner365 Jun 29, 2021
75530ef
Squash: Merge #2448, #2440
winlinvip Jun 29, 2021
9f5d011
Squash: Fix build fail for arm/aarch64
winlinvip Jun 30, 2021
d32d8c0
update channel_layout by channels, for ffmpeg transcode opus to aac s…
Jun 30, 2021
db3e111
Move AUTHORS.txt to trunk for docker. 5.0.7
winlinvip Jun 30, 2021
13d015b
Squash: Fix random bug
winlinvip Jul 4, 2021
5a7a742
Squash: Update README
winlinvip Jul 6, 2021
5beea97
Refine .curcleci workflow
winlinvip Jul 7, 2021
14bc799
Refine .curcleci workflow
winlinvip Jul 7, 2021
481f8b2
Refine .curcleci workflow
winlinvip Jul 7, 2021
56310ff
Refine .curcleci workflow
winlinvip Jul 7, 2021
7eee9aa
Calculate the correct payload_size which pure padding data, in the pr…
duiniuluantanqin Jul 8, 2021
c8a1e0f
Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8 (#2464)
winlinvip Jul 8, 2021
8f91a90
Squash: Fix padding packets for RTMP2RTC
winlinvip Jul 8, 2021
dca0397
Update README
winlinvip Jul 9, 2021
12ba584
Fix build failed
winlinvip Jul 9, 2021
97c627f
Squash: Support CLion
winlinvip Jul 17, 2021
beea321
Squash: Refine IDE
winlinvip Jul 17, 2021
6c40419
Fix configure bug
winlinvip Jul 18, 2021
4ca433d
Refine push script
winlinvip Jul 18, 2021
4b7ba0e
SRT: Use thread-safe log for multiple-threading SRT module. (#2474)
runner365 Jul 21, 2021
33610c6
Squash: Merge SRS 4.0
winlinvip Jul 21, 2021
20931dd
Squash: Fix README.md link issue
winlinvip Jul 21, 2021
0efd7b1
RTC: Support statistic for HTTP-API, HTTP-Callback and Security (#2483)
duiniuluantanqin Jul 24, 2021
1c80b52
Squash: Merge SRS 4.0
winlinvip Jul 24, 2021
fb73d42
explicitly enable nack, for firefox (#2373)
duiniuluantanqin Jul 24, 2021
301a8ce
Squash: Merge SRS 4.0
winlinvip Jul 24, 2021
ed6f868
Release 4.0 dev1, v4.0.146
winlinvip Jul 25, 2021
f62a4c4
correct the client ip of http-flv player, for statistic (#2491)
Jul 26, 2021
06f10b1
fix coredump bug: caused by publish stream that codec is h.263 (#2505)
Aug 4, 2021
983d521
API: Use libuuid to generate uuid. v5.0.9
winlinvip Aug 6, 2021
69faf06
API: For #2508, query feature docker and packager.
winlinvip Aug 7, 2021
adf0043
Fix #2508, Support features query by API. 5.0.10
winlinvip Aug 7, 2021
7739d8c
Update README.md
winlinvip Aug 7, 2021
84d04ad
get original ip instead of proxy ip, for rtc api (#2514)
Aug 7, 2021
9bf5005
Squash: Merge SRS4
winlinvip Aug 7, 2021
345b691
support http hooks for rtc: on_play/stop/publish/unpublish (#2509)
Aug 10, 2021
29dea37
Squash: Merge SRS4
winlinvip Aug 10, 2021
aad90c7
fix coredump bug: caused by publish stream that codec is unsupport, s…
Aug 13, 2021
24431d3
Squash: Merge SRS4
winlinvip Aug 13, 2021
cffd364
Update README
winlinvip Aug 13, 2021
7c899a0
Squash: Update version query.
winlinvip Aug 14, 2021
e22035b
Squash: Fix RTC session info bug
winlinvip Aug 14, 2021
7efae1b
Squash: Update CodeQL
winlinvip Aug 14, 2021
d08f8fa
Refine Dockerfile
winlinvip Aug 15, 2021
3d58e98
Squash: Support github actions for CI
winlinvip Aug 15, 2021
85620a3
Squash: Fix rtc to rtmp sync timestamp using sender report. #2470
winlinvip Aug 16, 2021
38b0b1d
Squash: Fix ingest bug. Refine AUTHORS.
winlinvip Aug 25, 2021
826f512
Support for multiple SPS/PPS, then pick the first one. (#2544)
Aug 26, 2021
a7feeda
Use SrsAsyncCallWorker in http hooks instead, to covert to async call…
Aug 26, 2021
f86d6fd
Squash: Merge SRS 4.0
winlinvip Aug 26, 2021
7abc9b6
SRT: fix srt stream play map error (#1890)
PYW1 Aug 28, 2021
7ab3e4a
Squash: Merge SRS 4.0
winlinvip Aug 28, 2021
19c0a9e
Suqash: Merge 4.0
winlinvip Sep 5, 2021
fef474d
Squash: Merge 4.0
winlinvip Sep 5, 2021
8aee016
Set empty HTTP paths to '/' to avoid malformed requests (#2329)
hashworks Sep 7, 2021
a830289
Squash: Merge SRS4.0
winlinvip Sep 7, 2021
28e3a1c
Squash: Merge SRS 4.0
winlinvip Sep 13, 2021
40f8460
Squash: Merge SRS 4.0
winlinvip Sep 17, 2021
f901831
Enhance HLS: support http callback on_play/stop, support statistic (#…
Sep 23, 2021
f01c963
Support http callback on_play/stop. 5.0.12
winlinvip Sep 23, 2021
34cd7b2
Squash: Merge SRS 4.0
winlinvip Sep 23, 2021
149ad80
Squash: Merge SRS 4.0
winlinvip Sep 25, 2021
dc77802
fix some crash in rtc. (#2545)
johzzy Sep 26, 2021
7d3ec99
Squash: Merge SRS 4.0
winlinvip Sep 26, 2021
1836847
ST: Support Cygwin64 and MIPS
winlinvip Oct 2, 2021
96a33b5
ST: Support Cygwin64 and MIPS. 5.0.13
winlinvip Oct 2, 2021
6e8bf8c
Actions: Auto release SRS 5.0.
winlinvip Oct 2, 2021
4b37f65
Actions: Support create release with source tar automatically. v5.0.13
winlinvip Oct 2, 2021
c48c960
Actions: Create source tar lik srs-server-5.0.14.tar.gz
winlinvip Oct 2, 2021
8685c9c
OpenWRT: Support cross-compile SRS
winlinvip Oct 3, 2021
cae35d7
Actions: Show commit and messages. Fix MIPS build fail.
winlinvip Oct 3, 2021
8ea9783
OpenWRT: Disable mprotect of ST. 5.0.16
winlinvip Oct 3, 2021
a19c0fa
OpenWRT: Try to create dir for pidfile
winlinvip Oct 3, 2021
5042117
Squash: Merge SRS 4.0
winlinvip Oct 7, 2021
6c597fa
Squash: Merge SRS 4.0
winlinvip Oct 7, 2021
a81aa2e
Squash: Merge SRS 4.0
winlinvip Oct 10, 2021
b874d9c
Squash: Merge SRS 4.0, regression test for RTMP.
winlinvip Oct 12, 2021
93cd025
replace the placeholder of ts url in m3u8 (#2549)
Oct 12, 2021
4e6a332
Squash: Merge SRS 4.0
winlinvip Oct 12, 2021
579b90d
on_dvr: use publish param instead of play (#2550)
Oct 12, 2021
e127880
Squash: Merge SRS 4.0
winlinvip Oct 12, 2021
cd7e5a1
Squash: SRS 4.0, Stat the oc(origin cluster).
winlinvip Oct 13, 2021
44f1d8e
SRT: Pes error when mpegts demux in srt (#2671)
runner365 Oct 13, 2021
9517ef1
Squash: Update SRS 4.0 version
winlinvip Oct 14, 2021
974bed6
API: Fix the same 'client_id' error when asynchronous call (#2665)
Oct 15, 2021
e03ada3
Squash: SRS v4.0.179
winlinvip Oct 16, 2021
7fd5e86
DVR: support mp3 audio codec. (#2593) v5.0.17
Sep 10, 2021
596dd8c
Support daemon(fork twice) for Darwin/OSX. v5.0.18
winlinvip Oct 17, 2021
60c8724
SRT: Solve mpegts demux assert bug (#2670)
runner365 Oct 18, 2021
85131da
Squash: Update SRS 4.0 version
winlinvip Oct 18, 2021
9a017f4
RTMP: If port is explicity set to 0, use default 1935 (#1754)
macabu Oct 19, 2021
665b5f4
Squash: JSON: Support escape special chars. (#1758)
winlinvip Oct 20, 2021
f0910cf
Squash: For #1758: Fix bug for marshal JSON with SDP.
winlinvip Oct 21, 2021
a86f390
Put the statistics code after http callback (#2687)
Oct 22, 2021
5b44cc6
For #2689, Support loongarch, loongson CPU. v5.0.19
winlinvip Oct 24, 2021
99904f9
For #2689: Support stat for CPU archs.
winlinvip Oct 24, 2021
a6c4cc9
Squash: Merge SRS 4.0, API: Always stat client event if auth fail.
winlinvip Oct 24, 2021
88cdba6
STAT: Add server_id into http_hooks (#2692)
Oct 25, 2021
3c4b9be
For #2689, Refine the patches for loongarch
winlinvip Oct 25, 2021
e1f6547
Sqush: Refine config for origin cluster
winlinvip Oct 27, 2021
da7fac0
Release SRS v5.0.19, develop version, not stable
winlinvip Oct 28, 2021
0d8b2df
AUTHORS: Refine TOC of authors.
winlinvip Nov 3, 2021
a01354a
Edge: Refuse edge request when state is stopping (#2707)
Nov 3, 2021
523b055
Squash: Support RPM. Fix bugs.
winlinvip Nov 3, 2021
f4e87b1
AUTHORS: Update new contributors.
winlinvip Nov 3, 2021
3974b31
DVR: Copy req from publish (#2714)
Nov 7, 2021
6cde9a0
Squash: Guess config files by FHS
winlinvip Nov 7, 2021
5f85d40
Squash: Merge #2721, #2729
winlinvip Nov 13, 2021
440f29b
Squash: Merge #2732
winlinvip Nov 14, 2021
9324291
Squash: For #1708
winlinvip Nov 15, 2021
66435d5
Squash: Fix stat bug
winlinvip Nov 15, 2021
a862573
RTC: Fix crash when pkt->payload() if pkt is nullptr (#2751)
johzzy Nov 24, 2021
e16830e
Squash: Merge 4.0.201
winlinvip Dec 4, 2021
8576fa7
Squash: Merge v4.0.203
winlinvip Dec 4, 2021
2cd03fd
GB28181: Support GB28181.
winlinvip Jun 16, 2021
20fd5a1
GB28181: Support ./configure --iconv=on|off to fix build fail.
Jul 18, 2021
cc2ccf0
GB28181: fixed compile error when --log-info=on #2506
osenberg-x Aug 17, 2021
94d33ec
GB28181: 优化CATALOG XML解析,支持大华平台<key/>空标签写法。
PieerePi Jan 13, 2021
250ddb2
GB28181: 忽略payload type不为96的ps数据
PieerePi Feb 25, 2021
c6b56ea
GB28181: Delete invalid api '/api/v1/gb28181?action=sip_raw_data'
Sep 14, 2021
7e3d411
GB28181: Always enable jitter for RTP. (#2647)
xialixin Oct 4, 2021
10374ee
GB28181: Check is es_info_length overflow es_map_length (#2650)
xialixin Oct 5, 2021
04c1f18
GB28181: Support query feature by API for GB+SIP (#2605)
winlinvip Aug 7, 2021
6c631ff
GB28181: Fix build fail and warnings
winlinvip Oct 13, 2021
df13fdf
GB28181: Fix config check fail for jitterbuffer_enable removed
winlinvip Oct 27, 2021
72ad526
GB28181: 解决./configure编译参数与--help不符. (#2493)
zhh0000zhh Jul 28, 2021
d9673ee
Fix #2570, remove useless audio track info in PMT when no audio
Nov 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: File bug
about: File bug to improve SRS
title: ''
labels: ''
assignees: 'winlinvip'

---

> 注意:提问前,请先看FAQ(Please read FAQ before file an issue) https://github.com/ossrs/srs/issues/2716

**描述(Description)**

> 描述你遇到了什么问题(Please description your issue here)

1. SRS版本(Version): `xxxxxx`

1. SRS的日志如下(Log):
```

xxxxxxxxxxxx

```

1. SRS的配置如下(Config):
```

xxxxxxxxxxxx

```

**重现(Replay)**

> 重现Bug的步骤(How to replay bug?)

1. `xxxxxx`
1. `xxxxxx`
1. `xxxxxx`

**期望行为(Expect)**

> 描述你期望发生的事情(Please describe your expectation)
31 changes: 31 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: "CodeQL"

# @see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags
on: [push, pull_request]

jobs:
analyze:
name: actions-codeql-analyze
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]

steps:
- name: Checkout repository
uses: actions/checkout@v2

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}

- name: Build SRS
run: |
cd trunk && ./configure && make

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
159 changes: 159 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: "Release"

# @see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags
on:
push:
tags:
- v5*

jobs:
k8s:
name: release-k8s
runs-on: ubuntu-20.04

steps:
################################################################
# Git checkout
- name: Checkout repository
uses: actions/checkout@v2
# The github.ref is, for example, refs/tags/v4.0.145 or refs/tags/v4.0-r8
# Generate variables like:
# SRS_TAG=v4.0-r8
# SRS_TAG=v4.0.145
# SRS_VERSION=4.0.145
# SRS_VERSION=4.0-r8
# SRS_MAJOR=4
# @see https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Generate varaiables
run: |
SRS_TAG=$(echo ${{ github.ref }}| awk -F '/' '{print $3}')
echo "SRS_TAG=$SRS_TAG" >> $GITHUB_ENV
SRS_VERSION=$(echo ${SRS_TAG}| sed 's/^v//g')
echo "SRS_VERSION=$SRS_VERSION" >> $GITHUB_ENV
SRS_MAJOR=$(echo $SRS_TAG| cut -c 2)
echo "SRS_MAJOR=$SRS_MAJOR" >> $GITHUB_ENV
# Create source tar for release. Note that it's for OpenWRT package srs-server, so the filename MUST be
# srs-server-xxx.tar.gz, because the package is named srs-server.
# Generate variables like:
# SRS_SOURCE_TAR=srs-server-4.0.145.tar.gz
# SRS_SOURCE_MD5=83e38700a80a26e30b2df054e69956e5
- name: Create source tar.gz
run: |
DEST_DIR=srs-server-$SRS_VERSION && mkdir -p $DEST_DIR &&
cp README.md $DEST_DIR && cp LICENSE $DEST_DIR && cp -R trunk $DEST_DIR/trunk &&
(cd $DEST_DIR/trunk/3rdparty && rm -rf *.zip openssl-*.gz srs-bench) &&
tar zcf ${DEST_DIR}.tar.gz ${DEST_DIR} && du -sh ${DEST_DIR}* && rm -rf ${DEST_DIR} &&
echo "SRS_SOURCE_TAR=${DEST_DIR}.tar.gz" >> $GITHUB_ENV &&
echo "SRS_SOURCE_MD5=$(md5sum ${DEST_DIR}.tar.gz| awk '{print $1}')" >> $GITHUB_ENV
# Create package tar for release
# Generate variables like:
# SRS_PACKAGE_ZIP=SRS-CentOS7-x86_64-4.0.145.zip
# SRS_PACKAGE_MD5=3880a26e30b283edf05700a4e69956e5
- name: Create package zip
run: |
docker build --tag srs:pkg --build-arg version=$SRS_VERSION -f trunk/Dockerfile.pkg . &&
SRS_PACKAGE_ZIP=SRS-CentOS7-x86_64-$SRS_VERSION.zip &&
docker run --rm -v $(pwd):/output srs:pkg cp objs/$SRS_PACKAGE_ZIP /output/ &&
du -sh $SRS_PACKAGE_ZIP &&
echo "SRS_PACKAGE_ZIP=$SRS_PACKAGE_ZIP" >> $GITHUB_ENV &&
echo "SRS_PACKAGE_MD5=$(md5sum $SRS_PACKAGE_ZIP| awk '{print $1}')" >> $GITHUB_ENV

################################################################
# Tests
- name: Build test image
run: docker build --tag srs:test -f trunk/Dockerfile.test .
# For utest
- name: Run SRS utest
run: docker run --rm srs:test bash -c 'make utest && ./objs/srs_utest'
# For regression-test
- name: Run SRS regression-test
run: docker run --rm srs:test bash -c 'make && ./objs/srs -c conf/regression-test.conf && cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'

################################################################
# Build
# Build SRS image
- name: Build SRS docker image
run: |
echo "Release ossrs/srs:$SRS_TAG"
docker build --tag ossrs/srs:$SRS_TAG -f trunk/Dockerfile .

################################################################
# Docker
- name: Login docker hub
uses: docker/login-action@v1
with:
username: "${{ secrets.DOCKER_USERNAME }}"
password: "${{ secrets.DOCKER_PASSWORD }}"
- name: Push to docker hub
run: |
docker push ossrs/srs:$SRS_TAG
docker tag ossrs/srs:$SRS_TAG ossrs/srs:$SRS_MAJOR
docker push ossrs/srs:$SRS_MAJOR
# Aliyun ACR
- name: Login Aliyun docker hub
uses: aliyun/acr-login@v1
with:
login-server: https://registry.cn-hangzhou.aliyuncs.com
username: "${{ secrets.ACR_USERNAME }}"
password: "${{ secrets.ACR_PASSWORD }}"
- name: Push to Aliyun docker hub
run: |
docker tag ossrs/srs:$SRS_TAG registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_TAG
docker push registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_TAG
docker tag ossrs/srs:$SRS_TAG registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_VERSION
docker push registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_VERSION
docker tag ossrs/srs:$SRS_TAG registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v$SRS_MAJOR
docker push registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v$SRS_MAJOR
docker tag ossrs/srs:$SRS_TAG registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_MAJOR
docker push registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_MAJOR

################################################################
# K8S
- name: Setup KUBCONFIG for Aliyun ACK
run: |-
KUBECONFIG=$RUNNER_TEMP/kubeconfig_$(date +%s)
echo "${{ secrets.KUBCONFIG }}" > $KUBECONFIG
echo "KUBECONFIG=$KUBECONFIG" >> $GITHUB_ENV
# K8S for SRS 4.0
- name: Release SRS 4.0 to Aliyun ACK
if: ${{ startsWith(github.ref, 'refs/tags/v4') }}
run: |-
kubectl set image deploy/srs4-deploy srs4=registry.cn-hangzhou.aliyuncs.com/ossrs/srs:$SRS_TAG
kubectl describe deploy/srs4-deploy

################################################################
# Create release.
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: |
${{ github.event.head_commit.message }}
## Resource
* Source: ${{ env.SRS_SOURCE_MD5 }} [${{ env.SRS_SOURCE_TAR }}](https://github.com/ossrs/srs/releases/download/${{ env.SRS_TAG }}/${{ env.SRS_SOURCE_TAR }})
* Binary: ${{ env.SRS_PACKAGE_MD5 }} [${{ env.SRS_PACKAGE_ZIP }}](https://github.com/ossrs/srs/releases/download/${{ env.SRS_TAG }}/${{ env.SRS_PACKAGE_ZIP }})
draft: false
prerelease: true
# Upload release source files
- name: Upload Release Assets Source
id: upload-release-assets-source
uses: dwenegar/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.create_release.outputs.id }}
assets_path: ${{ env.SRS_SOURCE_TAR }}
# Upload release package files
- name: Upload Release Assets Package
id: upload-release-assets-package
uses: dwenegar/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.create_release.outputs.id }}
assets_path: ${{ env.SRS_PACKAGE_ZIP }}

138 changes: 138 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: "Test"

# @see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags
on: [push, pull_request]

jobs:
build-centos:
name: actions-test-build-centos
runs-on: ubuntu-20.04

steps:
- name: Checkout repository
uses: actions/checkout@v2

# Build for CentOS7
- name: Build on CentOS7, baseline
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-baseline .
- name: Build on CentOS7, with SRT
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-srt .
- name: Build on CentOS7, without WebRTC
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-no-webrtc .
- name: Build on CentOS7, without ASM
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-no-asm .
- name: Build on CentOS7, C++98, no FFmpeg
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-ansi-no-ffmpeg .
# Build for CentOS8
- name: Build on CentOS8, baseline
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos8-baseline .
- name: Build on CentOS8, with SRT
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos8-srt .

build-ubuntu:
name: actions-test-build-ubuntu
runs-on: ubuntu-20.04

steps:
- name: Checkout repository
uses: actions/checkout@v2

# Build for Ubuntu16
- name: Build on Ubuntu16, baseline
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-baseline .
- name: Build on Ubuntu16, with SRT
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-srt .
# Build for Ubuntu18
- name: Build on Ubuntu18, baseline
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu18-baseline .
- name: Build on Ubuntu18, with SRT
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu18-srt .
# Build for Ubuntu20
- name: Build on Ubuntu20, baseline
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-baseline .
- name: Build on Ubuntu20, with SRT
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-srt .

build-cross:
name: actions-test-build-cross
runs-on: ubuntu-20.04

steps:
- name: Checkout repository
uses: actions/checkout@v2

# Cross Build for ARMv7
- name: Cross Build for ARMv7
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-cross-armv7 .
# Cross Build for AARCH64
- name: Cross Build for AARCH64
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-cross-aarch64 .

build:
name: actions-test-build
needs:
- build-centos
- build-ubuntu
- build-cross
runs-on: ubuntu-20.04

steps:
- run: echo 'Build done'

utest:
name: actions-test-utest
runs-on: ubuntu-20.04

steps:
- name: Checkout repository
uses: actions/checkout@v2

################################################################
# Tests
- name: Build test image
run: docker build --tag srs:test -f trunk/Dockerfile.test .
# For utest
- name: Run SRS utest
run: docker run --rm srs:test bash -c 'make utest && ./objs/srs_utest'
# For regression-test
- name: Run SRS regression-test
run: docker run --rm srs:test bash -c 'make && ./objs/srs -c conf/regression-test.conf && cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'

coverage:
name: actions-test-coverage
runs-on: ubuntu-20.04

steps:
- name: Checkout repository
uses: actions/checkout@v2

################################################################
# Tests
- name: Build coverage image
run: docker build --tag srs:cov -f trunk/Dockerfile.cov .
# For coverage
- name: Run SRS covergae
if: ${{ startsWith(github.ref, 'refs/heads/') || startsWith(github.ref, 'refs/pull/') }}
run: |
# The hash of commit.
SRS_SHA=${{ github.sha }}
# Note that the root of SRS, must contains .git, for report fixing.
SRS_PROJECT=/srs
# The github.ref is, for example, refs/heads/4.0release
SRS_BRANCH=$(echo ${{ github.ref }}| awk -F 'refs/heads/' '{print $2}'| awk -F '/' '{print $1}')
# The github.ref is, for example, refs/pull/2536/merge
SRS_PR=$(echo ${{ github.ref }}| awk -F 'refs/pull/' '{print $2}'| awk -F '/' '{print $1}')
echo "For ref=${{ github.ref }}, sha=${{ github.sha }}, SRS_BRANCH=$SRS_BRANCH, SRS_PR=$SRS_PR, SRS_SHA=$SRS_SHA, SRS_PROJECT=$SRS_PROJECT"
docker run --rm --env SRS_BRANCH=$SRS_BRANCH --env SRS_PR=$SRS_PR --env SRS_SHA=$SRS_SHA --env SRS_PROJECT=$SRS_PROJECT \
srs:cov bash -c 'make utest && ./objs/srs_utest && bash auto/codecov.sh'

done:
name: actions-test-done
needs:
- build
- utest
- coverage
runs-on: ubuntu-20.04

steps:
- run: echo 'All done'
Loading