diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index 86d1d2dc0..9a81a403b 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -6944,9 +6944,9 @@ bool SrsConfig::get_heartbeat_enabled() return SRS_CONF_PERFER_FALSE(conf->arg0()); } -int64_t SrsConfig::get_heartbeat_interval() +srs_utime_t SrsConfig::get_heartbeat_interval() { - static int64_t DEFAULT = (int64_t)(9.9 * 1000); + static srs_utime_t DEFAULT = (srs_utime_t)(9.9 * SRS_UTIME_SECONDS); SrsConfDirective* conf = get_heartbeart(); if (!conf) { @@ -6958,7 +6958,7 @@ int64_t SrsConfig::get_heartbeat_interval() return DEFAULT; } - return (int64_t)(::atof(conf->arg0().c_str()) * 1000); + return (srs_utime_t)(::atof(conf->arg0().c_str()) * SRS_UTIME_SECONDS); } string SrsConfig::get_heartbeat_url() diff --git a/trunk/src/app/srs_app_config.hpp b/trunk/src/app/srs_app_config.hpp index b7c2e0ab5..bf882efdb 100644 --- a/trunk/src/app/srs_app_config.hpp +++ b/trunk/src/app/srs_app_config.hpp @@ -1423,9 +1423,9 @@ public: */ virtual bool get_heartbeat_enabled(); /** - * get the heartbeat interval, in ms. + * get the heartbeat interval, in srs_utime_t. */ - virtual int64_t get_heartbeat_interval(); + virtual srs_utime_t get_heartbeat_interval(); /** * get the heartbeat report url. */ diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index 647b52c83..f3990e0bb 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -910,7 +910,7 @@ srs_error_t SrsServer::do_cycle() } // the interval in config. - int heartbeat_max_resolution = (int)(_srs_config->get_heartbeat_interval() * SRS_UTIME_MILLISECONDS / SRS_SYS_CYCLE_INTERVAL); + int heartbeat_max_resolution = (int)(_srs_config->get_heartbeat_interval() / SRS_SYS_CYCLE_INTERVAL); // dynamic fetch the max. int dynamic_max = srs_max(max, heartbeat_max_resolution); diff --git a/trunk/src/utest/srs_utest_config.cpp b/trunk/src/utest/srs_utest_config.cpp index 07d0c733b..3fc336af4 100644 --- a/trunk/src/utest/srs_utest_config.cpp +++ b/trunk/src/utest/srs_utest_config.cpp @@ -1807,6 +1807,7 @@ VOID TEST(ConfigMainTest, CheckConf_vhost_ingest_id) VOID TEST(ConfigUnitTest, CheckDefaultValues) { MockSrsConfig conf; + if (true) { EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF)); EXPECT_EQ(30 * SRS_UTIME_SECONDS, conf.get_bw_check_interval("")); @@ -1826,5 +1827,13 @@ VOID TEST(ConfigUnitTest, CheckDefaultValues) EXPECT_EQ(40 * SRS_UTIME_SECONDS, conf.get_dash_update_period("v")); EXPECT_EQ(70 * SRS_UTIME_SECONDS, conf.get_dash_timeshift("v")); } + + if (true) { + EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF)); + EXPECT_EQ(srs_utime_t(9.9 * SRS_UTIME_SECONDS), conf.get_heartbeat_interval()); + + EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"heartbeat{interval 10;}")); + EXPECT_EQ(10 * SRS_UTIME_SECONDS, conf.get_heartbeat_interval()); + } }