diff --git a/LICENSE.DUAL b/LICENSE.DUAL
deleted file mode 100644
index 60627ca141..0000000000
--- a/LICENSE.DUAL
+++ /dev/null
@@ -1,35 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2023 The SRS Authors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------------------------
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT or MulanPSL-2.0
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
-
-For MIT, please read https://spdx.org/licenses/MIT.html
-
-For MulanPSL-2.0, please read https://spdx.org/licenses/MulanPSL-2.0.html
-and note that MulanPSL-2.0 is compatible with Apache-2.0, please see
-https://www.apache.org/legal/resolved.html#category-a
diff --git a/LICENSE.MulanPSL2 b/LICENSE.MulanPSL2
deleted file mode 100644
index 8da2c7685a..0000000000
--- a/LICENSE.MulanPSL2
+++ /dev/null
@@ -1,9 +0,0 @@
-Copyright (c) 2013-2023 The SRS Authors
-SRS is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
- http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details.
\ No newline at end of file
diff --git a/README.md b/README.md
index dd7ced66f0..b8ba364ea7 100755
--- a/README.md
+++ b/README.md
@@ -26,10 +26,8 @@ and essential [features](trunk/doc/Features.md#features).
> Note: For more details on the single-node architecture for SRS, please visit the following [link](https://www.figma.com/file/333POxVznQ8Wz1Rxlppn36/SRS-4.0-Server-Arch).
-SRS is licenced under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE) by default, and SRS is also licensed
-under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE) or [MulanPSL-2.0](https://spdx.org/licenses/MulanPSL-2.0.html).
-Please note that [MulanPSL-2.0 is compatible with Apache-2.0](https://www.apache.org/legal/resolved.html#category-a),
-and some third-party libraries are distributed under their [licenses](https://ossrs.io/lts/en-us/license).
+SRS is licenced under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE), and some third-party libraries are
+distributed under their [licenses](https://ossrs.io/lts/en-us/license).
@@ -121,9 +119,8 @@ To stay in touch and keep helping our community, please check out this [guide](h
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fossrs%2Fsrs.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2Fossrs%2Fsrs?ref=badge_small)
-SRS is licenced under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE) or [MulanPSL-2.0](https://spdx.org/licenses/MulanPSL-2.0.html).
-Please note that while [MulanPSL-2.0 is compatible with Apache-2.0](https://www.apache.org/legal/resolved.html#category-a),
-some third-party libraries are distributed under their [licenses](https://ossrs.io/lts/en-us/license).
+SRS is licenced under [MIT](https://github.com/ossrs/srs/blob/develop/LICENSE), and some third-party libraries are
+distributed under their [licenses](https://ossrs.io/lts/en-us/license).
[![](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fossrs%2Fsrs.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fossrs%2Fsrs?ref=badge_large)
@@ -132,6 +129,7 @@ some third-party libraries are distributed under their [licenses](https://ossrs.
* 2023-09-28, [Release v6.0-d2](https://github.com/ossrs/srs/releases/tag/v6.0-d2), v6.0-d2, 6.0 dev2, v6.0.85, 167509 lines.
* 2023-08-31, [Release v6.0-d1](https://github.com/ossrs/srs/releases/tag/v6.0-d1), v6.0-d1, 6.0 dev1, v6.0.72, 167135 lines.
* 2023-07-09, [Release v6.0-d0](https://github.com/ossrs/srs/releases/tag/v6.0-d0), v6.0-d0, 6.0 dev0, v6.0.59, 166739 lines.
+* 2023-10-25, [Release v5.0-b6](https://github.com/ossrs/srs/releases/tag/v5.0-b6), v5.0-b6, 5.0 beta6, v5.0.195, 163303 lines.
* 2023-09-28, [Release v5.0-b5](https://github.com/ossrs/srs/releases/tag/v5.0-b5), v5.0-b5, 5.0 beta5, v5.0.185, 163254 lines.
* 2023-08-31, [Release v5.0-b4](https://github.com/ossrs/srs/releases/tag/v5.0-b4), v5.0-b4, 5.0 beta4, v5.0.176, 162919 lines.
* 2023-08-02, [Release v5.0-b3](https://github.com/ossrs/srs/releases/tag/v5.0-b3), v5.0-b3, 5.0 beta3, v5.0.170, 162704 lines.
diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh
index ea7d834f67..8c33d58395 100755
--- a/trunk/auto/depends.sh
+++ b/trunk/auto/depends.sh
@@ -444,7 +444,10 @@ fi
#####################################################################################
# srtp
#####################################################################################
-if [[ $SRS_RTC == YES ]]; then
+if [[ $SRS_RTC == YES && $SRS_USE_SYS_SRTP == YES ]]; then
+ echo "Warning: Use system libsrtp, without compiling srtp."
+fi
+if [[ $SRS_RTC == YES && $SRS_USE_SYS_SRTP == NO ]]; then
SRTP_OPTIONS=""
# To eliminate warnings, see https://stackoverflow.com/a/34208904/17679565
# was built for newer macOS version (11.6) than being linked (11.0)
@@ -513,7 +516,7 @@ fi
# For cross build, we use opus of FFmpeg, so we don't build the libopus.
if [[ $SRS_RTC == YES && $SRS_FFMPEG_OPUS != YES ]]; then
# Only build static libraries if no shared FFmpeg.
- if [[ $SRS_SHARED_FFMPEG == NO ]]; then
+ if [[ $SRS_SHARED_FFMPEG != YES ]]; then
OPUS_OPTIONS="--disable-shared --disable-doc"
fi
if [[ $OS_IS_LOONGARCH64 == YES ]]; then
@@ -542,7 +545,10 @@ fi
#####################################################################################
# ffmpeg-fit, for WebRTC to transcode AAC with Opus.
#####################################################################################
-if [[ $SRS_FFMPEG_FIT == YES ]]; then
+if [[ $SRS_FFMPEG_FIT == YES && $SRS_USE_SYS_FFMPEG == YES ]]; then
+ echo "Warning: Use system ffmpeg, without compiling ffmpeg."
+fi
+if [[ $SRS_FFMPEG_FIT == YES && $SRS_USE_SYS_FFMPEG == NO ]]; then
FFMPEG_CONFIGURE="env SRS_FFMPEG_FIT=on"
if [[ $SRS_FFMPEG_OPUS != YES ]]; then
FFMPEG_CONFIGURE="$FFMPEG_CONFIGURE PKG_CONFIG_PATH=${SRS_DEPENDS_LIBS}/opus/lib/pkgconfig"
@@ -659,7 +665,10 @@ fi
#####################################################################################
# SRT module, https://github.com/ossrs/srs/issues/1147#issuecomment-577469119
#####################################################################################
-if [[ $SRS_SRT == YES ]]; then
+if [[ $SRS_SRT == YES && $SRS_USE_SYS_SRT == YES ]]; then
+ echo "Warning: Use system libsrt, without compiling srt."
+fi
+if [[ $SRS_SRT == YES && $SRS_USE_SYS_SRT == NO ]]; then
# Always disable c++11 for libsrt, because only the srt-app requres it.
LIBSRT_OPTIONS="--enable-apps=0 --enable-static=1 --enable-c++11=0"
if [[ $SRS_SHARED_SRT == YES ]]; then
diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh
index 5724ce8185..9d924d309c 100755
--- a/trunk/auto/options.sh
+++ b/trunk/auto/options.sh
@@ -37,7 +37,7 @@ SRS_FFMPEG_TOOL=NO
# FFmpeg fit is the source code for RTC, to transcode audio or video in SRS.
SRS_FFMPEG_FIT=RESERVED
# Whether use FFmpeg native opus codec for RTC. If not, use libopus instead.
-SRS_FFMPEG_OPUS=NO
+SRS_FFMPEG_OPUS=YES
# arguments
SRS_PREFIX=/usr/local/srs
SRS_DEFAULT_CONFIG=conf/srs.conf
@@ -50,10 +50,13 @@ SRS_STATIC=NO
SRS_SHARED_ST=NO
# If enabled, link shared libraries for libsrt.so which uses MPL license.
# See https://ossrs.net/lts/zh-cn/license#srt
-SRS_SHARED_SRT=NO
+SRS_SHARED_SRT=RESERVED
# If enabled, link shared libraries for FFmpeg which is LGPL license.
# See https://ossrs.net/lts/zh-cn/license#ffmpeg
-SRS_SHARED_FFMPEG=NO
+SRS_SHARED_FFMPEG=RESERVED
+# If enabled, link shared libraries for SRTP which is BSD license.
+# See https://ossrs.net/lts/zh-cn/license#srtp
+SRS_SHARED_SRTP=RESERVED
# whether enable the gcov
SRS_GCOV=NO
# Whether enable cloud logging and APM(Application Performance Monitor).
@@ -69,6 +72,9 @@ SRS_LOG_LEVEL_V2=YES
################################################################
# Experts options.
SRS_USE_SYS_SSL=NO # Use system ssl(-lssl) if required.
+SRS_USE_SYS_FFMPEG=NO # Use system ffmpeg if required.
+SRS_USE_SYS_SRT=NO # Use system srt(-lsrt) if required.
+SRS_USE_SYS_SRTP=NO # Use system srtp(-lsrtp) if required.
SRS_VALGRIND=NO
SRS_SANITIZER=RESERVED
SRS_SANITIZER_STATIC=NO
@@ -215,7 +221,11 @@ Experts:
--ssl-local=on|off Whether use local openssl, not system even exists. Default: $(value2switch $SRS_SSL_LOCAL)
--shared-st=on|off Use shared libraries for ST which is MPL license. Default: $(value2switch $SRS_SHARED_ST)
--shared-srt=on|off Use shared libraries for SRT which is MPL license. Default: $(value2switch $SRS_SHARED_SRT)
+ --sys-srt=on|off Do not compile srt, use system srt(-lsrt) if required. Default: $(value2switch $SRS_USE_SYS_SRT)
--shared-ffmpeg=on|off Use shared libraries for FFmpeg which is LGPL license. Default: $(value2switch $SRS_SHARED_FFMPEG)
+ --sys-ffmpeg=on|off Do not compile ffmpeg, use system ffmpeg if required. Default: $(value2switch $SRS_USE_SYS_FFMPEG)
+ --sys-srtp=on|off Do not compile srtp, use system srtp(-lsrtp) if required. Default: $(value2switch $SRS_USE_SYS_SRTP)
+ --shared-srtp=on|off Use shared libraries for SRTP which is BSD license. Default: $(value2switch $SRS_SHARED_SRTP)
--clean=on|off Whether do 'make clean' when configure. Default: $(value2switch $SRS_CLEAN)
--simulator=on|off RTC: Whether enable network simulator. Default: $(value2switch $SRS_SIMULATOR)
--generate-objs=on|off RTC: Whether generate objs and quit. Default: $(value2switch $SRS_GENERATE_OBJS)
@@ -398,7 +408,14 @@ function parse_user_option() {
--use-shared-srt) SRS_SHARED_SRT=YES ;;
--shared-st) SRS_SHARED_ST=$(switch2value $value) ;;
--shared-srt) SRS_SHARED_SRT=$(switch2value $value) ;;
+ --use-sys-srt) SRS_USE_SYS_SRT=YES ;;
+ --sys-srt) SRS_USE_SYS_SRT=$(switch2value $value) ;;
--shared-ffmpeg) SRS_SHARED_FFMPEG=$(switch2value $value) ;;
+ --use-sys-ffmpeg) SRS_USE_SYS_FFMPEG=YES ;;
+ --sys-ffmpeg) SRS_USE_SYS_FFMPEG=$(switch2value $value) ;;
+ --shared-srtp) SRS_SHARED_SRTP=$(switch2value $value) ;;
+ --use-sys-srtp) SRS_USE_SYS_SRTP=YES ;;
+ --sys-srtp) SRS_USE_SYS_SRTP=$(switch2value $value) ;;
--with-valgrind) SRS_VALGRIND=YES ;;
--without-valgrind) SRS_VALGRIND=NO ;;
@@ -521,10 +538,19 @@ function apply_auto_options() {
if [[ $SRS_RTC == YES && $SRS_FFMPEG_FIT == RESERVED ]]; then
SRS_FFMPEG_FIT=YES
fi
+ if [[ $SRS_USE_SYS_FFMPEG == YES && $SRS_SHARED_FFMPEG == RESERVED ]]; then
+ SRS_SHARED_FFMPEG=YES
+ fi
if [[ $SRS_CROSS_BUILD == YES && $SRS_FFMPEG_OPUS != YES ]]; then
echo "Enable FFmpeg native opus for cross building"
SRS_FFMPEG_OPUS=YES
fi
+ if [[ $SRS_USE_SYS_SRT == YES && $SRS_SHARED_SRT == RESERVED ]]; then
+ SRS_SHARED_SRT=YES
+ fi
+ if [[ $SRS_USE_SYS_SRTP == YES && $SRS_SHARED_SRTP == RESERVED ]]; then
+ SRS_SHARED_SRTP=YES
+ fi
# Enable asan, but disable for Centos
# @see https://github.com/ossrs/srs/issues/3347
@@ -628,6 +654,7 @@ function regenerate_options() {
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --http-api=$(value2switch $SRS_HTTP_API)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --utest=$(value2switch $SRS_UTEST)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --srt=$(value2switch $SRS_SRT)"
+ SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-srt=$(value2switch $SRS_USE_SYS_SRT)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --rtc=$(value2switch $SRS_RTC)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --h265=$(value2switch $SRS_H265)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gb28181=$(value2switch $SRS_GB28181)"
@@ -636,9 +663,11 @@ function regenerate_options() {
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --cxx14=$(value2switch $SRS_CXX14)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --backtrace=$(value2switch $SRS_BACKTRACE)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --ffmpeg-fit=$(value2switch $SRS_FFMPEG_FIT)"
+ SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-ffmpeg=$(value2switch $SRS_USE_SYS_FFMPEG)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --ffmpeg-opus=$(value2switch $SRS_FFMPEG_OPUS)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --nasm=$(value2switch $SRS_NASM)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --srtp-nasm=$(value2switch $SRS_SRTP_ASM)"
+ SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-srtp=$(value2switch $SRS_USE_SYS_SRTP)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --clean=$(value2switch $SRS_CLEAN)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gperf=$(value2switch $SRS_GPERF)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gmc=$(value2switch $SRS_GPERF_MC)"
@@ -650,6 +679,7 @@ function regenerate_options() {
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-st=$(value2switch $SRS_SHARED_ST)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srt=$(value2switch $SRS_SHARED_SRT)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-ffmpeg=$(value2switch $SRS_SHARED_FFMPEG)"
+ SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srtp=$(value2switch $SRS_SHARED_SRTP)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-verbose=$(value2switch $SRS_LOG_VERBOSE)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info=$(value2switch $SRS_LOG_INFO)"
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace=$(value2switch $SRS_LOG_TRACE)"
diff --git a/trunk/conf/rtc.tcp.only.conf b/trunk/conf/rtc.tcp.only.conf
new file mode 100644
index 0000000000..a18474c8cc
--- /dev/null
+++ b/trunk/conf/rtc.tcp.only.conf
@@ -0,0 +1,46 @@
+# WebRTC streaming config for SRS.
+# @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;
+}
+
+http_api {
+ enabled on;
+ listen 1985;
+}
+stats {
+ network 0;
+}
+rtc_server {
+ enabled on;
+ tcp {
+ enabled on;
+ listen 8000;
+ }
+ protocol tcp;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
+ candidate $CANDIDATE;
+}
+
+vhost __defaultVhost__ {
+ rtc {
+ enabled on;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
+ rtmp_to_rtc off;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
+ rtc_to_rtmp off;
+ }
+ http_remux {
+ enabled on;
+ mount [vhost]/[app]/[stream].flv;
+ }
+}
+
diff --git a/trunk/conf/rtc.tcp.udp.conf b/trunk/conf/rtc.tcp.udp.conf
new file mode 100644
index 0000000000..7fcd3a808a
--- /dev/null
+++ b/trunk/conf/rtc.tcp.udp.conf
@@ -0,0 +1,47 @@
+# WebRTC streaming config for SRS.
+# @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;
+}
+
+http_api {
+ enabled on;
+ listen 1985;
+}
+stats {
+ network 0;
+}
+rtc_server {
+ enabled on;
+ listen 8000; # UDP port
+ tcp {
+ enabled on;
+ listen 8000;
+ }
+ protocol all;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
+ candidate $CANDIDATE;
+}
+
+vhost __defaultVhost__ {
+ rtc {
+ enabled on;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
+ rtmp_to_rtc off;
+ # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
+ rtc_to_rtmp off;
+ }
+ http_remux {
+ enabled on;
+ mount [vhost]/[app]/[stream].flv;
+ }
+}
+
diff --git a/trunk/configure b/trunk/configure
index cfa2e93f48..1a1f4ead23 100755
--- a/trunk/configure
+++ b/trunk/configure
@@ -152,6 +152,10 @@ if [[ $SRS_SHARED_ST == YES ]]; then LibSTfile="-L${LibSTRoot} -lst"; fi
# srtp
if [[ $SRS_RTC == YES ]]; then
LibSrtpRoot="${SRS_OBJS}/srtp2/include"; LibSrtpFile="${SRS_OBJS}/srtp2/lib/libsrtp2.a"
+ if [[ $SRS_USE_SYS_SRTP == YES ]]; then
+ LibSrtpRoot=""; LibSrtpFile="libsrtp2.a"
+ if [[ $SRS_SHARED_SRTP == YES ]]; then LibSrtpFile="-lsrtp2"; fi
+ fi
fi
# FFMPEG for WebRTC transcoding, such as aac to opus.
@@ -167,6 +171,13 @@ if [[ $SRS_FFMPEG_FIT == YES ]]; then
LibFfmpegFile="$LibFfmpegFile -L${SRS_OBJS}/opus/lib -lopus"
fi
fi
+ if [[ $SRS_USE_SYS_FFMPEG == YES ]]; then
+ LibFfmpegRoot=""
+ LibFfmpegFile="libavcodec.a libswresample.a libavutil.a libopus.a";
+ if [[ $SRS_SHARED_FFMPEG == YES ]]; then
+ LibFfmpegFile="-lavcodec -lswresample -lavutil -lopus"
+ fi
+ fi
fi
# openssl-1.1.0e, for the RTMP complex handshake.
@@ -188,6 +199,10 @@ fi
if [[ $SRS_SRT == YES ]]; then
LibSRTRoot="${SRS_OBJS}/srt/include"; LibSRTfile="${SRS_OBJS}/srt/lib/libsrt.a"
if [[ $SRS_SHARED_SRT == YES ]]; then LibSRTfile="-L${SRS_OBJS}/srt/lib -lsrt"; fi
+ if [[ $SRS_USE_SYS_SRT == YES ]]; then
+ LibSRTRoot=""; LibSRTfile="libsrt.a"
+ if [[ $SRS_SHARED_SRT == YES ]]; then LibSRTfile="-lsrt"; fi
+ fi
fi
# the link options, always use static link
diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md
index b39cfcc9e2..20e97cd0a6 100644
--- a/trunk/doc/CHANGELOG.md
+++ b/trunk/doc/CHANGELOG.md
@@ -7,6 +7,9 @@ The changelog for SRS.
## SRS 6.0 Changelog
+* v6.0, 2023-10-25, Merge [#3845](https://github.com/ossrs/srs/pull/3845): RTC: Fix FFmpeg opus audio noisy issue. v6.0.95 (#3845)
+* v6.0, 2023-10-21, Merge [#3847](https://github.com/ossrs/srs/pull/3847): WebRTC: TCP transport should use read_fully instead of read. v6.0.94 (#3847)
+* v6.0, 2023-10-20, Merge [#3846](https://github.com/ossrs/srs/pull/3846): Added system library option for ffmpeg, srtp, srt libraries. v6.0.93 (#3846)
* v6.0, 2023-10-17, Merge [#3840](https://github.com/ossrs/srs/pull/3840): Disable asan by default. v6.0.92 (#3840)
* v6.0, 2023-10-17, Merge [#3837](https://github.com/ossrs/srs/pull/3837): Support set the ice-ufrag and ice-pwd for connectivity check. v6.0.91 (#3837)
* v6.0, 2023-10-17, Merge [#3758](https://github.com/ossrs/srs/pull/3758): Refine docker detect mechenism. v6.0.90 (#3758)
@@ -104,6 +107,9 @@ The changelog for SRS.
## SRS 5.0 Changelog
+* v5.0, 2023-10-25, Merge [#3845](https://github.com/ossrs/srs/pull/3845): RTC: Fix FFmpeg opus audio noisy issue. v5.0.195 (#3845)
+* v5.0, 2023-10-21, Merge [#3847](https://github.com/ossrs/srs/pull/3847): WebRTC: TCP transport should use read_fully instead of read. v5.0.194 (#3847)
+* v5.0, 2023-10-20, Merge [#3846](https://github.com/ossrs/srs/pull/3846): Added system library option for ffmpeg, srtp, srt libraries. v5.0.193 (#3846)
* v5.0, 2023-10-17, Merge [#3840](https://github.com/ossrs/srs/pull/3840): Disable asan by default. v5.0.192 (#3840)
* v5.0, 2023-10-17, Merge [#3837](https://github.com/ossrs/srs/pull/3837): Support set the ice-ufrag and ice-pwd for connectivity check. v5.0.191 (#3837)
* v5.0, 2023-10-17, Merge [#3758](https://github.com/ossrs/srs/pull/3758): Refine docker detect mechenism. v5.0.190 (#3758)
diff --git a/trunk/ide/srs_clion/CMakeLists.txt b/trunk/ide/srs_clion/CMakeLists.txt
index fbaa133c29..deb36a5df9 100755
--- a/trunk/ide/srs_clion/CMakeLists.txt
+++ b/trunk/ide/srs_clion/CMakeLists.txt
@@ -44,7 +44,6 @@ set(DEPS_LIBS ${SRS_DIR}/objs/st/libst.a
${SRS_DIR}/objs/srtp2/lib/libsrtp2.a
${SRS_DIR}/objs/ffmpeg/lib/libavcodec.a
${SRS_DIR}/objs/ffmpeg/lib/libavutil.a
- ${SRS_DIR}/objs/opus/lib/libopus.a
${SRS_DIR}/objs/ffmpeg/lib/libswresample.a
${SRS_DIR}/objs/srt/lib/libsrt.a)
foreach(DEPS_LIB ${DEPS_LIBS})
diff --git a/trunk/src/app/srs_app_async_call.cpp b/trunk/src/app/srs_app_async_call.cpp
index e7da8d0f0a..7fded0aaa8 100644
--- a/trunk/src/app/srs_app_async_call.cpp
+++ b/trunk/src/app/srs_app_async_call.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_async_call.hpp b/trunk/src/app/srs_app_async_call.hpp
index 280b12d850..ca38249623 100644
--- a/trunk/src/app/srs_app_async_call.hpp
+++ b/trunk/src/app/srs_app_async_call.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_ASYNC_CALL_HPP
diff --git a/trunk/src/app/srs_app_caster_flv.cpp b/trunk/src/app/srs_app_caster_flv.cpp
index a2770f8258..81037c7295 100644
--- a/trunk/src/app/srs_app_caster_flv.cpp
+++ b/trunk/src/app/srs_app_caster_flv.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_caster_flv.hpp b/trunk/src/app/srs_app_caster_flv.hpp
index fafae151b4..4532c46995 100644
--- a/trunk/src/app/srs_app_caster_flv.hpp
+++ b/trunk/src/app/srs_app_caster_flv.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_CASTER_FLV_HPP
diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp
index 71bca7413a..a2d3c401f7 100644
--- a/trunk/src/app/srs_app_config.cpp
+++ b/trunk/src/app/srs_app_config.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_config.hpp b/trunk/src/app/srs_app_config.hpp
index 1f1ae9c2e9..13f341e8b6 100644
--- a/trunk/src/app/srs_app_config.hpp
+++ b/trunk/src/app/srs_app_config.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_CONFIG_HPP
diff --git a/trunk/src/app/srs_app_conn.cpp b/trunk/src/app/srs_app_conn.cpp
index 89fbb1112c..4aa0173259 100644
--- a/trunk/src/app/srs_app_conn.cpp
+++ b/trunk/src/app/srs_app_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_conn.hpp b/trunk/src/app/srs_app_conn.hpp
index 2154cc6f99..955f5b6bc8 100644
--- a/trunk/src/app/srs_app_conn.hpp
+++ b/trunk/src/app/srs_app_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_CONN_HPP
diff --git a/trunk/src/app/srs_app_coworkers.cpp b/trunk/src/app/srs_app_coworkers.cpp
index e06bb36926..0c30c92174 100644
--- a/trunk/src/app/srs_app_coworkers.cpp
+++ b/trunk/src/app/srs_app_coworkers.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_coworkers.hpp b/trunk/src/app/srs_app_coworkers.hpp
index bfb6d07cf5..89dd8492cb 100644
--- a/trunk/src/app/srs_app_coworkers.hpp
+++ b/trunk/src/app/srs_app_coworkers.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_COWORKERS_HPP
diff --git a/trunk/src/app/srs_app_dash.cpp b/trunk/src/app/srs_app_dash.cpp
index d2dd6c1553..4d647a336c 100644
--- a/trunk/src/app/srs_app_dash.cpp
+++ b/trunk/src/app/srs_app_dash.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_dash.hpp b/trunk/src/app/srs_app_dash.hpp
index f72bf93ca8..0bc26a0d5d 100644
--- a/trunk/src/app/srs_app_dash.hpp
+++ b/trunk/src/app/srs_app_dash.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_DASH_HPP
diff --git a/trunk/src/app/srs_app_dvr.cpp b/trunk/src/app/srs_app_dvr.cpp
index 7e1d3bd47a..83fe49dfef 100644
--- a/trunk/src/app/srs_app_dvr.cpp
+++ b/trunk/src/app/srs_app_dvr.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_dvr.hpp b/trunk/src/app/srs_app_dvr.hpp
index cc97a9e158..daf6140239 100644
--- a/trunk/src/app/srs_app_dvr.hpp
+++ b/trunk/src/app/srs_app_dvr.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_DVR_HPP
diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp
index c8dd18bec6..9b706000a1 100644
--- a/trunk/src/app/srs_app_edge.cpp
+++ b/trunk/src/app/srs_app_edge.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_edge.hpp b/trunk/src/app/srs_app_edge.hpp
index 72c5040f6c..c9a7fae4a4 100644
--- a/trunk/src/app/srs_app_edge.hpp
+++ b/trunk/src/app/srs_app_edge.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_EDGE_HPP
diff --git a/trunk/src/app/srs_app_empty.cpp b/trunk/src/app/srs_app_empty.cpp
index 78b5c54185..cb4342a12e 100644
--- a/trunk/src/app/srs_app_empty.cpp
+++ b/trunk/src/app/srs_app_empty.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_empty.hpp b/trunk/src/app/srs_app_empty.hpp
index f516b3d1a9..d3aae5d9fb 100644
--- a/trunk/src/app/srs_app_empty.hpp
+++ b/trunk/src/app/srs_app_empty.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_EMPTY_HPP
diff --git a/trunk/src/app/srs_app_encoder.cpp b/trunk/src/app/srs_app_encoder.cpp
index 3285ec2074..432fdb3380 100644
--- a/trunk/src/app/srs_app_encoder.cpp
+++ b/trunk/src/app/srs_app_encoder.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_encoder.hpp b/trunk/src/app/srs_app_encoder.hpp
index f132fec6ec..f78851cc9f 100644
--- a/trunk/src/app/srs_app_encoder.hpp
+++ b/trunk/src/app/srs_app_encoder.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_ENCODER_HPP
diff --git a/trunk/src/app/srs_app_ffmpeg.cpp b/trunk/src/app/srs_app_ffmpeg.cpp
index 78416a3f46..d77336d7f3 100644
--- a/trunk/src/app/srs_app_ffmpeg.cpp
+++ b/trunk/src/app/srs_app_ffmpeg.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_ffmpeg.hpp b/trunk/src/app/srs_app_ffmpeg.hpp
index 823e6abe8c..e4c006c583 100644
--- a/trunk/src/app/srs_app_ffmpeg.hpp
+++ b/trunk/src/app/srs_app_ffmpeg.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_FFMPEG_HPP
diff --git a/trunk/src/app/srs_app_forward.cpp b/trunk/src/app/srs_app_forward.cpp
index 0cac78116f..d64b02eae0 100755
--- a/trunk/src/app/srs_app_forward.cpp
+++ b/trunk/src/app/srs_app_forward.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_forward.hpp b/trunk/src/app/srs_app_forward.hpp
index 8074520b0c..15f25de5b8 100644
--- a/trunk/src/app/srs_app_forward.hpp
+++ b/trunk/src/app/srs_app_forward.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_FORWARD_HPP
diff --git a/trunk/src/app/srs_app_fragment.cpp b/trunk/src/app/srs_app_fragment.cpp
index c8c940ccda..c5380a27c0 100644
--- a/trunk/src/app/srs_app_fragment.cpp
+++ b/trunk/src/app/srs_app_fragment.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_fragment.hpp b/trunk/src/app/srs_app_fragment.hpp
index 56703d2e77..e72e0de7fe 100644
--- a/trunk/src/app/srs_app_fragment.hpp
+++ b/trunk/src/app/srs_app_fragment.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_FRAGMENT_HPP
diff --git a/trunk/src/app/srs_app_gb28181.cpp b/trunk/src/app/srs_app_gb28181.cpp
index 32a5a3dba1..420fd6c146 100644
--- a/trunk/src/app/srs_app_gb28181.cpp
+++ b/trunk/src/app/srs_app_gb28181.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_gb28181.hpp b/trunk/src/app/srs_app_gb28181.hpp
index 8876ed7bd4..a8eda1f24a 100644
--- a/trunk/src/app/srs_app_gb28181.hpp
+++ b/trunk/src/app/srs_app_gb28181.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_GB28181_HPP
diff --git a/trunk/src/app/srs_app_hds.cpp b/trunk/src/app/srs_app_hds.cpp
index 54445d90c2..1cbad15fc4 100644
--- a/trunk/src/app/srs_app_hds.cpp
+++ b/trunk/src/app/srs_app_hds.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_hds.hpp b/trunk/src/app/srs_app_hds.hpp
index c0f978373a..4dcaddca79 100644
--- a/trunk/src/app/srs_app_hds.hpp
+++ b/trunk/src/app/srs_app_hds.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HDS_HPP
diff --git a/trunk/src/app/srs_app_heartbeat.cpp b/trunk/src/app/srs_app_heartbeat.cpp
index 898ff791df..692472e667 100644
--- a/trunk/src/app/srs_app_heartbeat.cpp
+++ b/trunk/src/app/srs_app_heartbeat.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_heartbeat.hpp b/trunk/src/app/srs_app_heartbeat.hpp
index 94c98f1a13..d8ea8c1a4e 100644
--- a/trunk/src/app/srs_app_heartbeat.hpp
+++ b/trunk/src/app/srs_app_heartbeat.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HEARTBEAT_HPP
diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp
index fff731eb7f..2d33688a03 100644
--- a/trunk/src/app/srs_app_hls.cpp
+++ b/trunk/src/app/srs_app_hls.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_hls.hpp b/trunk/src/app/srs_app_hls.hpp
index 8b74f48db1..ff45cbb126 100644
--- a/trunk/src/app/srs_app_hls.hpp
+++ b/trunk/src/app/srs_app_hls.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HLS_HPP
diff --git a/trunk/src/app/srs_app_hourglass.cpp b/trunk/src/app/srs_app_hourglass.cpp
index b60c5116df..b44a635a6f 100644
--- a/trunk/src/app/srs_app_hourglass.cpp
+++ b/trunk/src/app/srs_app_hourglass.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_hourglass.hpp b/trunk/src/app/srs_app_hourglass.hpp
index d49ebed0ec..8f35edd9d7 100644
--- a/trunk/src/app/srs_app_hourglass.hpp
+++ b/trunk/src/app/srs_app_hourglass.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HOURGLASS_HPP
diff --git a/trunk/src/app/srs_app_http_api.cpp b/trunk/src/app/srs_app_http_api.cpp
index 8c6d16385d..e33b0c8361 100644
--- a/trunk/src/app/srs_app_http_api.cpp
+++ b/trunk/src/app/srs_app_http_api.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_api.hpp b/trunk/src/app/srs_app_http_api.hpp
index c2be079cad..23bddbe5a0 100644
--- a/trunk/src/app/srs_app_http_api.hpp
+++ b/trunk/src/app/srs_app_http_api.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_API_HPP
diff --git a/trunk/src/app/srs_app_http_client.cpp b/trunk/src/app/srs_app_http_client.cpp
index 0219258ed5..de1ad15230 100644
--- a/trunk/src/app/srs_app_http_client.cpp
+++ b/trunk/src/app/srs_app_http_client.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_client.hpp b/trunk/src/app/srs_app_http_client.hpp
index adab5a8ca2..3628645d6d 100644
--- a/trunk/src/app/srs_app_http_client.hpp
+++ b/trunk/src/app/srs_app_http_client.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_CLIENT_HPP
diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp
index b040bb79a9..e4e5e11d1e 100644
--- a/trunk/src/app/srs_app_http_conn.cpp
+++ b/trunk/src/app/srs_app_http_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_conn.hpp b/trunk/src/app/srs_app_http_conn.hpp
index 7c33b1c8b8..e87fa3ddbe 100644
--- a/trunk/src/app/srs_app_http_conn.hpp
+++ b/trunk/src/app/srs_app_http_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_CONN_HPP
diff --git a/trunk/src/app/srs_app_http_hooks.cpp b/trunk/src/app/srs_app_http_hooks.cpp
index 7e9c93b5c2..cd976c5240 100644
--- a/trunk/src/app/srs_app_http_hooks.cpp
+++ b/trunk/src/app/srs_app_http_hooks.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_hooks.hpp b/trunk/src/app/srs_app_http_hooks.hpp
index 07465a4c69..1bae00fec7 100644
--- a/trunk/src/app/srs_app_http_hooks.hpp
+++ b/trunk/src/app/srs_app_http_hooks.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_HOOKS_HPP
diff --git a/trunk/src/app/srs_app_http_static.cpp b/trunk/src/app/srs_app_http_static.cpp
index 89299c5a6b..a1e7b93c89 100644
--- a/trunk/src/app/srs_app_http_static.cpp
+++ b/trunk/src/app/srs_app_http_static.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_static.hpp b/trunk/src/app/srs_app_http_static.hpp
index 7fd83b67b2..4d9da18537 100644
--- a/trunk/src/app/srs_app_http_static.hpp
+++ b/trunk/src/app/srs_app_http_static.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_STATIC_HPP
diff --git a/trunk/src/app/srs_app_http_stream.cpp b/trunk/src/app/srs_app_http_stream.cpp
index 2cb0276fe6..eaa1984f3f 100755
--- a/trunk/src/app/srs_app_http_stream.cpp
+++ b/trunk/src/app/srs_app_http_stream.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_http_stream.hpp b/trunk/src/app/srs_app_http_stream.hpp
index 4f57bdfa6f..0264f60698 100755
--- a/trunk/src/app/srs_app_http_stream.hpp
+++ b/trunk/src/app/srs_app_http_stream.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HTTP_STREAM_HPP
diff --git a/trunk/src/app/srs_app_hybrid.cpp b/trunk/src/app/srs_app_hybrid.cpp
index 416ff6c5b5..b1fa4133ad 100644
--- a/trunk/src/app/srs_app_hybrid.cpp
+++ b/trunk/src/app/srs_app_hybrid.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_hybrid.hpp b/trunk/src/app/srs_app_hybrid.hpp
index 95f120aaf5..b8ef9a69ee 100644
--- a/trunk/src/app/srs_app_hybrid.hpp
+++ b/trunk/src/app/srs_app_hybrid.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_HYBRID_HPP
diff --git a/trunk/src/app/srs_app_ingest.cpp b/trunk/src/app/srs_app_ingest.cpp
index 1939e5a011..df89b900c0 100644
--- a/trunk/src/app/srs_app_ingest.cpp
+++ b/trunk/src/app/srs_app_ingest.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_ingest.hpp b/trunk/src/app/srs_app_ingest.hpp
index 42b5043eb7..741990d261 100644
--- a/trunk/src/app/srs_app_ingest.hpp
+++ b/trunk/src/app/srs_app_ingest.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_INGEST_HPP
diff --git a/trunk/src/app/srs_app_latest_version.cpp b/trunk/src/app/srs_app_latest_version.cpp
index 9795fae372..2e4eda7b83 100644
--- a/trunk/src/app/srs_app_latest_version.cpp
+++ b/trunk/src/app/srs_app_latest_version.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_latest_version.hpp b/trunk/src/app/srs_app_latest_version.hpp
index fccbb51b98..da4cc775c2 100644
--- a/trunk/src/app/srs_app_latest_version.hpp
+++ b/trunk/src/app/srs_app_latest_version.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_LATEST_VERSION_HPP
diff --git a/trunk/src/app/srs_app_listener.cpp b/trunk/src/app/srs_app_listener.cpp
index 1c6280742a..ff66258dad 100755
--- a/trunk/src/app/srs_app_listener.cpp
+++ b/trunk/src/app/srs_app_listener.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_listener.hpp b/trunk/src/app/srs_app_listener.hpp
index e1292b1c47..6dea65e239 100644
--- a/trunk/src/app/srs_app_listener.hpp
+++ b/trunk/src/app/srs_app_listener.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_LISTENER_HPP
diff --git a/trunk/src/app/srs_app_log.cpp b/trunk/src/app/srs_app_log.cpp
index 9de8e51f29..ba38e8d8fc 100644
--- a/trunk/src/app/srs_app_log.cpp
+++ b/trunk/src/app/srs_app_log.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_log.hpp b/trunk/src/app/srs_app_log.hpp
index 3beb46fccf..4a425f6a87 100644
--- a/trunk/src/app/srs_app_log.hpp
+++ b/trunk/src/app/srs_app_log.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_LOG_HPP
diff --git a/trunk/src/app/srs_app_mpegts_udp.cpp b/trunk/src/app/srs_app_mpegts_udp.cpp
index 407e631949..2cacd22783 100644
--- a/trunk/src/app/srs_app_mpegts_udp.cpp
+++ b/trunk/src/app/srs_app_mpegts_udp.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_mpegts_udp.hpp b/trunk/src/app/srs_app_mpegts_udp.hpp
index 2759c937a7..0a234a762b 100644
--- a/trunk/src/app/srs_app_mpegts_udp.hpp
+++ b/trunk/src/app/srs_app_mpegts_udp.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_MPEGTS_UDP_HPP
diff --git a/trunk/src/app/srs_app_ng_exec.cpp b/trunk/src/app/srs_app_ng_exec.cpp
index 986319e925..827012d54b 100644
--- a/trunk/src/app/srs_app_ng_exec.cpp
+++ b/trunk/src/app/srs_app_ng_exec.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_ng_exec.hpp b/trunk/src/app/srs_app_ng_exec.hpp
index e595bc36ea..a33496ec9c 100644
--- a/trunk/src/app/srs_app_ng_exec.hpp
+++ b/trunk/src/app/srs_app_ng_exec.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_NG_EXEC_HPP
diff --git a/trunk/src/app/srs_app_pithy_print.cpp b/trunk/src/app/srs_app_pithy_print.cpp
index 32f2682a5b..3f6ebf8637 100644
--- a/trunk/src/app/srs_app_pithy_print.cpp
+++ b/trunk/src/app/srs_app_pithy_print.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_pithy_print.hpp b/trunk/src/app/srs_app_pithy_print.hpp
index 99052b3bb9..55ab8fd65a 100644
--- a/trunk/src/app/srs_app_pithy_print.hpp
+++ b/trunk/src/app/srs_app_pithy_print.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_PITHY_PRINT_HPP
diff --git a/trunk/src/app/srs_app_process.cpp b/trunk/src/app/srs_app_process.cpp
index 08dda616d9..ed50821ef9 100644
--- a/trunk/src/app/srs_app_process.cpp
+++ b/trunk/src/app/srs_app_process.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_process.hpp b/trunk/src/app/srs_app_process.hpp
index 428fdd2f5b..02a6e97598 100644
--- a/trunk/src/app/srs_app_process.hpp
+++ b/trunk/src/app/srs_app_process.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_PROCESS_HPP
diff --git a/trunk/src/app/srs_app_recv_thread.cpp b/trunk/src/app/srs_app_recv_thread.cpp
index 06ff2133a8..976b09eed0 100644
--- a/trunk/src/app/srs_app_recv_thread.cpp
+++ b/trunk/src/app/srs_app_recv_thread.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_recv_thread.hpp b/trunk/src/app/srs_app_recv_thread.hpp
index 1bb22a9eae..305e878f76 100644
--- a/trunk/src/app/srs_app_recv_thread.hpp
+++ b/trunk/src/app/srs_app_recv_thread.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RECV_THREAD_HPP
diff --git a/trunk/src/app/srs_app_refer.cpp b/trunk/src/app/srs_app_refer.cpp
index 0ac0bc3562..9540b895dd 100644
--- a/trunk/src/app/srs_app_refer.cpp
+++ b/trunk/src/app/srs_app_refer.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_refer.hpp b/trunk/src/app/srs_app_refer.hpp
index 0f11b4e963..c313faf585 100644
--- a/trunk/src/app/srs_app_refer.hpp
+++ b/trunk/src/app/srs_app_refer.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_REFER_HPP
diff --git a/trunk/src/app/srs_app_reload.cpp b/trunk/src/app/srs_app_reload.cpp
index 0d79c5b4f1..267cfadd9c 100644
--- a/trunk/src/app/srs_app_reload.cpp
+++ b/trunk/src/app/srs_app_reload.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_reload.hpp b/trunk/src/app/srs_app_reload.hpp
index bf626ed3df..f3f5dfdc10 100644
--- a/trunk/src/app/srs_app_reload.hpp
+++ b/trunk/src/app/srs_app_reload.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RELOAD_HPP
diff --git a/trunk/src/app/srs_app_rtc_api.cpp b/trunk/src/app/srs_app_rtc_api.cpp
index f0ec34469a..b0d695c4a3 100644
--- a/trunk/src/app/srs_app_rtc_api.cpp
+++ b/trunk/src/app/srs_app_rtc_api.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_api.hpp b/trunk/src/app/srs_app_rtc_api.hpp
index 4df5cf0d78..a4797f7a9c 100644
--- a/trunk/src/app/srs_app_rtc_api.hpp
+++ b/trunk/src/app/srs_app_rtc_api.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_API_HPP
diff --git a/trunk/src/app/srs_app_rtc_codec.cpp b/trunk/src/app/srs_app_rtc_codec.cpp
index 840ace5253..338e065914 100644
--- a/trunk/src/app/srs_app_rtc_codec.cpp
+++ b/trunk/src/app/srs_app_rtc_codec.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
@@ -242,7 +242,7 @@ srs_error_t SrsAudioTranscoder::init_enc(SrsAudioCodecId dst_codec, int dst_chan
enc_->channel_layout = av_get_default_channel_layout(dst_channels);
enc_->bit_rate = dst_bit_rate;
enc_->sample_fmt = codec->sample_fmts[0];
- enc_->time_base.num = 1; enc_->time_base.den = 1000; // {1, 1000}
+ enc_->time_base.num = 1; enc_->time_base.den = dst_samplerate; // {1, dst_samplerate}
if (dst_codec == SrsAudioCodecIdOpus) {
//TODO: for more level setting
enc_->compression_level = 1;
@@ -261,14 +261,6 @@ srs_error_t SrsAudioTranscoder::init_enc(SrsAudioCodecId dst_codec, int dst_chan
return srs_error_new(ERROR_RTC_RTP_MUXER, "Could not allocate audio encode in frame");
}
- enc_frame_->format = enc_->sample_fmt;
- enc_frame_->nb_samples = enc_->frame_size;
- enc_frame_->channel_layout = enc_->channel_layout;
-
- if (av_frame_get_buffer(enc_frame_, 0) < 0) {
- return srs_error_new(ERROR_RTC_RTP_MUXER, "Could not get audio frame buffer");
- }
-
enc_packet_ = av_packet_alloc();
if (!enc_packet_) {
return srs_error_new(ERROR_RTC_RTP_MUXER, "Could not allocate audio encode out packet");
@@ -380,25 +372,35 @@ srs_error_t SrsAudioTranscoder::encode(std::vector &pkts)
if (next_out_pts_ == AV_NOPTS_VALUE) {
next_out_pts_ = new_pkt_pts_;
} else {
- int64_t diff = llabs(new_pkt_pts_ - next_out_pts_);
+ int64_t diff = llabs(new_pkt_pts_ - av_rescale(next_out_pts_, 1000, enc_->time_base.den));
if (diff > 1000) {
srs_trace("time diff to large=%lld, next out=%lld, new pkt=%lld, set to new pkt",
diff, next_out_pts_, new_pkt_pts_);
- next_out_pts_ = new_pkt_pts_;
+ next_out_pts_ = av_rescale(new_pkt_pts_, enc_->time_base.den, 1000);
}
}
- int frame_cnt = 0;
while (av_audio_fifo_size(fifo_) >= enc_->frame_size) {
+ enc_frame_->format = enc_->sample_fmt;
+ enc_frame_->nb_samples = enc_->frame_size;
+ enc_frame_->channel_layout = enc_->channel_layout;
+
+ if (av_frame_get_buffer(enc_frame_, 0) < 0) {
+ av_frame_free(&enc_frame_);
+ return srs_error_new(ERROR_RTC_RTP_MUXER, "Could not get audio frame buffer");
+ }
+
/* Read as many samples from the FIFO buffer as required to fill the frame.
* The samples are stored in the frame temporarily. */
if (av_audio_fifo_read(fifo_, (void **)enc_frame_->data, enc_->frame_size) < enc_->frame_size) {
+ av_frame_free(&enc_frame_);
return srs_error_new(ERROR_RTC_RTP_MUXER, "Could not read data from FIFO");
}
/* send the frame for encoding */
- enc_frame_->pts = next_out_pts_ + av_rescale(enc_->frame_size * frame_cnt, 1000, enc_->sample_rate);
- ++frame_cnt;
+ enc_frame_->pts = next_out_pts_;
+ next_out_pts_ += enc_->frame_size;
int error = avcodec_send_frame(enc_, enc_frame_);
+ av_frame_unref(enc_frame_);
if (error < 0) {
return srs_error_new(ERROR_RTC_RTP_MUXER, "Error sending the frame to the encoder(%d,%s)", error,
av_make_error_string(err_buf, AV_ERROR_MAX_STRING_SIZE, error));
@@ -419,6 +421,10 @@ srs_error_t SrsAudioTranscoder::encode(std::vector &pkts)
av_make_error_string(err_buf, AV_ERROR_MAX_STRING_SIZE, error));
}
+ // rescale time base from sample_rate 1000.
+ enc_packet_->dts = av_rescale(enc_packet_->dts, 1000, enc_->time_base.den);
+ enc_packet_->pts = av_rescale(enc_packet_->pts, 1000, enc_->time_base.den);
+
SrsAudioFrame *out_frame = new SrsAudioFrame;
char *buf = new char[enc_packet_->size];
memcpy(buf, enc_packet_->data, enc_packet_->size);
@@ -429,8 +435,6 @@ srs_error_t SrsAudioTranscoder::encode(std::vector &pkts)
}
}
- next_out_pts_ += av_rescale(enc_->frame_size * frame_cnt, 1000, enc_->sample_rate);
-
return srs_success;
}
diff --git a/trunk/src/app/srs_app_rtc_codec.hpp b/trunk/src/app/srs_app_rtc_codec.hpp
index 63304cce08..15b2203889 100644
--- a/trunk/src/app/srs_app_rtc_codec.hpp
+++ b/trunk/src/app/srs_app_rtc_codec.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_CODEC_HPP
diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp
index 9a8933bfd3..dba934a483 100644
--- a/trunk/src/app/srs_app_rtc_conn.cpp
+++ b/trunk/src/app/srs_app_rtc_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp
index 40644f8ae3..7866d63eed 100644
--- a/trunk/src/app/srs_app_rtc_conn.hpp
+++ b/trunk/src/app/srs_app_rtc_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_CONN_HPP
diff --git a/trunk/src/app/srs_app_rtc_dtls.cpp b/trunk/src/app/srs_app_rtc_dtls.cpp
index f4d68617b0..90fc006966 100644
--- a/trunk/src/app/srs_app_rtc_dtls.cpp
+++ b/trunk/src/app/srs_app_rtc_dtls.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_dtls.hpp b/trunk/src/app/srs_app_rtc_dtls.hpp
index 45839cec04..d6c053f5f0 100644
--- a/trunk/src/app/srs_app_rtc_dtls.hpp
+++ b/trunk/src/app/srs_app_rtc_dtls.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_DTLS_HPP
diff --git a/trunk/src/app/srs_app_rtc_network.cpp b/trunk/src/app/srs_app_rtc_network.cpp
index c7e71f803d..dabcf3bfea 100644
--- a/trunk/src/app/srs_app_rtc_network.cpp
+++ b/trunk/src/app/srs_app_rtc_network.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
@@ -883,7 +883,7 @@ srs_error_t SrsRtcTcpConn::read_packet(char* pkt, int* nb_pkt)
// Read length in 2 bytes @doc: https://www.rfc-editor.org/rfc/rfc4571#section-2
ssize_t nread = 0; uint8_t b[2];
- if((err = skt_->read((char*)b, sizeof(b), &nread)) != srs_success) {
+ if((err = skt_->read_fully((char*)b, sizeof(b), &nread)) != srs_success) {
return srs_error_wrap(err, "rtc tcp conn read len");
}
diff --git a/trunk/src/app/srs_app_rtc_network.hpp b/trunk/src/app/srs_app_rtc_network.hpp
index aa7cb6a4b8..44eb15395e 100644
--- a/trunk/src/app/srs_app_rtc_network.hpp
+++ b/trunk/src/app/srs_app_rtc_network.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_NETWORK_HPP
diff --git a/trunk/src/app/srs_app_rtc_queue.cpp b/trunk/src/app/srs_app_rtc_queue.cpp
index 13c2ea7db5..4dd7703b71 100644
--- a/trunk/src/app/srs_app_rtc_queue.cpp
+++ b/trunk/src/app/srs_app_rtc_queue.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_queue.hpp b/trunk/src/app/srs_app_rtc_queue.hpp
index d845d31878..bd3a512486 100644
--- a/trunk/src/app/srs_app_rtc_queue.hpp
+++ b/trunk/src/app/srs_app_rtc_queue.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_QUEUE_HPP
diff --git a/trunk/src/app/srs_app_rtc_sdp.cpp b/trunk/src/app/srs_app_rtc_sdp.cpp
index 22476ad632..3afe3ff1df 100644
--- a/trunk/src/app/srs_app_rtc_sdp.cpp
+++ b/trunk/src/app/srs_app_rtc_sdp.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_sdp.hpp b/trunk/src/app/srs_app_rtc_sdp.hpp
index cc3b558294..d9f9b4f1af 100644
--- a/trunk/src/app/srs_app_rtc_sdp.hpp
+++ b/trunk/src/app/srs_app_rtc_sdp.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_SDP_HPP
diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp
index 24fe29dd47..31ff691194 100644
--- a/trunk/src/app/srs_app_rtc_server.cpp
+++ b/trunk/src/app/srs_app_rtc_server.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_server.hpp b/trunk/src/app/srs_app_rtc_server.hpp
index 344484f02f..68de69ee4c 100644
--- a/trunk/src/app/srs_app_rtc_server.hpp
+++ b/trunk/src/app/srs_app_rtc_server.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_SERVER_HPP
diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp
index 2ca414c4e7..40bbc48dc0 100644
--- a/trunk/src/app/srs_app_rtc_source.cpp
+++ b/trunk/src/app/srs_app_rtc_source.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtc_source.hpp b/trunk/src/app/srs_app_rtc_source.hpp
index 8e8453a4e4..191e7d7ec4 100644
--- a/trunk/src/app/srs_app_rtc_source.hpp
+++ b/trunk/src/app/srs_app_rtc_source.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTC_SOURCE_HPP
diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp
index c84d448852..919bb39d01 100644
--- a/trunk/src/app/srs_app_rtmp_conn.cpp
+++ b/trunk/src/app/srs_app_rtmp_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_rtmp_conn.hpp b/trunk/src/app/srs_app_rtmp_conn.hpp
index ef7719e37f..24d4e75036 100644
--- a/trunk/src/app/srs_app_rtmp_conn.hpp
+++ b/trunk/src/app/srs_app_rtmp_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_RTMP_CONN_HPP
diff --git a/trunk/src/app/srs_app_security.cpp b/trunk/src/app/srs_app_security.cpp
index 8654202921..af4d6bec71 100644
--- a/trunk/src/app/srs_app_security.cpp
+++ b/trunk/src/app/srs_app_security.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_security.hpp b/trunk/src/app/srs_app_security.hpp
index 6c20454898..cab7cafc1e 100644
--- a/trunk/src/app/srs_app_security.hpp
+++ b/trunk/src/app/srs_app_security.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SECURITY_HPP
diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp
index 4a8e02bc7c..c22b47db90 100644
--- a/trunk/src/app/srs_app_server.cpp
+++ b/trunk/src/app/srs_app_server.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_server.hpp b/trunk/src/app/srs_app_server.hpp
index 311bccb051..505d8d29f9 100644
--- a/trunk/src/app/srs_app_server.hpp
+++ b/trunk/src/app/srs_app_server.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SERVER_HPP
diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp
index 217ffcf62f..96c0cd82b4 100755
--- a/trunk/src/app/srs_app_source.cpp
+++ b/trunk/src/app/srs_app_source.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
@@ -2721,7 +2721,7 @@ srs_error_t SrsLiveSource::consumer_dumps(SrsLiveConsumer* consumer, bool ds, bo
// print status.
if (dg) {
- srs_trace("create consumer, active=%d, queue_size=%.2f, jitter=%d", hub->active(), queue_size, jitter_algorithm);
+ srs_trace("create consumer, active=%d, queue_size=%dms, jitter=%d", hub->active(), srsu2msi(queue_size), jitter_algorithm);
} else {
srs_trace("create consumer, active=%d, ignore gop cache, jitter=%d", hub->active(), jitter_algorithm);
}
diff --git a/trunk/src/app/srs_app_source.hpp b/trunk/src/app/srs_app_source.hpp
index 0f7a57d1f4..59a97fa52f 100644
--- a/trunk/src/app/srs_app_source.hpp
+++ b/trunk/src/app/srs_app_source.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SOURCE_HPP
diff --git a/trunk/src/app/srs_app_srt_conn.cpp b/trunk/src/app/srs_app_srt_conn.cpp
index d3bc88aa23..427f567f4d 100644
--- a/trunk/src/app/srs_app_srt_conn.cpp
+++ b/trunk/src/app/srs_app_srt_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_srt_conn.hpp b/trunk/src/app/srs_app_srt_conn.hpp
index d651659f29..0b9f04884a 100644
--- a/trunk/src/app/srs_app_srt_conn.hpp
+++ b/trunk/src/app/srs_app_srt_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SRT_CONN_HPP
diff --git a/trunk/src/app/srs_app_srt_listener.cpp b/trunk/src/app/srs_app_srt_listener.cpp
index 8daef657a5..6bf4403f00 100644
--- a/trunk/src/app/srs_app_srt_listener.cpp
+++ b/trunk/src/app/srs_app_srt_listener.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_srt_listener.hpp b/trunk/src/app/srs_app_srt_listener.hpp
index d4bda92e41..e37279f599 100644
--- a/trunk/src/app/srs_app_srt_listener.hpp
+++ b/trunk/src/app/srs_app_srt_listener.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SRT_LISTENER_HPP
diff --git a/trunk/src/app/srs_app_srt_server.cpp b/trunk/src/app/srs_app_srt_server.cpp
index 5f0635e405..5811f817c7 100644
--- a/trunk/src/app/srs_app_srt_server.cpp
+++ b/trunk/src/app/srs_app_srt_server.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_srt_server.hpp b/trunk/src/app/srs_app_srt_server.hpp
index 23332d7029..0ec2857131 100644
--- a/trunk/src/app/srs_app_srt_server.hpp
+++ b/trunk/src/app/srs_app_srt_server.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SRT_SERVER_HPP
diff --git a/trunk/src/app/srs_app_srt_source.cpp b/trunk/src/app/srs_app_srt_source.cpp
index 7dde0168de..722e783927 100644
--- a/trunk/src/app/srs_app_srt_source.cpp
+++ b/trunk/src/app/srs_app_srt_source.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_srt_source.hpp b/trunk/src/app/srs_app_srt_source.hpp
index e6e8d5f3d8..8051edbe31 100644
--- a/trunk/src/app/srs_app_srt_source.hpp
+++ b/trunk/src/app/srs_app_srt_source.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SRT_SOURCE_HPP
diff --git a/trunk/src/app/srs_app_srt_utility.cpp b/trunk/src/app/srs_app_srt_utility.cpp
index 28a26834f3..0fa7fb51c8 100644
--- a/trunk/src/app/srs_app_srt_utility.cpp
+++ b/trunk/src/app/srs_app_srt_utility.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_srt_utility.hpp b/trunk/src/app/srs_app_srt_utility.hpp
index 74d2a91251..06cd74dcc8 100644
--- a/trunk/src/app/srs_app_srt_utility.hpp
+++ b/trunk/src/app/srs_app_srt_utility.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_SRT_UTILITY_HPP
diff --git a/trunk/src/app/srs_app_st.cpp b/trunk/src/app/srs_app_st.cpp
index 2e10a76c1b..0d4c49ed5f 100755
--- a/trunk/src/app/srs_app_st.cpp
+++ b/trunk/src/app/srs_app_st.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_st.hpp b/trunk/src/app/srs_app_st.hpp
index d4f0ace823..6ec5c882c9 100644
--- a/trunk/src/app/srs_app_st.hpp
+++ b/trunk/src/app/srs_app_st.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_ST_HPP
diff --git a/trunk/src/app/srs_app_statistic.cpp b/trunk/src/app/srs_app_statistic.cpp
index d5dba71584..82743b4dc2 100644
--- a/trunk/src/app/srs_app_statistic.cpp
+++ b/trunk/src/app/srs_app_statistic.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_statistic.hpp b/trunk/src/app/srs_app_statistic.hpp
index 82e6bb6f1e..3777ffa926 100644
--- a/trunk/src/app/srs_app_statistic.hpp
+++ b/trunk/src/app/srs_app_statistic.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_STATISTIC_HPP
diff --git a/trunk/src/app/srs_app_stream_bridge.cpp b/trunk/src/app/srs_app_stream_bridge.cpp
index 82eee47529..34ea1ba0ee 100644
--- a/trunk/src/app/srs_app_stream_bridge.cpp
+++ b/trunk/src/app/srs_app_stream_bridge.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_stream_bridge.hpp b/trunk/src/app/srs_app_stream_bridge.hpp
index 5af2ead10f..50a13bdae9 100644
--- a/trunk/src/app/srs_app_stream_bridge.hpp
+++ b/trunk/src/app/srs_app_stream_bridge.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_STREAM_BRIDGE_HPP
diff --git a/trunk/src/app/srs_app_tencentcloud.cpp b/trunk/src/app/srs_app_tencentcloud.cpp
index 9acc6a6fc7..e980e6fbab 100644
--- a/trunk/src/app/srs_app_tencentcloud.cpp
+++ b/trunk/src/app/srs_app_tencentcloud.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_tencentcloud.hpp b/trunk/src/app/srs_app_tencentcloud.hpp
index a88090ae4c..19109884e4 100644
--- a/trunk/src/app/srs_app_tencentcloud.hpp
+++ b/trunk/src/app/srs_app_tencentcloud.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_TENCENTCLOUD_HPP
diff --git a/trunk/src/app/srs_app_threads.cpp b/trunk/src/app/srs_app_threads.cpp
index 0eb0bb0fe6..78d540b5c9 100644
--- a/trunk/src/app/srs_app_threads.cpp
+++ b/trunk/src/app/srs_app_threads.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_threads.hpp b/trunk/src/app/srs_app_threads.hpp
index 3c2ac88b53..9e1c6f1a3f 100644
--- a/trunk/src/app/srs_app_threads.hpp
+++ b/trunk/src/app/srs_app_threads.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_THREADS_HPP
diff --git a/trunk/src/app/srs_app_utility.cpp b/trunk/src/app/srs_app_utility.cpp
index ea2d61516e..5d9aa91861 100644
--- a/trunk/src/app/srs_app_utility.cpp
+++ b/trunk/src/app/srs_app_utility.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/app/srs_app_utility.hpp b/trunk/src/app/srs_app_utility.hpp
index 84f413dfe8..3376f0974d 100644
--- a/trunk/src/app/srs_app_utility.hpp
+++ b/trunk/src/app/srs_app_utility.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_APP_UTILITY_HPP
diff --git a/trunk/src/core/srs_core.cpp b/trunk/src/core/srs_core.cpp
index 95a84a6e50..f7f72f285b 100644
--- a/trunk/src/core/srs_core.cpp
+++ b/trunk/src/core/srs_core.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp
index 0180fd2090..5262ca641e 100644
--- a/trunk/src/core/srs_core.hpp
+++ b/trunk/src/core/srs_core.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_HPP
diff --git a/trunk/src/core/srs_core_autofree.cpp b/trunk/src/core/srs_core_autofree.cpp
index 3eddeefdef..efc7ef0690 100644
--- a/trunk/src/core/srs_core_autofree.cpp
+++ b/trunk/src/core/srs_core_autofree.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_autofree.hpp b/trunk/src/core/srs_core_autofree.hpp
index f0f8099ef2..1a6a95c78c 100644
--- a/trunk/src/core/srs_core_autofree.hpp
+++ b/trunk/src/core/srs_core_autofree.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_AUTO_FREE_HPP
diff --git a/trunk/src/core/srs_core_performance.cpp b/trunk/src/core/srs_core_performance.cpp
index 9f118597b5..dbfdaff12c 100644
--- a/trunk/src/core/srs_core_performance.cpp
+++ b/trunk/src/core/srs_core_performance.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_performance.hpp b/trunk/src/core/srs_core_performance.hpp
index e210124a38..7e7dde340e 100644
--- a/trunk/src/core/srs_core_performance.hpp
+++ b/trunk/src/core/srs_core_performance.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_PERFORMANCE_HPP
diff --git a/trunk/src/core/srs_core_platform.cpp b/trunk/src/core/srs_core_platform.cpp
index 3d237c06d7..daa790bfbf 100644
--- a/trunk/src/core/srs_core_platform.cpp
+++ b/trunk/src/core/srs_core_platform.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_platform.hpp b/trunk/src/core/srs_core_platform.hpp
index a7d473bf20..e743438fe2 100644
--- a/trunk/src/core/srs_core_platform.hpp
+++ b/trunk/src/core/srs_core_platform.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_PLATFORM_HPP
diff --git a/trunk/src/core/srs_core_time.cpp b/trunk/src/core/srs_core_time.cpp
index 2a2215bb6d..610064f43f 100644
--- a/trunk/src/core/srs_core_time.cpp
+++ b/trunk/src/core/srs_core_time.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_time.hpp b/trunk/src/core/srs_core_time.hpp
index 555ec402ee..2f9aff98d2 100644
--- a/trunk/src/core/srs_core_time.hpp
+++ b/trunk/src/core/srs_core_time.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_TIME_HPP
diff --git a/trunk/src/core/srs_core_version.cpp b/trunk/src/core/srs_core_version.cpp
index 06cc8eac72..6d4df13350 100644
--- a/trunk/src/core/srs_core_version.cpp
+++ b/trunk/src/core/srs_core_version.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_version.hpp b/trunk/src/core/srs_core_version.hpp
index edfddb759a..0f7ef84c15 100644
--- a/trunk/src/core/srs_core_version.hpp
+++ b/trunk/src/core/srs_core_version.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION_HPP
diff --git a/trunk/src/core/srs_core_version3.cpp b/trunk/src/core/srs_core_version3.cpp
index 9035479244..03386ab1ad 100644
--- a/trunk/src/core/srs_core_version3.cpp
+++ b/trunk/src/core/srs_core_version3.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_version3.hpp b/trunk/src/core/srs_core_version3.hpp
index 2b5b66063f..d7f0eb155c 100644
--- a/trunk/src/core/srs_core_version3.hpp
+++ b/trunk/src/core/srs_core_version3.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION3_HPP
diff --git a/trunk/src/core/srs_core_version4.cpp b/trunk/src/core/srs_core_version4.cpp
index a35850cf4e..9cedbcc826 100644
--- a/trunk/src/core/srs_core_version4.cpp
+++ b/trunk/src/core/srs_core_version4.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp
index fb041680ac..4c217cb9ff 100644
--- a/trunk/src/core/srs_core_version4.hpp
+++ b/trunk/src/core/srs_core_version4.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION4_HPP
diff --git a/trunk/src/core/srs_core_version5.cpp b/trunk/src/core/srs_core_version5.cpp
index 0aabe9d7dd..ec80c677a7 100644
--- a/trunk/src/core/srs_core_version5.cpp
+++ b/trunk/src/core/srs_core_version5.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_version5.hpp b/trunk/src/core/srs_core_version5.hpp
index fe243b07b7..0c4fbadf9c 100644
--- a/trunk/src/core/srs_core_version5.hpp
+++ b/trunk/src/core/srs_core_version5.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION5_HPP
@@ -9,6 +9,6 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 0
-#define VERSION_REVISION 192
+#define VERSION_REVISION 195
#endif
diff --git a/trunk/src/core/srs_core_version6.cpp b/trunk/src/core/srs_core_version6.cpp
index 713fb4fa1c..dbc9c0bcc7 100644
--- a/trunk/src/core/srs_core_version6.cpp
+++ b/trunk/src/core/srs_core_version6.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/core/srs_core_version6.hpp b/trunk/src/core/srs_core_version6.hpp
index e045d9fbfd..1088a3217c 100644
--- a/trunk/src/core/srs_core_version6.hpp
+++ b/trunk/src/core/srs_core_version6.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION6_HPP
@@ -9,6 +9,6 @@
#define VERSION_MAJOR 6
#define VERSION_MINOR 0
-#define VERSION_REVISION 92
+#define VERSION_REVISION 95
#endif
diff --git a/trunk/src/kernel/srs_kernel_aac.cpp b/trunk/src/kernel/srs_kernel_aac.cpp
index 0d46db3d2f..90a00b47ac 100644
--- a/trunk/src/kernel/srs_kernel_aac.cpp
+++ b/trunk/src/kernel/srs_kernel_aac.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_aac.hpp b/trunk/src/kernel/srs_kernel_aac.hpp
index 9c87ad50dd..3a55726de0 100644
--- a/trunk/src/kernel/srs_kernel_aac.hpp
+++ b/trunk/src/kernel/srs_kernel_aac.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_AAC_HPP
diff --git a/trunk/src/kernel/srs_kernel_balance.cpp b/trunk/src/kernel/srs_kernel_balance.cpp
index c8a9eee8ce..3627f640d1 100644
--- a/trunk/src/kernel/srs_kernel_balance.cpp
+++ b/trunk/src/kernel/srs_kernel_balance.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_balance.hpp b/trunk/src/kernel/srs_kernel_balance.hpp
index f49f7c6514..41fb28b03f 100644
--- a/trunk/src/kernel/srs_kernel_balance.hpp
+++ b/trunk/src/kernel/srs_kernel_balance.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_BALANCE_HPP
diff --git a/trunk/src/kernel/srs_kernel_buffer.cpp b/trunk/src/kernel/srs_kernel_buffer.cpp
index f752ddeb33..d37abf8caf 100644
--- a/trunk/src/kernel/srs_kernel_buffer.cpp
+++ b/trunk/src/kernel/srs_kernel_buffer.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_buffer.hpp b/trunk/src/kernel/srs_kernel_buffer.hpp
index f68c3fa5e4..b093e97248 100644
--- a/trunk/src/kernel/srs_kernel_buffer.hpp
+++ b/trunk/src/kernel/srs_kernel_buffer.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_BUFFER_HPP
diff --git a/trunk/src/kernel/srs_kernel_codec.cpp b/trunk/src/kernel/srs_kernel_codec.cpp
index cf4ec6cbe7..d232aabc35 100644
--- a/trunk/src/kernel/srs_kernel_codec.cpp
+++ b/trunk/src/kernel/srs_kernel_codec.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_codec.hpp b/trunk/src/kernel/srs_kernel_codec.hpp
index 6cfc390350..ecb188ebc5 100644
--- a/trunk/src/kernel/srs_kernel_codec.hpp
+++ b/trunk/src/kernel/srs_kernel_codec.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_CODEC_HPP
diff --git a/trunk/src/kernel/srs_kernel_consts.cpp b/trunk/src/kernel/srs_kernel_consts.cpp
index 7a168b0f01..e0d9669ff0 100644
--- a/trunk/src/kernel/srs_kernel_consts.cpp
+++ b/trunk/src/kernel/srs_kernel_consts.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_consts.hpp b/trunk/src/kernel/srs_kernel_consts.hpp
index 12fbbc6647..6b46c78df4 100644
--- a/trunk/src/kernel/srs_kernel_consts.hpp
+++ b/trunk/src/kernel/srs_kernel_consts.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_CONSTS_HPP
diff --git a/trunk/src/kernel/srs_kernel_error.cpp b/trunk/src/kernel/srs_kernel_error.cpp
index 5b676ae314..f8fac3c81f 100644
--- a/trunk/src/kernel/srs_kernel_error.cpp
+++ b/trunk/src/kernel/srs_kernel_error.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_error.hpp b/trunk/src/kernel/srs_kernel_error.hpp
index 0a304bd5b8..b20bf908ce 100644
--- a/trunk/src/kernel/srs_kernel_error.hpp
+++ b/trunk/src/kernel/srs_kernel_error.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_ERROR_HPP
diff --git a/trunk/src/kernel/srs_kernel_file.cpp b/trunk/src/kernel/srs_kernel_file.cpp
index 5c221e42fc..d14c020b09 100644
--- a/trunk/src/kernel/srs_kernel_file.cpp
+++ b/trunk/src/kernel/srs_kernel_file.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_file.hpp b/trunk/src/kernel/srs_kernel_file.hpp
index b0dd87b6e3..0a69a1d93a 100644
--- a/trunk/src/kernel/srs_kernel_file.hpp
+++ b/trunk/src/kernel/srs_kernel_file.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_FILE_HPP
diff --git a/trunk/src/kernel/srs_kernel_flv.cpp b/trunk/src/kernel/srs_kernel_flv.cpp
index f53c4ebdab..9503553c3b 100644
--- a/trunk/src/kernel/srs_kernel_flv.cpp
+++ b/trunk/src/kernel/srs_kernel_flv.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_flv.hpp b/trunk/src/kernel/srs_kernel_flv.hpp
index 4129253401..a218aa411c 100644
--- a/trunk/src/kernel/srs_kernel_flv.hpp
+++ b/trunk/src/kernel/srs_kernel_flv.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_FLV_HPP
diff --git a/trunk/src/kernel/srs_kernel_io.cpp b/trunk/src/kernel/srs_kernel_io.cpp
index 9ec86c7edc..10c93f4a25 100644
--- a/trunk/src/kernel/srs_kernel_io.cpp
+++ b/trunk/src/kernel/srs_kernel_io.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_io.hpp b/trunk/src/kernel/srs_kernel_io.hpp
index 7de573c8bf..7798f5a870 100644
--- a/trunk/src/kernel/srs_kernel_io.hpp
+++ b/trunk/src/kernel/srs_kernel_io.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_IO_HPP
diff --git a/trunk/src/kernel/srs_kernel_kbps.cpp b/trunk/src/kernel/srs_kernel_kbps.cpp
index d164d2d874..59b5bcdbd0 100644
--- a/trunk/src/kernel/srs_kernel_kbps.cpp
+++ b/trunk/src/kernel/srs_kernel_kbps.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_kbps.hpp b/trunk/src/kernel/srs_kernel_kbps.hpp
index 55bfe3e37a..fd69e8d385 100644
--- a/trunk/src/kernel/srs_kernel_kbps.hpp
+++ b/trunk/src/kernel/srs_kernel_kbps.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_KBPS_HPP
diff --git a/trunk/src/kernel/srs_kernel_log.cpp b/trunk/src/kernel/srs_kernel_log.cpp
index 2c67fdbcd3..994ecc6302 100644
--- a/trunk/src/kernel/srs_kernel_log.cpp
+++ b/trunk/src/kernel/srs_kernel_log.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_log.hpp b/trunk/src/kernel/srs_kernel_log.hpp
index ad47b5e155..84b1988d3d 100644
--- a/trunk/src/kernel/srs_kernel_log.hpp
+++ b/trunk/src/kernel/srs_kernel_log.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_LOG_HPP
diff --git a/trunk/src/kernel/srs_kernel_mp3.cpp b/trunk/src/kernel/srs_kernel_mp3.cpp
index 5eda04aa9b..8bd322d86b 100644
--- a/trunk/src/kernel/srs_kernel_mp3.cpp
+++ b/trunk/src/kernel/srs_kernel_mp3.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_mp3.hpp b/trunk/src/kernel/srs_kernel_mp3.hpp
index 987a1774d4..55c4a69def 100644
--- a/trunk/src/kernel/srs_kernel_mp3.hpp
+++ b/trunk/src/kernel/srs_kernel_mp3.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_MP3_HPP
diff --git a/trunk/src/kernel/srs_kernel_mp4.cpp b/trunk/src/kernel/srs_kernel_mp4.cpp
index ccc09e62de..a673137fda 100644
--- a/trunk/src/kernel/srs_kernel_mp4.cpp
+++ b/trunk/src/kernel/srs_kernel_mp4.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_mp4.hpp b/trunk/src/kernel/srs_kernel_mp4.hpp
index 4f203e437d..b5b8910cee 100644
--- a/trunk/src/kernel/srs_kernel_mp4.hpp
+++ b/trunk/src/kernel/srs_kernel_mp4.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_MP4_HPP
diff --git a/trunk/src/kernel/srs_kernel_ps.cpp b/trunk/src/kernel/srs_kernel_ps.cpp
index 54da78fa55..f4c1b10569 100644
--- a/trunk/src/kernel/srs_kernel_ps.cpp
+++ b/trunk/src/kernel/srs_kernel_ps.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_ps.hpp b/trunk/src/kernel/srs_kernel_ps.hpp
index 30cdeef761..6c0b375f84 100644
--- a/trunk/src/kernel/srs_kernel_ps.hpp
+++ b/trunk/src/kernel/srs_kernel_ps.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_PS_HPP
diff --git a/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp
index ad19200eed..18fa7848d5 100644
--- a/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp
+++ b/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp
index 1c0dc921e7..47c57858a7 100644
--- a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp
+++ b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_RTC_RTCP_HPP
diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp
index d3b490af9c..4c9a99bdcb 100644
--- a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp
+++ b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.hpp b/trunk/src/kernel/srs_kernel_rtc_rtp.hpp
index 57ba30c9a6..db5c8e0500 100644
--- a/trunk/src/kernel/srs_kernel_rtc_rtp.hpp
+++ b/trunk/src/kernel/srs_kernel_rtc_rtp.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_RTC_RTP_HPP
diff --git a/trunk/src/kernel/srs_kernel_stream.cpp b/trunk/src/kernel/srs_kernel_stream.cpp
index ab506ac838..c1d75b2e42 100755
--- a/trunk/src/kernel/srs_kernel_stream.cpp
+++ b/trunk/src/kernel/srs_kernel_stream.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_stream.hpp b/trunk/src/kernel/srs_kernel_stream.hpp
index 02a93aa1c4..4dc3fced46 100644
--- a/trunk/src/kernel/srs_kernel_stream.hpp
+++ b/trunk/src/kernel/srs_kernel_stream.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_STREAM_HPP
diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp
index f05ab9ff26..5fd6585c89 100644
--- a/trunk/src/kernel/srs_kernel_ts.cpp
+++ b/trunk/src/kernel/srs_kernel_ts.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_ts.hpp b/trunk/src/kernel/srs_kernel_ts.hpp
index 65aaddb676..8ded422202 100644
--- a/trunk/src/kernel/srs_kernel_ts.hpp
+++ b/trunk/src/kernel/srs_kernel_ts.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_TS_HPP
diff --git a/trunk/src/kernel/srs_kernel_utility.cpp b/trunk/src/kernel/srs_kernel_utility.cpp
index cc1e423fb3..ed5125f957 100644
--- a/trunk/src/kernel/srs_kernel_utility.cpp
+++ b/trunk/src/kernel/srs_kernel_utility.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/kernel/srs_kernel_utility.hpp b/trunk/src/kernel/srs_kernel_utility.hpp
index c2bce86fce..f81184495a 100644
--- a/trunk/src/kernel/srs_kernel_utility.hpp
+++ b/trunk/src/kernel/srs_kernel_utility.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_KERNEL_UTILITY_HPP
diff --git a/trunk/src/main/srs_main_ingest_hls.cpp b/trunk/src/main/srs_main_ingest_hls.cpp
index db036a50b8..d2bb944ac7 100644
--- a/trunk/src/main/srs_main_ingest_hls.cpp
+++ b/trunk/src/main/srs_main_ingest_hls.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/main/srs_main_mp4_parser.cpp b/trunk/src/main/srs_main_mp4_parser.cpp
index fd8fe91d77..84f0c564f3 100644
--- a/trunk/src/main/srs_main_mp4_parser.cpp
+++ b/trunk/src/main/srs_main_mp4_parser.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/main/srs_main_server.cpp b/trunk/src/main/srs_main_server.cpp
index 6bf06d1d30..f30d18d61d 100644
--- a/trunk/src/main/srs_main_server.cpp
+++ b/trunk/src/main/srs_main_server.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_amf0.cpp b/trunk/src/protocol/srs_protocol_amf0.cpp
index 4e2b7a3069..ddd5d6899f 100644
--- a/trunk/src/protocol/srs_protocol_amf0.cpp
+++ b/trunk/src/protocol/srs_protocol_amf0.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_amf0.hpp b/trunk/src/protocol/srs_protocol_amf0.hpp
index aa6efe8b82..f221ffc5d6 100644
--- a/trunk/src/protocol/srs_protocol_amf0.hpp
+++ b/trunk/src/protocol/srs_protocol_amf0.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_AMF0_HPP
diff --git a/trunk/src/protocol/srs_protocol_conn.cpp b/trunk/src/protocol/srs_protocol_conn.cpp
index 2fca910675..aac5f133a4 100644
--- a/trunk/src/protocol/srs_protocol_conn.cpp
+++ b/trunk/src/protocol/srs_protocol_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_conn.hpp b/trunk/src/protocol/srs_protocol_conn.hpp
index 6e4a0cdb26..a884c8d310 100644
--- a/trunk/src/protocol/srs_protocol_conn.hpp
+++ b/trunk/src/protocol/srs_protocol_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_CONN_HPP
diff --git a/trunk/src/protocol/srs_protocol_format.cpp b/trunk/src/protocol/srs_protocol_format.cpp
index 3dd12505e4..20fe4433b9 100644
--- a/trunk/src/protocol/srs_protocol_format.cpp
+++ b/trunk/src/protocol/srs_protocol_format.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_format.hpp b/trunk/src/protocol/srs_protocol_format.hpp
index b2c08e6deb..cc187d6489 100644
--- a/trunk/src/protocol/srs_protocol_format.hpp
+++ b/trunk/src/protocol/srs_protocol_format.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_FORMAT_HPP
diff --git a/trunk/src/protocol/srs_protocol_http_client.cpp b/trunk/src/protocol/srs_protocol_http_client.cpp
index 02db622c47..0362ded0b3 100644
--- a/trunk/src/protocol/srs_protocol_http_client.cpp
+++ b/trunk/src/protocol/srs_protocol_http_client.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_http_client.hpp b/trunk/src/protocol/srs_protocol_http_client.hpp
index e909e42c16..6f03f7acf4 100644
--- a/trunk/src/protocol/srs_protocol_http_client.hpp
+++ b/trunk/src/protocol/srs_protocol_http_client.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_HTTP_CLIENT_HPP
diff --git a/trunk/src/protocol/srs_protocol_http_conn.cpp b/trunk/src/protocol/srs_protocol_http_conn.cpp
index a885065b41..2b29c2b323 100644
--- a/trunk/src/protocol/srs_protocol_http_conn.cpp
+++ b/trunk/src/protocol/srs_protocol_http_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_http_conn.hpp b/trunk/src/protocol/srs_protocol_http_conn.hpp
index a3a7cf8de5..07e4c96e08 100644
--- a/trunk/src/protocol/srs_protocol_http_conn.hpp
+++ b/trunk/src/protocol/srs_protocol_http_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_HTTP_CONN_HPP
diff --git a/trunk/src/protocol/srs_protocol_http_stack.cpp b/trunk/src/protocol/srs_protocol_http_stack.cpp
index 56e1532d99..b89d87c6bf 100644
--- a/trunk/src/protocol/srs_protocol_http_stack.cpp
+++ b/trunk/src/protocol/srs_protocol_http_stack.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_http_stack.hpp b/trunk/src/protocol/srs_protocol_http_stack.hpp
index c128b93ecf..3088dc5ad1 100644
--- a/trunk/src/protocol/srs_protocol_http_stack.hpp
+++ b/trunk/src/protocol/srs_protocol_http_stack.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_HTTP_HPP
diff --git a/trunk/src/protocol/srs_protocol_io.cpp b/trunk/src/protocol/srs_protocol_io.cpp
index 566d7ea4d4..b55367317c 100644
--- a/trunk/src/protocol/srs_protocol_io.cpp
+++ b/trunk/src/protocol/srs_protocol_io.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_io.hpp b/trunk/src/protocol/srs_protocol_io.hpp
index aab08c0a23..f22a63acf8 100644
--- a/trunk/src/protocol/srs_protocol_io.hpp
+++ b/trunk/src/protocol/srs_protocol_io.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_IO_HPP
diff --git a/trunk/src/protocol/srs_protocol_json.cpp b/trunk/src/protocol/srs_protocol_json.cpp
index 813247f660..9248139101 100644
--- a/trunk/src/protocol/srs_protocol_json.cpp
+++ b/trunk/src/protocol/srs_protocol_json.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
@@ -1316,7 +1316,7 @@ void json_value_free (json_value * value)
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_json.hpp b/trunk/src/protocol/srs_protocol_json.hpp
index 4f3730d597..58558296ab 100644
--- a/trunk/src/protocol/srs_protocol_json.hpp
+++ b/trunk/src/protocol/srs_protocol_json.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_JSON_HPP
diff --git a/trunk/src/protocol/srs_protocol_kbps.cpp b/trunk/src/protocol/srs_protocol_kbps.cpp
index 80ef9421eb..451f0d2663 100644
--- a/trunk/src/protocol/srs_protocol_kbps.cpp
+++ b/trunk/src/protocol/srs_protocol_kbps.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_kbps.hpp b/trunk/src/protocol/srs_protocol_kbps.hpp
index 993806b6e8..445dcb94c2 100644
--- a/trunk/src/protocol/srs_protocol_kbps.hpp
+++ b/trunk/src/protocol/srs_protocol_kbps.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_KBPS_HPP
diff --git a/trunk/src/protocol/srs_protocol_log.cpp b/trunk/src/protocol/srs_protocol_log.cpp
index 573eb4f2d2..7e58c6199f 100644
--- a/trunk/src/protocol/srs_protocol_log.cpp
+++ b/trunk/src/protocol/srs_protocol_log.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_log.hpp b/trunk/src/protocol/srs_protocol_log.hpp
index a47b4ffb11..a8a60fedb0 100644
--- a/trunk/src/protocol/srs_protocol_log.hpp
+++ b/trunk/src/protocol/srs_protocol_log.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_LOG_HPP
diff --git a/trunk/src/protocol/srs_protocol_protobuf.cpp b/trunk/src/protocol/srs_protocol_protobuf.cpp
index fb368c6fee..08011f44d5 100644
--- a/trunk/src/protocol/srs_protocol_protobuf.cpp
+++ b/trunk/src/protocol/srs_protocol_protobuf.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_protobuf.hpp b/trunk/src/protocol/srs_protocol_protobuf.hpp
index 44ba16abee..04dcfd2389 100644
--- a/trunk/src/protocol/srs_protocol_protobuf.hpp
+++ b/trunk/src/protocol/srs_protocol_protobuf.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_PROTOBUF_HPP
diff --git a/trunk/src/protocol/srs_protocol_raw_avc.cpp b/trunk/src/protocol/srs_protocol_raw_avc.cpp
index b47b42b5d7..9a02d2f814 100644
--- a/trunk/src/protocol/srs_protocol_raw_avc.cpp
+++ b/trunk/src/protocol/srs_protocol_raw_avc.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_raw_avc.hpp b/trunk/src/protocol/srs_protocol_raw_avc.hpp
index 8d3f0a8ad0..246b52a029 100644
--- a/trunk/src/protocol/srs_protocol_raw_avc.hpp
+++ b/trunk/src/protocol/srs_protocol_raw_avc.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_RAW_AVC_HPP
diff --git a/trunk/src/protocol/srs_protocol_rtc_stun.cpp b/trunk/src/protocol/srs_protocol_rtc_stun.cpp
index 84332600d8..9c259cb546 100644
--- a/trunk/src/protocol/srs_protocol_rtc_stun.cpp
+++ b/trunk/src/protocol/srs_protocol_rtc_stun.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_rtc_stun.hpp b/trunk/src/protocol/srs_protocol_rtc_stun.hpp
index 9801ef5892..05abd75029 100644
--- a/trunk/src/protocol/srs_protocol_rtc_stun.hpp
+++ b/trunk/src/protocol/srs_protocol_rtc_stun.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_RTC_STUN_HPP
diff --git a/trunk/src/protocol/srs_protocol_rtmp_conn.cpp b/trunk/src/protocol/srs_protocol_rtmp_conn.cpp
index 510b7dc8b8..ccaad1ef47 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_conn.cpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_conn.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_rtmp_conn.hpp b/trunk/src/protocol/srs_protocol_rtmp_conn.hpp
index 3e872fb30e..617d98c0e3 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_conn.hpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_conn.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_RTMP_CONN_HPP
diff --git a/trunk/src/protocol/srs_protocol_rtmp_handshake.cpp b/trunk/src/protocol/srs_protocol_rtmp_handshake.cpp
index f904555814..751294de9f 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_handshake.cpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_handshake.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
@@ -298,8 +298,6 @@ namespace srs_internal
{
srs_error_t err = srs_success;
- int32_t bits_count = 1024;
-
close();
//1. Create the DH
diff --git a/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp b/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp
index f3253aedcb..3f2c5f1d18 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_HANDSHAKE_HPP
diff --git a/trunk/src/protocol/srs_protocol_rtmp_msg_array.cpp b/trunk/src/protocol/srs_protocol_rtmp_msg_array.cpp
index 5ecf3cbdae..d809f2f834 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_msg_array.cpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_msg_array.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp b/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp
index dbf478f8d4..6346dd2fb5 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_MESSAGE_ARRAY_HPP
diff --git a/trunk/src/protocol/srs_protocol_rtmp_stack.cpp b/trunk/src/protocol/srs_protocol_rtmp_stack.cpp
index 63f19b8a83..4bc5c0e28d 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_stack.cpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_stack.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_rtmp_stack.hpp b/trunk/src/protocol/srs_protocol_rtmp_stack.hpp
index b628d2e12f..eeb244a37e 100644
--- a/trunk/src/protocol/srs_protocol_rtmp_stack.hpp
+++ b/trunk/src/protocol/srs_protocol_rtmp_stack.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_RTMP_HPP
diff --git a/trunk/src/protocol/srs_protocol_srt.cpp b/trunk/src/protocol/srs_protocol_srt.cpp
index 41888b2e14..9587909e92 100644
--- a/trunk/src/protocol/srs_protocol_srt.cpp
+++ b/trunk/src/protocol/srs_protocol_srt.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_srt.hpp b/trunk/src/protocol/srs_protocol_srt.hpp
index 90e6967638..68c166c650 100644
--- a/trunk/src/protocol/srs_protocol_srt.hpp
+++ b/trunk/src/protocol/srs_protocol_srt.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_SRT_HPP
diff --git a/trunk/src/protocol/srs_protocol_st.cpp b/trunk/src/protocol/srs_protocol_st.cpp
index 2124db1aa9..37e9ec695c 100644
--- a/trunk/src/protocol/srs_protocol_st.cpp
+++ b/trunk/src/protocol/srs_protocol_st.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_st.hpp b/trunk/src/protocol/srs_protocol_st.hpp
index d94a869744..d9cb6a0c1b 100644
--- a/trunk/src/protocol/srs_protocol_st.hpp
+++ b/trunk/src/protocol/srs_protocol_st.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_ST_HPP
diff --git a/trunk/src/protocol/srs_protocol_stream.cpp b/trunk/src/protocol/srs_protocol_stream.cpp
index 440ad0504d..381bcdff90 100755
--- a/trunk/src/protocol/srs_protocol_stream.cpp
+++ b/trunk/src/protocol/srs_protocol_stream.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_stream.hpp b/trunk/src/protocol/srs_protocol_stream.hpp
index 0d5200d8b3..39012506e4 100644
--- a/trunk/src/protocol/srs_protocol_stream.hpp
+++ b/trunk/src/protocol/srs_protocol_stream.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_STREAM_HPP
diff --git a/trunk/src/protocol/srs_protocol_utility.cpp b/trunk/src/protocol/srs_protocol_utility.cpp
index dd3a34a571..8a004ab6b5 100644
--- a/trunk/src/protocol/srs_protocol_utility.cpp
+++ b/trunk/src/protocol/srs_protocol_utility.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/protocol/srs_protocol_utility.hpp b/trunk/src/protocol/srs_protocol_utility.hpp
index eaa853b9e3..2b866ba3e6 100644
--- a/trunk/src/protocol/srs_protocol_utility.hpp
+++ b/trunk/src/protocol/srs_protocol_utility.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_UTILITY_HPP
diff --git a/trunk/src/utest/srs_utest.cpp b/trunk/src/utest/srs_utest.cpp
index b47f73d932..b98bd55187 100644
--- a/trunk/src/utest/srs_utest.cpp
+++ b/trunk/src/utest/srs_utest.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest.hpp b/trunk/src/utest/srs_utest.hpp
index 5a2a2fa659..c9b2641ede 100644
--- a/trunk/src/utest/srs_utest.hpp
+++ b/trunk/src/utest/srs_utest.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_PUBLIC_SHARED_HPP
diff --git a/trunk/src/utest/srs_utest_amf0.cpp b/trunk/src/utest/srs_utest_amf0.cpp
index 3045702d7d..b2d1bd2f76 100644
--- a/trunk/src/utest/srs_utest_amf0.cpp
+++ b/trunk/src/utest/srs_utest_amf0.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_amf0.hpp b/trunk/src/utest/srs_utest_amf0.hpp
index e1ee9b8d8d..a8cf142eb3 100644
--- a/trunk/src/utest/srs_utest_amf0.hpp
+++ b/trunk/src/utest/srs_utest_amf0.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_AMF0_HPP
diff --git a/trunk/src/utest/srs_utest_app.cpp b/trunk/src/utest/srs_utest_app.cpp
index 01c4d731c6..856aaa2e28 100644
--- a/trunk/src/utest/srs_utest_app.cpp
+++ b/trunk/src/utest/srs_utest_app.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_app.hpp b/trunk/src/utest/srs_utest_app.hpp
index c8216bc88c..1bb25f3383 100644
--- a/trunk/src/utest/srs_utest_app.hpp
+++ b/trunk/src/utest/srs_utest_app.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_APP_HPP
diff --git a/trunk/src/utest/srs_utest_avc.cpp b/trunk/src/utest/srs_utest_avc.cpp
index 6ee9ff0d6d..7fb7374e2e 100644
--- a/trunk/src/utest/srs_utest_avc.cpp
+++ b/trunk/src/utest/srs_utest_avc.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_avc.hpp b/trunk/src/utest/srs_utest_avc.hpp
index 1169aaa243..1289a7c111 100644
--- a/trunk/src/utest/srs_utest_avc.hpp
+++ b/trunk/src/utest/srs_utest_avc.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_AVC_HPP
diff --git a/trunk/src/utest/srs_utest_config.cpp b/trunk/src/utest/srs_utest_config.cpp
index 1a3e093da4..c4c495967d 100644
--- a/trunk/src/utest/srs_utest_config.cpp
+++ b/trunk/src/utest/srs_utest_config.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_config.hpp b/trunk/src/utest/srs_utest_config.hpp
index f6d8e4ae74..ca538707db 100644
--- a/trunk/src/utest/srs_utest_config.hpp
+++ b/trunk/src/utest/srs_utest_config.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_CONFIG_HPP
diff --git a/trunk/src/utest/srs_utest_config2.cpp b/trunk/src/utest/srs_utest_config2.cpp
index 1478e694a2..d4e7df9079 100644
--- a/trunk/src/utest/srs_utest_config2.cpp
+++ b/trunk/src/utest/srs_utest_config2.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_config2.hpp b/trunk/src/utest/srs_utest_config2.hpp
index 9b9ce159ea..5871517432 100644
--- a/trunk/src/utest/srs_utest_config2.hpp
+++ b/trunk/src/utest/srs_utest_config2.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_CONFIG2_HPP
diff --git a/trunk/src/utest/srs_utest_core.cpp b/trunk/src/utest/srs_utest_core.cpp
index d9cd242a25..59f8bce1f8 100644
--- a/trunk/src/utest/srs_utest_core.cpp
+++ b/trunk/src/utest/srs_utest_core.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_core.hpp b/trunk/src/utest/srs_utest_core.hpp
index 9aaa8d9903..95baaaf4d9 100644
--- a/trunk/src/utest/srs_utest_core.hpp
+++ b/trunk/src/utest/srs_utest_core.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_CORE_HPP
diff --git a/trunk/src/utest/srs_utest_gb28181.cpp b/trunk/src/utest/srs_utest_gb28181.cpp
index 85a61cb067..6b78d3a582 100644
--- a/trunk/src/utest/srs_utest_gb28181.cpp
+++ b/trunk/src/utest/srs_utest_gb28181.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_gb28181.hpp b/trunk/src/utest/srs_utest_gb28181.hpp
index e0ef7f9ace..edebbf5a9c 100644
--- a/trunk/src/utest/srs_utest_gb28181.hpp
+++ b/trunk/src/utest/srs_utest_gb28181.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_GB28181_HPP
diff --git a/trunk/src/utest/srs_utest_http.cpp b/trunk/src/utest/srs_utest_http.cpp
index ba1c344972..382f5dc3ec 100644
--- a/trunk/src/utest/srs_utest_http.cpp
+++ b/trunk/src/utest/srs_utest_http.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_http.hpp b/trunk/src/utest/srs_utest_http.hpp
index 51d97bf8eb..81e8d21153 100644
--- a/trunk/src/utest/srs_utest_http.hpp
+++ b/trunk/src/utest/srs_utest_http.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_PROTO_STACK_HPP
diff --git a/trunk/src/utest/srs_utest_kernel.cpp b/trunk/src/utest/srs_utest_kernel.cpp
index 862c593815..59f63a143e 100644
--- a/trunk/src/utest/srs_utest_kernel.cpp
+++ b/trunk/src/utest/srs_utest_kernel.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_kernel.hpp b/trunk/src/utest/srs_utest_kernel.hpp
index 5f4cbd56fb..9ea9cb8ebd 100644
--- a/trunk/src/utest/srs_utest_kernel.hpp
+++ b/trunk/src/utest/srs_utest_kernel.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_KERNEL_HPP
diff --git a/trunk/src/utest/srs_utest_kernel2.cpp b/trunk/src/utest/srs_utest_kernel2.cpp
index d7b838abd6..edf6cf4167 100644
--- a/trunk/src/utest/srs_utest_kernel2.cpp
+++ b/trunk/src/utest/srs_utest_kernel2.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_kernel2.hpp b/trunk/src/utest/srs_utest_kernel2.hpp
index 9d3b044f2a..293bc1a963 100644
--- a/trunk/src/utest/srs_utest_kernel2.hpp
+++ b/trunk/src/utest/srs_utest_kernel2.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_KERNEL2_HPP
diff --git a/trunk/src/utest/srs_utest_mp4.cpp b/trunk/src/utest/srs_utest_mp4.cpp
index d642e8afce..e324522f79 100644
--- a/trunk/src/utest/srs_utest_mp4.cpp
+++ b/trunk/src/utest/srs_utest_mp4.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_mp4.hpp b/trunk/src/utest/srs_utest_mp4.hpp
index 759d13ab98..7df061f2f9 100644
--- a/trunk/src/utest/srs_utest_mp4.hpp
+++ b/trunk/src/utest/srs_utest_mp4.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_MP4_HPP
diff --git a/trunk/src/utest/srs_utest_protocol.cpp b/trunk/src/utest/srs_utest_protocol.cpp
index c7864d6afe..ce9326790f 100644
--- a/trunk/src/utest/srs_utest_protocol.cpp
+++ b/trunk/src/utest/srs_utest_protocol.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_protocol.hpp b/trunk/src/utest/srs_utest_protocol.hpp
index b9de949985..b07080b0fa 100644
--- a/trunk/src/utest/srs_utest_protocol.hpp
+++ b/trunk/src/utest/srs_utest_protocol.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_PROTOCOL_HPP
diff --git a/trunk/src/utest/srs_utest_protocol2.cpp b/trunk/src/utest/srs_utest_protocol2.cpp
index 9ec04fd2db..585cd4f6c1 100644
--- a/trunk/src/utest/srs_utest_protocol2.cpp
+++ b/trunk/src/utest/srs_utest_protocol2.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_protocol2.hpp b/trunk/src/utest/srs_utest_protocol2.hpp
index df613b7691..b3fa60d6e4 100644
--- a/trunk/src/utest/srs_utest_protocol2.hpp
+++ b/trunk/src/utest/srs_utest_protocol2.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_PROTOCOL2_HPP
diff --git a/trunk/src/utest/srs_utest_reload.cpp b/trunk/src/utest/srs_utest_reload.cpp
index 80824ce0c7..ba4ccd963f 100644
--- a/trunk/src/utest/srs_utest_reload.cpp
+++ b/trunk/src/utest/srs_utest_reload.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_reload.hpp b/trunk/src/utest/srs_utest_reload.hpp
index 6f920a7e75..3c774d2f61 100644
--- a/trunk/src/utest/srs_utest_reload.hpp
+++ b/trunk/src/utest/srs_utest_reload.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_RELOAD_HPP
diff --git a/trunk/src/utest/srs_utest_rtc.cpp b/trunk/src/utest/srs_utest_rtc.cpp
index 71bbe35b91..728a09964c 100644
--- a/trunk/src/utest/srs_utest_rtc.cpp
+++ b/trunk/src/utest/srs_utest_rtc.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_rtc.hpp b/trunk/src/utest/srs_utest_rtc.hpp
index 9e7e68af83..7c91131f29 100644
--- a/trunk/src/utest/srs_utest_rtc.hpp
+++ b/trunk/src/utest/srs_utest_rtc.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_RTC_HPP
diff --git a/trunk/src/utest/srs_utest_rtmp.cpp b/trunk/src/utest/srs_utest_rtmp.cpp
index b5535d61b0..5e30be1119 100644
--- a/trunk/src/utest/srs_utest_rtmp.cpp
+++ b/trunk/src/utest/srs_utest_rtmp.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_rtmp.hpp b/trunk/src/utest/srs_utest_rtmp.hpp
index c92d125da5..566cb1ab65 100644
--- a/trunk/src/utest/srs_utest_rtmp.hpp
+++ b/trunk/src/utest/srs_utest_rtmp.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_PROTO_STACK_HPP
diff --git a/trunk/src/utest/srs_utest_service.cpp b/trunk/src/utest/srs_utest_service.cpp
index fc428c5fbc..a44d26b609 100644
--- a/trunk/src/utest/srs_utest_service.cpp
+++ b/trunk/src/utest/srs_utest_service.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_service.hpp b/trunk/src/utest/srs_utest_service.hpp
index 68f10752ec..f27e0d233e 100644
--- a/trunk/src/utest/srs_utest_service.hpp
+++ b/trunk/src/utest/srs_utest_service.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 The SRS Authors
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_SERVICE_HPP
diff --git a/trunk/src/utest/srs_utest_srt.cpp b/trunk/src/utest/srs_utest_srt.cpp
index dc9b154b2c..371eba03fb 100644
--- a/trunk/src/utest/srs_utest_srt.cpp
+++ b/trunk/src/utest/srs_utest_srt.cpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 Winlin
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#include
diff --git a/trunk/src/utest/srs_utest_srt.hpp b/trunk/src/utest/srs_utest_srt.hpp
index 8f092ac52a..02c0d36cb4 100644
--- a/trunk/src/utest/srs_utest_srt.hpp
+++ b/trunk/src/utest/srs_utest_srt.hpp
@@ -1,7 +1,7 @@
//
// Copyright (c) 2013-2023 Winlin
//
-// SPDX-License-Identifier: MIT or MulanPSL-2.0
+// SPDX-License-Identifier: MIT
//
#ifndef SRS_UTEST_SRT_HPP