diff --git a/README.md b/README.md index 728152999..270a7569a 100755 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ For previous versions, please read: ## V4 changes +* v4.0, 2020-04-14, For [#307][bug #307], support sendmmsg, GSO and reuseport. 4.0.23 * v4.0, 2020-04-05, For [#307][bug #307], SRTP ASM only works with openssl-1.0, auto detect it. 4.0.22 * v4.0, 2020-04-04, Merge RTC and GB28181, with bugs fixed. 4.0.21 * v4.0, 2020-04-04, For [#307][bug #307], refine RTC latency from 600ms to 200ms. 4.0.20 diff --git a/trunk/src/app/srs_app_statistic.cpp b/trunk/src/app/srs_app_statistic.cpp index 62ba28764..92284c329 100644 --- a/trunk/src/app/srs_app_statistic.cpp +++ b/trunk/src/app/srs_app_statistic.cpp @@ -673,16 +673,16 @@ srs_error_t SrsStatistic::dumps_perf_writev(SrsJsonObject* obj) // h: <256 // i: <1000 // j: >=1000 - p->set("lt_3", SrsJsonAny::integer(perf_msgs->a)); - p->set("lt_5", SrsJsonAny::integer(perf_msgs->b)); - p->set("lt_9", SrsJsonAny::integer(perf_msgs->c)); - p->set("lt_16", SrsJsonAny::integer(perf_msgs->d)); - p->set("lt_32", SrsJsonAny::integer(perf_msgs->e)); - p->set("lt_64", SrsJsonAny::integer(perf_msgs->f)); - p->set("lt_128", SrsJsonAny::integer(perf_msgs->g)); - p->set("lt_256", SrsJsonAny::integer(perf_msgs->h)); - p->set("lt_1000", SrsJsonAny::integer(perf_msgs->i)); - p->set("gt_1000", SrsJsonAny::integer(perf_msgs->j)); + if (perf_msgs->a) p->set("lt_3", SrsJsonAny::integer(perf_msgs->a)); + if (perf_msgs->b) p->set("lt_5", SrsJsonAny::integer(perf_msgs->b)); + if (perf_msgs->c) p->set("lt_9", SrsJsonAny::integer(perf_msgs->c)); + if (perf_msgs->d) p->set("lt_16", SrsJsonAny::integer(perf_msgs->d)); + if (perf_msgs->e) p->set("lt_32", SrsJsonAny::integer(perf_msgs->e)); + if (perf_msgs->f) p->set("lt_64", SrsJsonAny::integer(perf_msgs->f)); + if (perf_msgs->g) p->set("lt_128", SrsJsonAny::integer(perf_msgs->g)); + if (perf_msgs->h) p->set("lt_256", SrsJsonAny::integer(perf_msgs->h)); + if (perf_msgs->i) p->set("lt_1000", SrsJsonAny::integer(perf_msgs->i)); + if (perf_msgs->j) p->set("gt_1000", SrsJsonAny::integer(perf_msgs->j)); } if (true) { @@ -700,16 +700,16 @@ srs_error_t SrsStatistic::dumps_perf_writev(SrsJsonObject* obj) // h: <900 // i: <1024 // j: >=1024 - p->set("lt_3", SrsJsonAny::integer(perf_iovs->a)); - p->set("lt_10", SrsJsonAny::integer(perf_iovs->b)); - p->set("lt_20", SrsJsonAny::integer(perf_iovs->c)); - p->set("lt_200", SrsJsonAny::integer(perf_iovs->d)); - p->set("lt_300", SrsJsonAny::integer(perf_iovs->e)); - p->set("lt_500", SrsJsonAny::integer(perf_iovs->f)); - p->set("lt_700", SrsJsonAny::integer(perf_iovs->g)); - p->set("lt_900", SrsJsonAny::integer(perf_iovs->h)); - p->set("lt_1024", SrsJsonAny::integer(perf_iovs->i)); - p->set("gt_1024", SrsJsonAny::integer(perf_iovs->j)); + if (perf_iovs->a) p->set("lt_3", SrsJsonAny::integer(perf_iovs->a)); + if (perf_iovs->b) p->set("lt_10", SrsJsonAny::integer(perf_iovs->b)); + if (perf_iovs->c) p->set("lt_20", SrsJsonAny::integer(perf_iovs->c)); + if (perf_iovs->d) p->set("lt_200", SrsJsonAny::integer(perf_iovs->d)); + if (perf_iovs->e) p->set("lt_300", SrsJsonAny::integer(perf_iovs->e)); + if (perf_iovs->f) p->set("lt_500", SrsJsonAny::integer(perf_iovs->f)); + if (perf_iovs->g) p->set("lt_700", SrsJsonAny::integer(perf_iovs->g)); + if (perf_iovs->h) p->set("lt_900", SrsJsonAny::integer(perf_iovs->h)); + if (perf_iovs->i) p->set("lt_1024", SrsJsonAny::integer(perf_iovs->i)); + if (perf_iovs->j) p->set("gt_1024", SrsJsonAny::integer(perf_iovs->j)); } return err; @@ -770,16 +770,16 @@ srs_error_t SrsStatistic::dumps_perf_sendmmsg(SrsJsonObject* obj) // h: <600 // i: <1000 // j: >=1000 - p->set("lt_2", SrsJsonAny::integer(perf_sendmmsg->a)); - p->set("lt_10", SrsJsonAny::integer(perf_sendmmsg->b)); - p->set("lt_100", SrsJsonAny::integer(perf_sendmmsg->c)); - p->set("lt_200", SrsJsonAny::integer(perf_sendmmsg->d)); - p->set("lt_300", SrsJsonAny::integer(perf_sendmmsg->e)); - p->set("lt_400", SrsJsonAny::integer(perf_sendmmsg->f)); - p->set("lt_500", SrsJsonAny::integer(perf_sendmmsg->g)); - p->set("lt_600", SrsJsonAny::integer(perf_sendmmsg->h)); - p->set("lt_1000", SrsJsonAny::integer(perf_sendmmsg->i)); - p->set("gt_1000", SrsJsonAny::integer(perf_sendmmsg->j)); + if (perf_sendmmsg->a) p->set("lt_2", SrsJsonAny::integer(perf_sendmmsg->a)); + if (perf_sendmmsg->b) p->set("lt_10", SrsJsonAny::integer(perf_sendmmsg->b)); + if (perf_sendmmsg->c) p->set("lt_100", SrsJsonAny::integer(perf_sendmmsg->c)); + if (perf_sendmmsg->d) p->set("lt_200", SrsJsonAny::integer(perf_sendmmsg->d)); + if (perf_sendmmsg->e) p->set("lt_300", SrsJsonAny::integer(perf_sendmmsg->e)); + if (perf_sendmmsg->f) p->set("lt_400", SrsJsonAny::integer(perf_sendmmsg->f)); + if (perf_sendmmsg->g) p->set("lt_500", SrsJsonAny::integer(perf_sendmmsg->g)); + if (perf_sendmmsg->h) p->set("lt_600", SrsJsonAny::integer(perf_sendmmsg->h)); + if (perf_sendmmsg->i) p->set("lt_1000", SrsJsonAny::integer(perf_sendmmsg->i)); + if (perf_sendmmsg->j) p->set("gt_1000", SrsJsonAny::integer(perf_sendmmsg->j)); } return err; @@ -840,16 +840,16 @@ srs_error_t SrsStatistic::dumps_perf_gso(SrsJsonObject* obj) // h: <128 // i: <512 // j: >=512 - p->set("lt_2", SrsJsonAny::integer(perf_gso->a)); - p->set("lt_3", SrsJsonAny::integer(perf_gso->b)); - p->set("lt_6", SrsJsonAny::integer(perf_gso->c)); - p->set("lt_9", SrsJsonAny::integer(perf_gso->d)); - p->set("lt_16", SrsJsonAny::integer(perf_gso->e)); - p->set("lt_32", SrsJsonAny::integer(perf_gso->f)); - p->set("lt_64", SrsJsonAny::integer(perf_gso->g)); - p->set("lt_128", SrsJsonAny::integer(perf_gso->h)); - p->set("lt_512", SrsJsonAny::integer(perf_gso->i)); - p->set("gt_512", SrsJsonAny::integer(perf_gso->j)); + if (perf_gso->a) p->set("lt_2", SrsJsonAny::integer(perf_gso->a)); + if (perf_gso->b) p->set("lt_3", SrsJsonAny::integer(perf_gso->b)); + if (perf_gso->c) p->set("lt_6", SrsJsonAny::integer(perf_gso->c)); + if (perf_gso->d) p->set("lt_9", SrsJsonAny::integer(perf_gso->d)); + if (perf_gso->e) p->set("lt_16", SrsJsonAny::integer(perf_gso->e)); + if (perf_gso->f) p->set("lt_32", SrsJsonAny::integer(perf_gso->f)); + if (perf_gso->g) p->set("lt_64", SrsJsonAny::integer(perf_gso->g)); + if (perf_gso->h) p->set("lt_128", SrsJsonAny::integer(perf_gso->h)); + if (perf_gso->i) p->set("lt_512", SrsJsonAny::integer(perf_gso->i)); + if (perf_gso->j) p->set("gt_512", SrsJsonAny::integer(perf_gso->j)); } return err; diff --git a/trunk/src/core/srs_core_performance.hpp b/trunk/src/core/srs_core_performance.hpp index adc38f3fa..ea077b89b 100644 --- a/trunk/src/core/srs_core_performance.hpp +++ b/trunk/src/core/srs_core_performance.hpp @@ -131,8 +131,8 @@ #define SRS_PERF_MW_MIN_MSGS 8 #define SRS_PERF_MW_MIN_MSGS_REALTIME 4 // For RTC, use smaller wait queue. - #define SRS_PERF_MW_MIN_MSGS_FOR_RTC 4 - #define SRS_PERF_MW_MIN_MSGS_FOR_RTC_REALTIME 2 + #define SRS_PERF_MW_MIN_MSGS_FOR_RTC 3 + #define SRS_PERF_MW_MIN_MSGS_FOR_RTC_REALTIME 1 #endif /** * the default value of vhost for diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index 34fd22900..e47dfdc68 100644 --- a/trunk/src/core/srs_core_version4.hpp +++ b/trunk/src/core/srs_core_version4.hpp @@ -24,6 +24,6 @@ #ifndef SRS_CORE_VERSION4_HPP #define SRS_CORE_VERSION4_HPP -#define SRS_VERSION4_REVISION 22 +#define SRS_VERSION4_REVISION 23 #endif