From b1e85664a1a6d7a3c729cfd2ad44e439fed7518e Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 8 May 2021 11:11:13 +0800 Subject: [PATCH] Refine init of global SrsPps --- trunk/src/app/srs_app_conn.cpp | 8 +- trunk/src/app/srs_app_hourglass.cpp | 2 +- trunk/src/app/srs_app_hybrid.cpp | 80 ++++----- trunk/src/app/srs_app_listener.cpp | 8 +- trunk/src/app/srs_app_rtc_conn.cpp | 16 +- trunk/src/app/srs_app_rtc_server.cpp | 6 +- trunk/src/app/srs_app_rtc_source.cpp | 20 +-- trunk/src/app/srs_app_threads.cpp | 218 +++++++++++++++++++++++- trunk/src/kernel/srs_kernel_flv.cpp | 2 +- trunk/src/kernel/srs_kernel_kbps.cpp | 14 +- trunk/src/kernel/srs_kernel_kbps.hpp | 3 - trunk/src/kernel/srs_kernel_rtc_rtp.cpp | 12 +- trunk/src/main/srs_main_server.cpp | 11 +- trunk/src/protocol/srs_service_log.cpp | 4 +- 14 files changed, 304 insertions(+), 100 deletions(-) diff --git a/trunk/src/app/srs_app_conn.cpp b/trunk/src/app/srs_app_conn.cpp index 42534c023..875f85564 100644 --- a/trunk/src/app/srs_app_conn.cpp +++ b/trunk/src/app/srs_app_conn.cpp @@ -38,10 +38,10 @@ using namespace std; #include -SrsPps* _srs_pps_ids = new SrsPps(); -SrsPps* _srs_pps_fids = new SrsPps(); -SrsPps* _srs_pps_fids_level0 = new SrsPps(); -SrsPps* _srs_pps_dispose = new SrsPps(); +SrsPps* _srs_pps_ids = NULL; +SrsPps* _srs_pps_fids = NULL; +SrsPps* _srs_pps_fids_level0 = NULL; +SrsPps* _srs_pps_dispose = NULL; ISrsDisposingHandler::ISrsDisposingHandler() { diff --git a/trunk/src/app/srs_app_hourglass.cpp b/trunk/src/app/srs_app_hourglass.cpp index 9f5467dcd..feb4024e0 100644 --- a/trunk/src/app/srs_app_hourglass.cpp +++ b/trunk/src/app/srs_app_hourglass.cpp @@ -32,7 +32,7 @@ using namespace std; #include -SrsPps* _srs_pps_timer = new SrsPps(); +SrsPps* _srs_pps_timer = NULL; extern SrsPps* _srs_pps_clock_15ms; extern SrsPps* _srs_pps_clock_20ms; diff --git a/trunk/src/app/srs_app_hybrid.cpp b/trunk/src/app/srs_app_hybrid.cpp index 9e0079a75..511263d78 100644 --- a/trunk/src/app/srs_app_hybrid.cpp +++ b/trunk/src/app/srs_app_hybrid.cpp @@ -44,10 +44,10 @@ extern unsigned long long _st_stat_recvfrom; extern unsigned long long _st_stat_recvfrom_eagain; extern unsigned long long _st_stat_sendto; extern unsigned long long _st_stat_sendto_eagain; -SrsPps* _srs_pps_recvfrom = new SrsPps(); -SrsPps* _srs_pps_recvfrom_eagain = new SrsPps(); -SrsPps* _srs_pps_sendto = new SrsPps(); -SrsPps* _srs_pps_sendto_eagain = new SrsPps(); +SrsPps* _srs_pps_recvfrom = NULL; +SrsPps* _srs_pps_recvfrom_eagain = NULL; +SrsPps* _srs_pps_sendto = NULL; +SrsPps* _srs_pps_sendto_eagain = NULL; extern unsigned long long _st_stat_read; extern unsigned long long _st_stat_read_eagain; @@ -55,30 +55,30 @@ extern unsigned long long _st_stat_readv; extern unsigned long long _st_stat_readv_eagain; extern unsigned long long _st_stat_writev; extern unsigned long long _st_stat_writev_eagain; -SrsPps* _srs_pps_read = new SrsPps(); -SrsPps* _srs_pps_read_eagain = new SrsPps(); -SrsPps* _srs_pps_readv = new SrsPps(); -SrsPps* _srs_pps_readv_eagain = new SrsPps(); -SrsPps* _srs_pps_writev = new SrsPps(); -SrsPps* _srs_pps_writev_eagain = new SrsPps(); +SrsPps* _srs_pps_read = NULL; +SrsPps* _srs_pps_read_eagain = NULL; +SrsPps* _srs_pps_readv = NULL; +SrsPps* _srs_pps_readv_eagain = NULL; +SrsPps* _srs_pps_writev = NULL; +SrsPps* _srs_pps_writev_eagain = NULL; extern unsigned long long _st_stat_recvmsg; extern unsigned long long _st_stat_recvmsg_eagain; extern unsigned long long _st_stat_sendmsg; extern unsigned long long _st_stat_sendmsg_eagain; -SrsPps* _srs_pps_recvmsg = new SrsPps(); -SrsPps* _srs_pps_recvmsg_eagain = new SrsPps(); -SrsPps* _srs_pps_sendmsg = new SrsPps(); -SrsPps* _srs_pps_sendmsg_eagain = new SrsPps(); +SrsPps* _srs_pps_recvmsg = NULL; +SrsPps* _srs_pps_recvmsg_eagain = NULL; +SrsPps* _srs_pps_sendmsg = NULL; +SrsPps* _srs_pps_sendmsg_eagain = NULL; extern unsigned long long _st_stat_epoll; extern unsigned long long _st_stat_epoll_zero; extern unsigned long long _st_stat_epoll_shake; extern unsigned long long _st_stat_epoll_spin; -SrsPps* _srs_pps_epoll = new SrsPps(); -SrsPps* _srs_pps_epoll_zero = new SrsPps(); -SrsPps* _srs_pps_epoll_shake = new SrsPps(); -SrsPps* _srs_pps_epoll_spin = new SrsPps(); +SrsPps* _srs_pps_epoll = NULL; +SrsPps* _srs_pps_epoll_zero = NULL; +SrsPps* _srs_pps_epoll_shake = NULL; +SrsPps* _srs_pps_epoll_spin = NULL; extern unsigned long long _st_stat_sched_15ms; extern unsigned long long _st_stat_sched_20ms; @@ -89,26 +89,26 @@ extern unsigned long long _st_stat_sched_40ms; extern unsigned long long _st_stat_sched_80ms; extern unsigned long long _st_stat_sched_160ms; extern unsigned long long _st_stat_sched_s; -SrsPps* _srs_pps_sched_15ms = new SrsPps(); -SrsPps* _srs_pps_sched_20ms = new SrsPps(); -SrsPps* _srs_pps_sched_25ms = new SrsPps(); -SrsPps* _srs_pps_sched_30ms = new SrsPps(); -SrsPps* _srs_pps_sched_35ms = new SrsPps(); -SrsPps* _srs_pps_sched_40ms = new SrsPps(); -SrsPps* _srs_pps_sched_80ms = new SrsPps(); -SrsPps* _srs_pps_sched_160ms = new SrsPps(); -SrsPps* _srs_pps_sched_s = new SrsPps(); +SrsPps* _srs_pps_sched_15ms = NULL; +SrsPps* _srs_pps_sched_20ms = NULL; +SrsPps* _srs_pps_sched_25ms = NULL; +SrsPps* _srs_pps_sched_30ms = NULL; +SrsPps* _srs_pps_sched_35ms = NULL; +SrsPps* _srs_pps_sched_40ms = NULL; +SrsPps* _srs_pps_sched_80ms = NULL; +SrsPps* _srs_pps_sched_160ms = NULL; +SrsPps* _srs_pps_sched_s = NULL; #endif -SrsPps* _srs_pps_clock_15ms = new SrsPps(); -SrsPps* _srs_pps_clock_20ms = new SrsPps(); -SrsPps* _srs_pps_clock_25ms = new SrsPps(); -SrsPps* _srs_pps_clock_30ms = new SrsPps(); -SrsPps* _srs_pps_clock_35ms = new SrsPps(); -SrsPps* _srs_pps_clock_40ms = new SrsPps(); -SrsPps* _srs_pps_clock_80ms = new SrsPps(); -SrsPps* _srs_pps_clock_160ms = new SrsPps(); -SrsPps* _srs_pps_timer_s = new SrsPps(); +SrsPps* _srs_pps_clock_15ms = NULL; +SrsPps* _srs_pps_clock_20ms = NULL; +SrsPps* _srs_pps_clock_25ms = NULL; +SrsPps* _srs_pps_clock_30ms = NULL; +SrsPps* _srs_pps_clock_35ms = NULL; +SrsPps* _srs_pps_clock_40ms = NULL; +SrsPps* _srs_pps_clock_80ms = NULL; +SrsPps* _srs_pps_clock_160ms = NULL; +SrsPps* _srs_pps_timer_s = NULL; #if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS) extern int _st_active_count; @@ -116,10 +116,10 @@ extern unsigned long long _st_stat_thread_run; extern unsigned long long _st_stat_thread_idle; extern unsigned long long _st_stat_thread_yield; extern unsigned long long _st_stat_thread_yield2; -SrsPps* _srs_pps_thread_run = new SrsPps(); -SrsPps* _srs_pps_thread_idle = new SrsPps(); -SrsPps* _srs_pps_thread_yield = new SrsPps(); -SrsPps* _srs_pps_thread_yield2 = new SrsPps(); +SrsPps* _srs_pps_thread_run = NULL; +SrsPps* _srs_pps_thread_idle = NULL; +SrsPps* _srs_pps_thread_yield = NULL; +SrsPps* _srs_pps_thread_yield2 = NULL; #endif extern SrsPps* _srs_pps_objs_rtps; diff --git a/trunk/src/app/srs_app_listener.cpp b/trunk/src/app/srs_app_listener.cpp index 0037a6d9c..9e7e4b692 100755 --- a/trunk/src/app/srs_app_listener.cpp +++ b/trunk/src/app/srs_app_listener.cpp @@ -45,11 +45,11 @@ using namespace std; #include -SrsPps* _srs_pps_rpkts = new SrsPps(); -SrsPps* _srs_pps_addrs = new SrsPps(); -SrsPps* _srs_pps_fast_addrs = new SrsPps(); +SrsPps* _srs_pps_rpkts = NULL; +SrsPps* _srs_pps_addrs = NULL; +SrsPps* _srs_pps_fast_addrs = NULL; -SrsPps* _srs_pps_spkts = new SrsPps(); +SrsPps* _srs_pps_spkts = NULL; // set the max packet size. #define SRS_UDP_MAX_PACKET_SIZE 65535 diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index b336e21cb..f6801a77f 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -61,15 +61,15 @@ using namespace std; #include -SrsPps* _srs_pps_sstuns = new SrsPps(); -SrsPps* _srs_pps_srtcps = new SrsPps(); -SrsPps* _srs_pps_srtps = new SrsPps(); +SrsPps* _srs_pps_sstuns = NULL; +SrsPps* _srs_pps_srtcps = NULL; +SrsPps* _srs_pps_srtps = NULL; -SrsPps* _srs_pps_pli = new SrsPps(); -SrsPps* _srs_pps_twcc = new SrsPps(); -SrsPps* _srs_pps_rr = new SrsPps(); -SrsPps* _srs_pps_pub = new SrsPps(); -SrsPps* _srs_pps_conn = new SrsPps(); +SrsPps* _srs_pps_pli = NULL; +SrsPps* _srs_pps_twcc = NULL; +SrsPps* _srs_pps_rr = NULL; +SrsPps* _srs_pps_pub = NULL; +SrsPps* _srs_pps_conn = NULL; extern SrsPps* _srs_pps_snack; extern SrsPps* _srs_pps_snack2; diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index 2e9bc9f65..335bfe722 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -46,9 +46,9 @@ using namespace std; #include extern SrsPps* _srs_pps_rpkts; -SrsPps* _srs_pps_rstuns = new SrsPps(); -SrsPps* _srs_pps_rrtps = new SrsPps(); -SrsPps* _srs_pps_rrtcps = new SrsPps(); +SrsPps* _srs_pps_rstuns = NULL; +SrsPps* _srs_pps_rrtps = NULL; +SrsPps* _srs_pps_rrtcps = NULL; extern SrsPps* _srs_pps_addrs; extern SrsPps* _srs_pps_fast_addrs; diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index c696cb0da..a2ff017c4 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -52,17 +52,17 @@ #include // The NACK sent by us(SFU). -SrsPps* _srs_pps_snack = new SrsPps(); -SrsPps* _srs_pps_snack2 = new SrsPps(); -SrsPps* _srs_pps_snack3 = new SrsPps(); -SrsPps* _srs_pps_snack4 = new SrsPps(); -SrsPps* _srs_pps_sanack = new SrsPps(); -SrsPps* _srs_pps_svnack = new SrsPps(); +SrsPps* _srs_pps_snack = NULL; +SrsPps* _srs_pps_snack2 = NULL; +SrsPps* _srs_pps_snack3 = NULL; +SrsPps* _srs_pps_snack4 = NULL; +SrsPps* _srs_pps_sanack = NULL; +SrsPps* _srs_pps_svnack = NULL; -SrsPps* _srs_pps_rnack = new SrsPps(); -SrsPps* _srs_pps_rnack2 = new SrsPps(); -SrsPps* _srs_pps_rhnack = new SrsPps(); -SrsPps* _srs_pps_rmnack = new SrsPps(); +SrsPps* _srs_pps_rnack = NULL; +SrsPps* _srs_pps_rnack2 = NULL; +SrsPps* _srs_pps_rhnack = NULL; +SrsPps* _srs_pps_rmnack = NULL; extern SrsPps* _srs_pps_aloss2; diff --git a/trunk/src/app/srs_app_threads.cpp b/trunk/src/app/srs_app_threads.cpp index c81a07b52..fabaff593 100644 --- a/trunk/src/app/srs_app_threads.cpp +++ b/trunk/src/app/srs_app_threads.cpp @@ -37,7 +37,111 @@ extern SrsPps* _srs_pps_snack2; extern SrsPps* _srs_pps_snack3; extern SrsPps* _srs_pps_snack4; -SrsPps* _srs_pps_aloss2 = new SrsPps(); +SrsPps* _srs_pps_aloss2 = NULL; + +extern SrsPps* _srs_pps_ids; +extern SrsPps* _srs_pps_fids; +extern SrsPps* _srs_pps_fids_level0; +extern SrsPps* _srs_pps_dispose; + +extern SrsPps* _srs_pps_timer; + +extern SrsPps* _srs_pps_snack; +extern SrsPps* _srs_pps_snack2; +extern SrsPps* _srs_pps_snack3; +extern SrsPps* _srs_pps_snack4; +extern SrsPps* _srs_pps_sanack; +extern SrsPps* _srs_pps_svnack; + +extern SrsPps* _srs_pps_rnack; +extern SrsPps* _srs_pps_rnack2; +extern SrsPps* _srs_pps_rhnack; +extern SrsPps* _srs_pps_rmnack; + +#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS) +extern SrsPps* _srs_pps_recvfrom; +extern SrsPps* _srs_pps_recvfrom_eagain; +extern SrsPps* _srs_pps_sendto; +extern SrsPps* _srs_pps_sendto_eagain; + +extern SrsPps* _srs_pps_read; +extern SrsPps* _srs_pps_read_eagain; +extern SrsPps* _srs_pps_readv; +extern SrsPps* _srs_pps_readv_eagain; +extern SrsPps* _srs_pps_writev; +extern SrsPps* _srs_pps_writev_eagain; + +extern SrsPps* _srs_pps_recvmsg; +extern SrsPps* _srs_pps_recvmsg_eagain; +extern SrsPps* _srs_pps_sendmsg; +extern SrsPps* _srs_pps_sendmsg_eagain; + +extern SrsPps* _srs_pps_epoll; +extern SrsPps* _srs_pps_epoll_zero; +extern SrsPps* _srs_pps_epoll_shake; +extern SrsPps* _srs_pps_epoll_spin; + +extern SrsPps* _srs_pps_sched_15ms; +extern SrsPps* _srs_pps_sched_20ms; +extern SrsPps* _srs_pps_sched_25ms; +extern SrsPps* _srs_pps_sched_30ms; +extern SrsPps* _srs_pps_sched_35ms; +extern SrsPps* _srs_pps_sched_40ms; +extern SrsPps* _srs_pps_sched_80ms; +extern SrsPps* _srs_pps_sched_160ms; +extern SrsPps* _srs_pps_sched_s; +#endif + +extern SrsPps* _srs_pps_clock_15ms; +extern SrsPps* _srs_pps_clock_20ms; +extern SrsPps* _srs_pps_clock_25ms; +extern SrsPps* _srs_pps_clock_30ms; +extern SrsPps* _srs_pps_clock_35ms; +extern SrsPps* _srs_pps_clock_40ms; +extern SrsPps* _srs_pps_clock_80ms; +extern SrsPps* _srs_pps_clock_160ms; +extern SrsPps* _srs_pps_timer_s; + +#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS) +extern SrsPps* _srs_pps_thread_run; +extern SrsPps* _srs_pps_thread_idle; +extern SrsPps* _srs_pps_thread_yield; +extern SrsPps* _srs_pps_thread_yield2; +#endif + +extern SrsPps* _srs_pps_rpkts; +extern SrsPps* _srs_pps_addrs; +extern SrsPps* _srs_pps_fast_addrs; + +extern SrsPps* _srs_pps_spkts; + +extern SrsPps* _srs_pps_sstuns; +extern SrsPps* _srs_pps_srtcps; +extern SrsPps* _srs_pps_srtps; + +extern SrsPps* _srs_pps_pli; +extern SrsPps* _srs_pps_twcc; +extern SrsPps* _srs_pps_rr; +extern SrsPps* _srs_pps_pub; +extern SrsPps* _srs_pps_conn; + +extern SrsPps* _srs_pps_rstuns; +extern SrsPps* _srs_pps_rrtps; +extern SrsPps* _srs_pps_rrtcps; + +extern SrsPps* _srs_pps_aloss2; + +extern SrsPps* _srs_pps_cids_get; +extern SrsPps* _srs_pps_cids_set; + +extern SrsPps* _srs_pps_objs_msgs; + +extern SrsPps* _srs_pps_objs_rtps; +extern SrsPps* _srs_pps_objs_rraw; +extern SrsPps* _srs_pps_objs_rfua; +extern SrsPps* _srs_pps_objs_rbuf; +extern SrsPps* _srs_pps_objs_rothers; +extern SrsPps* _srs_pps_objs_drop; SrsCircuitBreaker::SrsCircuitBreaker() { @@ -151,13 +255,123 @@ srs_error_t srs_thread_initialize() { srs_error_t err = srs_success; - // init st + // The clock wall object. + _srs_clock = new SrsWallClock(); + + // The pps cids depends by st init. + _srs_pps_cids_get = new SrsPps(); + _srs_pps_cids_set = new SrsPps(); + + // Initialize ST, which depends on pps cids. if ((err = srs_st_init()) != srs_success) { return srs_error_wrap(err, "initialize st failed"); } + // The global hybrid server. _srs_hybrid = new SrsHybridServer(); + // Initialize global pps, which depends on _srs_clock + _srs_pps_ids = new SrsPps(); + _srs_pps_fids = new SrsPps(); + _srs_pps_fids_level0 = new SrsPps(); + _srs_pps_dispose = new SrsPps(); + + _srs_pps_timer = new SrsPps(); + + _srs_pps_snack = new SrsPps(); + _srs_pps_snack2 = new SrsPps(); + _srs_pps_snack3 = new SrsPps(); + _srs_pps_snack4 = new SrsPps(); + _srs_pps_sanack = new SrsPps(); + _srs_pps_svnack = new SrsPps(); + + _srs_pps_rnack = new SrsPps(); + _srs_pps_rnack2 = new SrsPps(); + _srs_pps_rhnack = new SrsPps(); + _srs_pps_rmnack = new SrsPps(); + +#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS) + _srs_pps_recvfrom = new SrsPps(); + _srs_pps_recvfrom_eagain = new SrsPps(); + _srs_pps_sendto = new SrsPps(); + _srs_pps_sendto_eagain = new SrsPps(); + + _srs_pps_read = new SrsPps(); + _srs_pps_read_eagain = new SrsPps(); + _srs_pps_readv = new SrsPps(); + _srs_pps_readv_eagain = new SrsPps(); + _srs_pps_writev = new SrsPps(); + _srs_pps_writev_eagain = new SrsPps(); + + _srs_pps_recvmsg = new SrsPps(); + _srs_pps_recvmsg_eagain = new SrsPps(); + _srs_pps_sendmsg = new SrsPps(); + _srs_pps_sendmsg_eagain = new SrsPps(); + + _srs_pps_epoll = new SrsPps(); + _srs_pps_epoll_zero = new SrsPps(); + _srs_pps_epoll_shake = new SrsPps(); + _srs_pps_epoll_spin = new SrsPps(); + + _srs_pps_sched_15ms = new SrsPps(); + _srs_pps_sched_20ms = new SrsPps(); + _srs_pps_sched_25ms = new SrsPps(); + _srs_pps_sched_30ms = new SrsPps(); + _srs_pps_sched_35ms = new SrsPps(); + _srs_pps_sched_40ms = new SrsPps(); + _srs_pps_sched_80ms = new SrsPps(); + _srs_pps_sched_160ms = new SrsPps(); + _srs_pps_sched_s = new SrsPps(); +#endif + + _srs_pps_clock_15ms = new SrsPps(); + _srs_pps_clock_20ms = new SrsPps(); + _srs_pps_clock_25ms = new SrsPps(); + _srs_pps_clock_30ms = new SrsPps(); + _srs_pps_clock_35ms = new SrsPps(); + _srs_pps_clock_40ms = new SrsPps(); + _srs_pps_clock_80ms = new SrsPps(); + _srs_pps_clock_160ms = new SrsPps(); + _srs_pps_timer_s = new SrsPps(); + +#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS) + _srs_pps_thread_run = new SrsPps(); + _srs_pps_thread_idle = new SrsPps(); + _srs_pps_thread_yield = new SrsPps(); + _srs_pps_thread_yield2 = new SrsPps(); +#endif + + _srs_pps_rpkts = new SrsPps(); + _srs_pps_addrs = new SrsPps(); + _srs_pps_fast_addrs = new SrsPps(); + + _srs_pps_spkts = new SrsPps(); + + _srs_pps_sstuns = new SrsPps(); + _srs_pps_srtcps = new SrsPps(); + _srs_pps_srtps = new SrsPps(); + + _srs_pps_pli = new SrsPps(); + _srs_pps_twcc = new SrsPps(); + _srs_pps_rr = new SrsPps(); + _srs_pps_pub = new SrsPps(); + _srs_pps_conn = new SrsPps(); + + _srs_pps_rstuns = new SrsPps(); + _srs_pps_rrtps = new SrsPps(); + _srs_pps_rrtcps = new SrsPps(); + + _srs_pps_aloss2 = new SrsPps(); + + _srs_pps_objs_msgs = new SrsPps(); + + _srs_pps_objs_rtps = new SrsPps(); + _srs_pps_objs_rraw = new SrsPps(); + _srs_pps_objs_rfua = new SrsPps(); + _srs_pps_objs_rbuf = new SrsPps(); + _srs_pps_objs_rothers = new SrsPps(); + _srs_pps_objs_drop = new SrsPps(); + return err; } diff --git a/trunk/src/kernel/srs_kernel_flv.cpp b/trunk/src/kernel/srs_kernel_flv.cpp index d66816a79..0a34c0034 100644 --- a/trunk/src/kernel/srs_kernel_flv.cpp +++ b/trunk/src/kernel/srs_kernel_flv.cpp @@ -43,7 +43,7 @@ using namespace std; #include -SrsPps* _srs_pps_objs_msgs = new SrsPps(); +SrsPps* _srs_pps_objs_msgs = NULL; SrsMessageHeader::SrsMessageHeader() { diff --git a/trunk/src/kernel/srs_kernel_kbps.cpp b/trunk/src/kernel/srs_kernel_kbps.cpp index fbaf2074a..fb82c96bb 100644 --- a/trunk/src/kernel/srs_kernel_kbps.cpp +++ b/trunk/src/kernel/srs_kernel_kbps.cpp @@ -61,7 +61,7 @@ void srs_pps_update(SrsRateSample& sample, int64_t nn, srs_utime_t now) SrsPps::SrsPps() { - clk_ = NULL; + clk_ = _srs_clock; sugar = 0; } @@ -69,11 +69,6 @@ SrsPps::~SrsPps() { } -void SrsPps::set_clock(SrsWallClock* clk) -{ - clk_ = clk; -} - void SrsPps::update() { update(sugar); @@ -81,10 +76,7 @@ void SrsPps::update() void SrsPps::update(int64_t nn) { - // Lazy setup the clock. - if (!clk_) { - clk_ = _srs_clock; - } + srs_assert(clk_); srs_utime_t now = clk_->now(); @@ -129,5 +121,5 @@ srs_utime_t SrsWallClock::now() return srs_get_system_time(); } -SrsWallClock* _srs_clock = new SrsWallClock(); +SrsWallClock* _srs_clock = NULL; diff --git a/trunk/src/kernel/srs_kernel_kbps.hpp b/trunk/src/kernel/srs_kernel_kbps.hpp index c10d8317e..db97f965b 100644 --- a/trunk/src/kernel/srs_kernel_kbps.hpp +++ b/trunk/src/kernel/srs_kernel_kbps.hpp @@ -63,9 +63,6 @@ public: public: SrsPps(); virtual ~SrsPps(); -private: - // Setup the clock, use global clock if not set. - void set_clock(SrsWallClock* clk); public: // Update with the nn which is target. void update(); diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp index 5474d9106..ef5b840fb 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp @@ -36,12 +36,12 @@ using namespace std; #include -SrsPps* _srs_pps_objs_rtps = new SrsPps(); -SrsPps* _srs_pps_objs_rraw = new SrsPps(); -SrsPps* _srs_pps_objs_rfua = new SrsPps(); -SrsPps* _srs_pps_objs_rbuf = new SrsPps(); -SrsPps* _srs_pps_objs_rothers = new SrsPps(); -SrsPps* _srs_pps_objs_drop = new SrsPps(); +SrsPps* _srs_pps_objs_rtps = NULL; +SrsPps* _srs_pps_objs_rraw = NULL; +SrsPps* _srs_pps_objs_rfua = NULL; +SrsPps* _srs_pps_objs_rbuf = NULL; +SrsPps* _srs_pps_objs_rothers = NULL; +SrsPps* _srs_pps_objs_drop = NULL; /* @see https://tools.ietf.org/html/rfc1889#section-5.1 0 1 2 3 diff --git a/trunk/src/main/srs_main_server.cpp b/trunk/src/main/srs_main_server.cpp index 727c41b45..e719a3684 100644 --- a/trunk/src/main/srs_main_server.cpp +++ b/trunk/src/main/srs_main_server.cpp @@ -92,7 +92,10 @@ srs_error_t do_main(int argc, char** argv) if ((err = srs_thread_initialize()) != srs_success) { return srs_error_wrap(err, "thread init"); } - + + // For background context id. + _srs_context->set_id(_srs_context->generate_id()); + // TODO: support both little and big endian. srs_assert(srs_is_little_endian()); @@ -220,10 +223,8 @@ srs_error_t do_main(int argc, char** argv) return err; } -int main(int argc, char** argv) { - // For background context id. - _srs_context->set_id(_srs_context->generate_id()); - +int main(int argc, char** argv) +{ srs_error_t err = do_main(argc, argv); if (err != srs_success) { diff --git a/trunk/src/protocol/srs_service_log.cpp b/trunk/src/protocol/srs_service_log.cpp index 4c30d9450..6f6b416a3 100644 --- a/trunk/src/protocol/srs_service_log.cpp +++ b/trunk/src/protocol/srs_service_log.cpp @@ -35,8 +35,8 @@ using namespace std; #include -SrsPps* _srs_pps_cids_get = new SrsPps(); -SrsPps* _srs_pps_cids_set = new SrsPps(); +SrsPps* _srs_pps_cids_get = NULL; +SrsPps* _srs_pps_cids_set = NULL; #define SRS_BASIC_LOG_SIZE 8192