diff --git a/trunk/conf/full.conf b/trunk/conf/full.conf index 8d6e82da9..cf3e0217e 100644 --- a/trunk/conf/full.conf +++ b/trunk/conf/full.conf @@ -49,7 +49,7 @@ daemon on; # if on, use gmtime() instead, which use UTC time. # default: off utc_time off; -# config for the pithy print, +# config for the pithy print in ms, # which always print constant message specified by interval, # whatever the clients in concurrency. # default: 10000 diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index 9a81a403b..9d0e9a51d 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -4055,16 +4055,16 @@ string SrsConfig::get_pid_file() return conf->arg0(); } -int SrsConfig::get_pithy_print_ms() +srs_utime_t SrsConfig::get_pithy_print() { - static int DEFAULT = 10000; + static srs_utime_t DEFAULT = 10 * SRS_UTIME_SECONDS; SrsConfDirective* conf = root->get("pithy_print_ms"); if (!conf || conf->arg0().empty()) { return DEFAULT; } - return ::atoi(conf->arg0().c_str()); + return (srs_utime_t)(::atoi(conf->arg0().c_str()) * SRS_UTIME_MILLISECONDS); } bool SrsConfig::get_utc_time() diff --git a/trunk/src/app/srs_app_config.hpp b/trunk/src/app/srs_app_config.hpp index bf882efdb..5e825f31b 100644 --- a/trunk/src/app/srs_app_config.hpp +++ b/trunk/src/app/srs_app_config.hpp @@ -604,11 +604,11 @@ public: */ virtual std::string get_pid_file(); /** - * get pithy print pulse ms, + * get pithy print pulse in srs_utime_t, * for example, all rtmp connections only print one message * every this interval in ms. */ - virtual int get_pithy_print_ms(); + virtual srs_utime_t get_pithy_print(); /** * whether use utc-time to format the time. */ diff --git a/trunk/src/app/srs_app_pithy_print.cpp b/trunk/src/app/srs_app_pithy_print.cpp index 34c81b51e..1bbd18d79 100644 --- a/trunk/src/app/srs_app_pithy_print.cpp +++ b/trunk/src/app/srs_app_pithy_print.cpp @@ -49,17 +49,17 @@ SrsStageInfo::~SrsStageInfo() void SrsStageInfo::update_print_time() { - pithy_print_time_ms = _srs_config->get_pithy_print_ms(); + interval = _srs_config->get_pithy_print(); } -void SrsStageInfo::elapse(int64_t diff) +void SrsStageInfo::elapse(srs_utime_t diff) { age += diff; } bool SrsStageInfo::can_print() { - int64_t can_print_age = nb_clients * pithy_print_time_ms; + srs_utime_t can_print_age = nb_clients * interval; bool can_print = age >= can_print_age; if (can_print) { @@ -211,7 +211,7 @@ void SrsPithyPrint::elapse() int64_t diff = srs_get_system_time_ms() - previous_tick; diff = srs_max(0, diff); - stage->elapse(diff); + stage->elapse(diff * SRS_UTIME_MILLISECONDS); _age += diff; previous_tick = srs_get_system_time_ms(); } diff --git a/trunk/src/app/srs_app_pithy_print.hpp b/trunk/src/app/srs_app_pithy_print.hpp index 26aecd245..9bfa811ab 100644 --- a/trunk/src/app/srs_app_pithy_print.hpp +++ b/trunk/src/app/srs_app_pithy_print.hpp @@ -27,6 +27,7 @@ #include #include +#include /** * the stage info to calc the age. @@ -35,16 +36,16 @@ class SrsStageInfo : public ISrsReloadHandler { public: int stage_id; - int pithy_print_time_ms; + srs_utime_t interval; int nb_clients; public: - int64_t age; + srs_utime_t age; public: SrsStageInfo(int _stage_id); virtual ~SrsStageInfo(); virtual void update_print_time(); public: - virtual void elapse(int64_t diff); + virtual void elapse(srs_utime_t diff); virtual bool can_print(); public: virtual srs_error_t on_reload_pithy_print(); diff --git a/trunk/src/utest/srs_utest_config.cpp b/trunk/src/utest/srs_utest_config.cpp index 3fc336af4..180728f9f 100644 --- a/trunk/src/utest/srs_utest_config.cpp +++ b/trunk/src/utest/srs_utest_config.cpp @@ -1835,5 +1835,13 @@ VOID TEST(ConfigUnitTest, CheckDefaultValues) EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"heartbeat{interval 10;}")); EXPECT_EQ(10 * SRS_UTIME_SECONDS, conf.get_heartbeat_interval()); } + + if (true) { + EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF)); + EXPECT_EQ(10 * SRS_UTIME_SECONDS, conf.get_pithy_print()); + + EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"pithy_print_ms 20000;")); + EXPECT_EQ(20 * SRS_UTIME_SECONDS, conf.get_pithy_print()); + } }