diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index 3ad918f41..220f9544e 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -8,6 +8,7 @@ The changelog for SRS. ## SRS 5.0 Changelog +* v5.0, 2022-11-25, SRT: Support transform tlpkdrop to tlpktdrop. 5.0.98 * v5.0, 2022-11-25, Config: Add ENV tips for config. 5.0.97 * v5.0, 2022-11-24, For [#299](https://github.com/ossrs/srs/issues/299), DASH: Fix number mode bug to make it run. 5.0.96 * v5.0, 2022-11-23, For [#3176](https://github.com/ossrs/srs/pull/3176): GB28181: Error and logging for HEVC. v5.0.95 diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index a25588866..777a10280 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -331,6 +331,19 @@ srs_error_t srs_config_transform_vhost(SrsConfDirective* root) } } + // SRS4.0, rename the config: + // SRS4: + // srt_server { tlpkdrop; } + // SRS5: + // srt_server { tlpktdrop; } + if (dir->name == "srt_server") { + std::vector::iterator it; + for (it = dir->directives.begin(); it != dir->directives.end(); ++it) { + SrsConfDirective* conf = *it; + if (conf->name == "tlpkdrop") conf->name = "tlpktdrop"; + } + } + // SRS5.0, GB28181 allows unused config. // stream_caster { // caster gb28181; tcp_enable; rtp_port_min; rtp_port_max; wait_keyframe; rtp_idle_timeout; @@ -7733,11 +7746,7 @@ bool SrsConfig::get_srto_tlpktdrop() return DEFAULT; } - SrsConfDirective* conf = srt_server_conf->get("tlpkdrop"); - if (!conf) { - // make it compatible tlpkdrop and tlpktdrop opt. - conf = srt_server_conf->get("tlpktdrop"); - } + SrsConfDirective* conf = srt_server_conf->get("tlpktdrop"); if (!conf || conf->arg0().empty()) { return DEFAULT; } diff --git a/trunk/src/app/srs_app_srt_server.cpp b/trunk/src/app/srs_app_srt_server.cpp index 977150a23..9c850a6a5 100644 --- a/trunk/src/app/srs_app_srt_server.cpp +++ b/trunk/src/app/srs_app_srt_server.cpp @@ -90,7 +90,7 @@ srs_error_t SrsSrtAcceptor::set_srt_opt() } if ((err = srs_srt_set_tlpktdrop(listener_->fd(), _srs_config->get_srto_tlpktdrop())) != srs_success) { - return srs_error_wrap(err, "set opt tlpkdrop=%d failed", _srs_config->get_srto_tlpktdrop()); + return srs_error_wrap(err, "set opt tlpktdrop=%d failed", _srs_config->get_srto_tlpktdrop()); } if ((err = srs_srt_set_connect_timeout(listener_->fd(), srsu2msi(_srs_config->get_srto_conntimeout()))) != srs_success) { diff --git a/trunk/src/app/srs_app_srt_source.cpp b/trunk/src/app/srs_app_srt_source.cpp index 4042d9fbf..00eb2c257 100644 --- a/trunk/src/app/srs_app_srt_source.cpp +++ b/trunk/src/app/srs_app_srt_source.cpp @@ -295,7 +295,7 @@ srs_error_t SrsRtmpFromSrtBridge::on_packet(SrsSrtPacket *pkt) SrsAutoFree(SrsBuffer, stream); // Process each ts packet. Note that the jitter of UDP may cause video glitch when packet loss or wrong seq. We - // don't handle it because SRT will, see tlpkdrop at https://ossrs.net/lts/zh-cn/docs/v4/doc/srt-params + // don't handle it because SRT will, see tlpktdrop at https://ossrs.net/lts/zh-cn/docs/v4/doc/srt-params if ((err = ts_ctx_->decode(stream, this)) != srs_success) { srs_warn("parse ts packet err=%s", srs_error_desc(err).c_str()); srs_error_reset(err); diff --git a/trunk/src/core/srs_core_version5.hpp b/trunk/src/core/srs_core_version5.hpp index 38dbafdd1..ab0a1377b 100644 --- a/trunk/src/core/srs_core_version5.hpp +++ b/trunk/src/core/srs_core_version5.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 0 -#define VERSION_REVISION 97 +#define VERSION_REVISION 98 #endif diff --git a/trunk/src/utest/srs_utest_config.cpp b/trunk/src/utest/srs_utest_config.cpp index 39e2e6b94..4531f6763 100644 --- a/trunk/src/utest/srs_utest_config.cpp +++ b/trunk/src/utest/srs_utest_config.cpp @@ -3865,3 +3865,27 @@ VOID TEST(ConfigMainTest, LogLevelV2) EXPECT_EQ(SrsLogLevelWarn, srs_get_log_level(conf.get_log_level_v2())); } } + +VOID TEST(ConfigMainTest, SrtServerTlpktDrop) +{ + srs_error_t err; + + if (true) { + MockSrsConfig conf; + HELPER_ASSERT_SUCCESS(conf.parse(_MIN_OK_CONF)); + EXPECT_TRUE(conf.get_srto_tlpktdrop()); + } + + if (true) { + MockSrsConfig conf; + HELPER_ASSERT_SUCCESS(conf.parse(_MIN_OK_CONF "srt_server{tlpktdrop off;}")); + EXPECT_FALSE(conf.get_srto_tlpktdrop()); + } + + if (true) { + MockSrsConfig conf; + HELPER_ASSERT_SUCCESS(conf.parse(_MIN_OK_CONF "srt_server{tlpkdrop off;}")); + EXPECT_FALSE(conf.get_srto_tlpktdrop()); + } +} +