Squash: Merge 4.0.201

pull/3059/head
winlin 3 years ago
parent a862573220
commit e16830e989

@ -21,6 +21,7 @@ jobs:
# 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
@ -63,7 +64,7 @@ jobs:
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 && ./objs/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'

@ -93,7 +93,7 @@ jobs:
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 && ./objs/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'
@ -124,7 +124,7 @@ jobs:
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 && ./objs/srs_utest && bash auto/codecov.sh'
srs:cov bash -c 'make utest && ./objs/srs_utest && bash auto/codecov.sh'
done:
name: actions-test-done

@ -8,6 +8,11 @@
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/wechat-badge4.svg)](../../wikis/Contact#wechat)
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/srs-faq.svg)](https://github.com/ossrs/srs/issues/2716)
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/mulan-incubating.svg)](http://mulanos.cn)
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/srs-alternativeto.svg)](https://alternativeto.net/software/srs/about/)
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/srs-facebook.svg)](https://www.facebook.com/winlinvip)
[![](https://badgen.net/twitter/follow/winlinvip)](https://twitter.com/winlinvip)
[![](https://img.shields.io/youtube/channel/views/UCP6ZblCL_fIJoEyUzZxC1ng?style=social)](https://www.youtube.com/channel/UCP6ZblCL_fIJoEyUzZxC1ng)
[![](https://img.shields.io/twitch/status/winlinvip?style=social)](https://www.twitch.tv/winlinvip)
SRS/5.0 是一个简单高效的实时视频服务器支持RTMP/WebRTC/HLS/HTTP-FLV/SRT。
@ -15,6 +20,10 @@ SRS/5.0 is a simple, high efficiency and realtime video server, supports RTMP/We
SRS is licenced under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE), but some depended libraries are distributed using their [own licenses](https://github.com/ossrs/srs/wiki/LicenseMixing).
[![SRS Overview](https://gitee.com/winlinvip/srs-wiki/raw/master/images/SRS-Overview-4.0.png)](https://gitee.com/winlinvip/srs-wiki/raw/master/images/SRS-Overview-4.0.png)
> Note: Please see https://www.processon.com/view/link/619f29791efad425fd699fd2
<a name="product"></a>
<a name="usage-docker"></a>
## Usage
@ -93,6 +102,7 @@ A big `THANK YOU` also goes to:
## Releases
* 2021-12-01, Release [v4.0-b0][https://github.com/ossrs/srs/releases/tag/v4.0-b0], v4.0-b0, 4.0 beta0, v4.0.201, 144022 lines.
* 2021-11-15, Release [v4.0.198](https://github.com/ossrs/srs/releases/tag/v4.0.198), 4.0 dev8, v4.0.198, 144010 lines.
* 2021-11-02, Release [v4.0.191](https://github.com/ossrs/srs/releases/tag/v4.0.191), 4.0 dev7, v4.0.191, 143890 lines.
* 2021-10-12, Release [v4.0.177](https://github.com/ossrs/srs/releases/tag/v4.0.177), 4.0 dev6, v4.0.177, 143686 lines.

@ -12,5 +12,5 @@ ENV SRS_AUTO_PACKAGER ossrs
# Build and install SRS.
ADD srs-server-${version}.tar.gz /srs
WORKDIR /srs/srs-server-${version}/trunk
RUN ./scripts/package.sh --x86-x64 --jobs=2
RUN ./scripts/package.sh --x86-x64 --jobs=2 --tag=${version}

@ -6,7 +6,7 @@ RUN yum install -y gcc make gcc-c++ patch unzip perl git
# Build and install SRS.
COPY . /srs
WORKDIR /srs/trunk
RUN ./configure --srt=on --utest=on --jobs=2 && make -j2
RUN ./configure --srt=on --utest=on --jobs=2 && make -j2 utest
RUN cd 3rdparty/srs-bench && make
# Run utest

@ -1,7 +1,7 @@
#!/bin/bash
# In .circleci/config.yml, generate *.gcno with
# ./configure --gcov --without-research --without-librtmp && make
# ./configure --gcov --without-research --without-librtmp && make utest
# and generate *.gcda by
# ./objs/srs_utest

@ -1,33 +0,0 @@
#!/bin/bash
MODULES=""
if [[ $# -gt 0 ]]; then
for module in $@; do
module=$(basename $module)
if [[ $module == "src" ]]; then
MODULES="objs/src"
break
fi
MODULES="$MODULES objs/src/$module"
done
fi
if [[ $MODULES == "" ]]; then
MODULES="objs/src"
fi
IS_LINUX=yes
uname -s|grep Darwin >/dev/null && IS_DARWIN=yes && IS_LINUX=no
echo "IS_LINUX: $IS_LINUX, IS_DARWIN: $IS_DARWIN"
echo "Clean gcda files"
find objs -name *.gcda |xargs rm -f
echo "Build and run utest"
make -j10 && ./objs/srs_utest
echo "Generating coverage at $MODULES"
mkdir -p ./objs/coverage &&
gcovr -r src --html --html-details -o ./objs/coverage/srs.html $MODULES &&
echo "Coverage report at ./objs/coverage/srs.html" &&
open ./objs/coverage/srs.html

@ -0,0 +1,32 @@
# the config for srs to delivery realtime RTMP stream
# @see https://github.com/ossrs/srs/wiki/v2_CN_SampleRealtime
# @see full.conf for detail config.
listen 1935;
max_connections 1000;
daemon off;
srs_log_tank console;
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
}
vhost __defaultVhost__ {
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
tcp_nodelay on
min_latency on;
play {
gop_cache off;
queue_length 10;
mw_latency 100;
}
publish {
mr off;
}
}

7
trunk/configure vendored

@ -447,7 +447,7 @@ mv ${SRS_WORKDIR}/${SRS_MAKEFILE} ${SRS_WORKDIR}/${SRS_MAKEFILE}.bk
# generate phony header
cat << END > ${SRS_WORKDIR}/${SRS_MAKEFILE}
.PHONY: default _default install help clean destroy server srs_ingest_hls utest _prepare_dir $__mphonys
.PHONY: default all _default install help clean destroy server srs_ingest_hls utest _prepare_dir $__mphonys
.PHONY: clean_srs clean_modules clean_openssl clean_srtp2 clean_opus clean_ffmpeg clean_st
.PHONY: st ffmpeg
@ -462,8 +462,9 @@ CXXFLAGS = ${CXXFLAGS}
SRS_PREFIX=${SRS_PREFIX}
__REAL_INSTALL=\$(DESTDIR)\$(SRS_PREFIX)
default:
\$(MAKE) _default
default: server
all: _default
END

File diff suppressed because it is too large Load Diff

@ -47,6 +47,9 @@ function SrsRtcPublisherAsync() {
self.pc.addTransceiver("audio", {direction: "sendonly"});
self.pc.addTransceiver("video", {direction: "sendonly"});
if (!navigator.mediaDevices && window.location.protocol === 'http:' && window.location.hostname !== 'localhost') {
throw new Error(`Please use HTTPS or localhost to publish, read https://github.com/ossrs/srs/issues/2762#issuecomment-983147576`);
}
var stream = await navigator.mediaDevices.getUserMedia(self.constraints);
// @see https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream#Migrating_to_addTrack

@ -17,6 +17,8 @@ MIPS=NO
#
EMBEDED=NO
JOBS=1
#
SRS_TAG=
##################################################################################
##################################################################################
@ -27,12 +29,13 @@ do
case "$option" in
-*=*)
value=`echo "$option" | sed -e 's|[-_a-zA-Z0-9/]*=||'`
option=`echo "$option" | sed -e 's|=[-_a-zA-Z0-9/~]*||'`
option=`echo "$option" | awk -F '=' '{print $1}'`
;;
*) value="" ;;
esac
case "$option" in
-h) help=yes ;;
--help) help=yes ;;
--x86-x64) X86_X64=YES ;;
@ -41,6 +44,7 @@ do
--arm) ARM=YES ;;
--pi) PI=YES ;;
--jobs) JOBS=$value ;;
--tag) SRS_TAG=$value ;;
*)
echo "$0: error: invalid option \"$option\", @see $0 --help"
@ -51,14 +55,15 @@ done
if [ $help = yes ]; then
cat << END
--help print this message
--help Print this message
--x86-x64 for x86-x64 platform, configure/make/package.
--arm for arm cross-build platform, configure/make/package.
--mips for mips cross-build platform, configure/make/package.
--pi for pi platform, configure/make/package.
--x86-64 alias for --x86-x64.
--x86-x64 For x86-x64 platform, configure/make/package.
--x86-64 Alias for --x86-x64.
--arm For arm cross-build platform, configure/make/package.
--mips For mips cross-build platform, configure/make/package.
--pi For pi platform, configure/make/package.
--jobs Set the configure and make jobs.
--tag Set the version in zip file.
END
exit 0
fi
@ -116,7 +121,7 @@ ok_msg "real os is ${os_name}-${os_major_version} ${os_release} ${os_machine}"
# build srs
# @see https://github.com/ossrs/srs/wiki/v1_CN_Build
ok_msg "start build srs, ARM: $ARM, MIPS: $MIPS, PI: $PI, X86_64: $X86_X64, JOBS: $JOBS"
ok_msg "start build srs, ARM: $ARM, MIPS: $MIPS, PI: $PI, X86_64: $X86_X64, JOBS: $JOBS, TAG: $SRS_TAG"
if [ $ARM = YES ]; then
(
cd $work_dir &&
@ -174,15 +179,18 @@ fi
ok_msg "machine: $os_machine"
# generate zip dir and zip filename
if [ $EMBEDED = YES ]; then
srs_version_major=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_MAJOR'| awk '{print $3}'|xargs echo` &&
srs_version_minor=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_MINOR'| awk '{print $3}'|xargs echo` &&
srs_version_revision=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_REVISION'| awk '{print $3}'|xargs echo` &&
srs_version=$srs_version_major.$srs_version_minor.$srs_version_revision
else
srs_version=`${build_objs}/srs -v 2>/dev/stdout 1>/dev/null`
srs_version=$SRS_TAG
if [[ $srs_version == '' ]]; then
if [ $EMBEDED = YES ]; then
srs_version_major=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_MAJOR'| awk '{print $3}'|xargs echo` &&
srs_version_minor=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_MINOR'| awk '{print $3}'|xargs echo` &&
srs_version_revision=`cat $work_dir/src/core/srs_core.hpp| grep '#define VERSION_REVISION'| awk '{print $3}'|xargs echo` &&
srs_version=$srs_version_major.$srs_version_minor.$srs_version_revision
else
srs_version=`${build_objs}/srs -v 2>/dev/stdout 1>/dev/null`
fi
ret=$?; if [[ 0 -ne ${ret} ]]; then failed_msg "get srs version failed"; exit $ret; fi
fi
ret=$?; if [[ 0 -ne ${ret} ]]; then failed_msg "get srs version failed"; exit $ret; fi
ok_msg "get srs version $srs_version"
zip_dir="SRS-${os_name}${os_major_version}-${os_machine}-${srs_version}"

@ -1,12 +0,0 @@
#!/bin/bash
echo "Usage: $0 [-jN]"
echo " -jN The make jobs, for example, -j8 to use 8cpu to make"
params="$@"
echo "params is: $params"
bash scripts/test_configure.sh $params && ./objs/srs_utest
ret=$?; if [[ 0 -ne $ret ]]; then echo "configure test and utest failed."; exit $ret; fi
echo "configure test and utest success";

@ -9,6 +9,6 @@
#define VERSION_MAJOR 4
#define VERSION_MINOR 0
#define VERSION_REVISION 198
#define VERSION_REVISION 201
#endif

Loading…
Cancel
Save