mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	refine core, move specified functions to kernel utility.
This commit is contained in:
		
							parent
							
								
									7c7920698d
								
							
						
					
					
						commit
						31b568b013
					
				
					 30 changed files with 224 additions and 165 deletions
				
			
		|  | @ -346,7 +346,7 @@ function write_nginx_html5() | |||
| END | ||||
| } | ||||
| # create the nginx dir, for http-server if not build nginx | ||||
| rm -rf ${SRS_OBJS}/nginx && mkdir -p ${SRS_OBJS}/nginx | ||||
| mkdir -p ${SRS_OBJS}/nginx | ||||
| # make nginx | ||||
| __SRS_BUILD_NGINX=NO; if [ $SRS_EMBEDED_CPU = NO ]; then if [ $SRS_NGINX = YES ]; then __SRS_BUILD_NGINX=YES; fi fi | ||||
| if [ $__SRS_BUILD_NGINX = YES ]; then | ||||
|  |  | |||
|  | @ -70,6 +70,8 @@ SRS_PURE_RTMP=NO | |||
| SRS_RTMP_HLS=NO | ||||
| # the most fast compile, nothing, only support vp6 RTMP. | ||||
| SRS_DISABLE_ALL=NO | ||||
| # all features is on | ||||
| SRS_ENABLE_ALL=NO | ||||
| # | ||||
| # calc | ||||
| # whether embed cpu, arm/mips | ||||
|  | @ -146,6 +148,7 @@ Presets: | |||
|   --pure-rtmp               only support RTMP with ssl. | ||||
|   --rtmp-hls                only support RTMP+HLS with ssl. | ||||
|   --disable-all             disable all features, only support vp6 RTMP. | ||||
|   --full                    enable all features. | ||||
|    | ||||
| Conflicts: | ||||
|   1. --with-gmc vs --with-gmp:  | ||||
|  | @ -229,6 +232,7 @@ function parse_user_option() { | |||
|         --disable-all)                  SRS_DISABLE_ALL=YES         ;; | ||||
|         --pure-rtmp)                    SRS_PURE_RTMP=YES           ;; | ||||
|         --rtmp-hls)                     SRS_RTMP_HLS=YES            ;; | ||||
|         --full)                         SRS_ENABLE_ALL=YES          ;; | ||||
|          | ||||
|         --use-sys-ssl)                  SRS_USE_SYS_SSL=YES         ;; | ||||
| 
 | ||||
|  | @ -272,6 +276,7 @@ function apply_user_presets() { | |||
|         if [ $SRS_PURE_RTMP = NO ]; then | ||||
|             if [ $SRS_FAST = NO ]; then | ||||
|                 if [ $SRS_DISABLE_ALL = NO ]; then | ||||
|                     if [ $SRS_ENABLE_ALL = NO ]; then | ||||
|                         if [ $SRS_DEV = NO ]; then | ||||
|                             if [ $SRS_ARM_UBUNTU12 = NO ]; then | ||||
|                                 if [ $SRS_MIPS_UBUNTU12 = NO ]; then | ||||
|  | @ -287,6 +292,7 @@ function apply_user_presets() { | |||
|                 fi | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
|      | ||||
|     # whether embeded cpu. | ||||
|     if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||||
|  | @ -321,6 +327,31 @@ function apply_user_presets() { | |||
|         SRS_STATIC=NO | ||||
|     fi | ||||
| 
 | ||||
|     # all enabled. | ||||
|     if [ $SRS_ENABLE_ALL = YES ]; then | ||||
|         SRS_HLS=YES | ||||
|         SRS_DVR=YES | ||||
|         SRS_NGINX=YES | ||||
|         SRS_SSL=YES | ||||
|         SRS_FFMPEG_TOOL=YES | ||||
|         SRS_TRANSCODE=YES | ||||
|         SRS_INGEST=YES | ||||
|         SRS_HTTP_PARSER=YES | ||||
|         SRS_HTTP_CALLBACK=YES | ||||
|         SRS_HTTP_SERVER=YES | ||||
|         SRS_HTTP_API=YES | ||||
|         SRS_LIBRTMP=YES | ||||
|         SRS_BWTC=YES | ||||
|         SRS_RESEARCH=YES | ||||
|         SRS_UTEST=YES | ||||
|         SRS_GPERF=NO | ||||
|         SRS_GPERF_MC=NO | ||||
|         SRS_GPERF_MP=NO | ||||
|         SRS_GPERF_CP=NO | ||||
|         SRS_GPROF=NO | ||||
|         SRS_STATIC=NO | ||||
|     fi | ||||
| 
 | ||||
|     # only rtmp vp6 | ||||
|     if [ $SRS_FAST = YES ]; then | ||||
|         SRS_HLS=NO | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| */ | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| #ifdef SRS_AUTO_DVR | ||||
| 
 | ||||
| class SrsSource; | ||||
|  |  | |||
|  | @ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_core_autofree.hpp> | ||||
| #include <srs_app_socket.hpp> | ||||
| #include <srs_app_kbps.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // when error, edge ingester sleep for a while and retry.
 | ||||
| #define SRS_EDGE_INGESTER_SLEEP_US (int64_t)(1*1000*1000LL) | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ using namespace std; | |||
| #include <srs_app_pithy_print.hpp> | ||||
| #include <srs_protocol_rtmp_stack.hpp> | ||||
| #include <srs_app_ffmpeg.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| #ifdef SRS_AUTO_TRANSCODE | ||||
| 
 | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_protocol_utility.hpp> | ||||
| #include <srs_protocol_rtmp.hpp> | ||||
| #include <srs_app_kbps.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // when error, forwarder sleep for a while and retry.
 | ||||
| #define SRS_FORWARDER_SLEEP_US (int64_t)(3*1000*1000LL) | ||||
|  |  | |||
|  | @ -43,6 +43,7 @@ using namespace std; | |||
| #include <srs_core_autofree.hpp> | ||||
| #include <srs_protocol_rtmp.hpp> | ||||
| #include <srs_app_pithy_print.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // max PES packets size to flush the video.
 | ||||
| #define SRS_AUTO_HLS_AUDIO_CACHE_SIZE 1024 * 1024 | ||||
|  |  | |||
|  | @ -35,6 +35,7 @@ using namespace std; | |||
| #include <srs_app_http_api.hpp> | ||||
| #include <srs_app_http_conn.hpp> | ||||
| #include <srs_app_json.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| #define SRS_DEFAULT_HTTP_PORT 80 | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ using namespace std; | |||
| #include <srs_kernel_error.hpp> | ||||
| #include <srs_kernel_log.hpp> | ||||
| #include <srs_app_socket.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| SrsHttpClient::SrsHttpClient() | ||||
| { | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| */ | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| #ifdef SRS_AUTO_HTTP_PARSER | ||||
| 
 | ||||
| #include <srs_app_st.hpp> | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ using namespace std; | |||
| #include <srs_app_json.hpp> | ||||
| #include <srs_app_config.hpp> | ||||
| #include <srs_kernel_flv.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| #define SRS_HTTP_DEFAULT_PAGE "index.html" | ||||
| 
 | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| */ | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| #ifdef SRS_AUTO_HTTP_CALLBACK | ||||
| 
 | ||||
| #include <http_parser.h> | ||||
|  |  | |||
|  | @ -32,6 +32,7 @@ using namespace std; | |||
| #include <srs_kernel_log.hpp> | ||||
| #include <srs_app_ffmpeg.hpp> | ||||
| #include <srs_app_pithy_print.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // when error, ingester sleep for a while and retry.
 | ||||
| // ingest never sleep a long time, for we must start the stream ASAP.
 | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_app_config.hpp> | ||||
| #include <srs_kernel_error.hpp> | ||||
| #include <srs_app_utility.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| SrsThreadContext::SrsThreadContext() | ||||
| { | ||||
|  |  | |||
|  | @ -46,6 +46,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_app_utility.hpp> | ||||
| #include <srs_app_heartbeat.hpp> | ||||
| 
 | ||||
| // signal defines.
 | ||||
| #define SIGNAL_RELOAD SIGHUP | ||||
| 
 | ||||
| #define SERVER_LISTEN_BACKLOG 512 | ||||
| 
 | ||||
| // system interval
 | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ using namespace std; | |||
| #include <srs_app_dvr.hpp> | ||||
| #include <srs_kernel_stream.hpp> | ||||
| #include <srs_app_edge.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| #define CONST_MAX_JITTER_MS         500 | ||||
| #define DEFAULT_FRAME_TIME_MS         40 | ||||
|  |  | |||
|  | @ -26,6 +26,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_kernel_error.hpp> | ||||
| #include <srs_kernel_log.hpp> | ||||
| 
 | ||||
| // const time for st to convert to us
 | ||||
| #define SRS_TIME_MILLISECONDS 1000 | ||||
| #define SRS_TIME_SECONDS 1000000 | ||||
| 
 | ||||
| ISrsThreadHandler::ISrsThreadHandler() | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -23,128 +23,3 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 
 | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string.h> | ||||
| #include <netdb.h> | ||||
| #include <arpa/inet.h> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| string srs_string_replace(string str, string old_str, string new_str) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     if (old_str == new_str) { | ||||
|         return ret; | ||||
|     } | ||||
|      | ||||
|     size_t pos = 0; | ||||
|     while ((pos = ret.find(old_str, pos)) != std::string::npos) { | ||||
|         ret = ret.replace(pos, old_str.length(), new_str); | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_trim_end(string str, string trim_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)trim_chars.length(); i++) { | ||||
|         char ch = trim_chars.at(i); | ||||
|          | ||||
|         while (!ret.empty() && ret.at(ret.length() - 1) == ch) { | ||||
|             ret.erase(ret.end() - 1); | ||||
|              | ||||
|             // ok, matched, should reset the search
 | ||||
|             i = 0; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_trim_start(string str, string trim_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)trim_chars.length(); i++) { | ||||
|         char ch = trim_chars.at(i); | ||||
|          | ||||
|         while (!ret.empty() && ret.at(0) == ch) { | ||||
|             ret.erase(ret.begin()); | ||||
|              | ||||
|             // ok, matched, should reset the search
 | ||||
|             i = 0; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_remove(string str, string remove_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)remove_chars.length(); i++) { | ||||
|         char ch = remove_chars.at(i); | ||||
|          | ||||
|         for (std::string::iterator it = ret.begin(); it != ret.end();) { | ||||
|             if (ch == *it) { | ||||
|                 it = ret.erase(it); | ||||
|                  | ||||
|                 // ok, matched, should reset the search
 | ||||
|                 i = 0; | ||||
|             } else { | ||||
|                 ++it; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| bool srs_string_ends_with(string str, string flag) | ||||
| { | ||||
|     return str.rfind(flag) == str.length() - flag.length(); | ||||
| } | ||||
| 
 | ||||
| string srs_dns_resolve(string host) | ||||
| { | ||||
|     if (inet_addr(host.c_str()) != INADDR_NONE) { | ||||
|         return host; | ||||
|     } | ||||
|      | ||||
|     hostent* answer = gethostbyname(host.c_str()); | ||||
|     if (answer == NULL) { | ||||
|         return ""; | ||||
|     } | ||||
|      | ||||
|     char ipv4[16]; | ||||
|     memset(ipv4, 0, sizeof(ipv4)); | ||||
|     for (int i = 0; i < answer->h_length; i++) { | ||||
|         inet_ntop(AF_INET, answer->h_addr_list[i], ipv4, sizeof(ipv4)); | ||||
|         break; | ||||
|     } | ||||
|      | ||||
|     return ipv4; | ||||
| } | ||||
| 
 | ||||
| bool srs_is_little_endian() | ||||
| { | ||||
|     // convert to network(big-endian) order, if not equals, 
 | ||||
|     // the system is little-endian, so need to convert the int64
 | ||||
|     static int little_endian_check = -1; | ||||
|      | ||||
|     if(little_endian_check == -1) { | ||||
|         union { | ||||
|             int32_t i; | ||||
|             int8_t c; | ||||
|         } little_check_union; | ||||
|          | ||||
|         little_check_union.i = 0x01; | ||||
|         little_endian_check = little_check_union.c; | ||||
|     } | ||||
|      | ||||
|     return (little_endian_check == 1); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -85,30 +85,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| // it's recomments to free each elem explicit.
 | ||||
| // so we remove the srs_freepa utility.
 | ||||
| 
 | ||||
| // compare
 | ||||
| #define srs_min(a, b) (((a) < (b))? (a) : (b)) | ||||
| #define srs_max(a, b) (((a) < (b))? (b) : (a)) | ||||
| 
 | ||||
| // signal defines.
 | ||||
| #define SIGNAL_RELOAD SIGHUP | ||||
| 
 | ||||
| #include <string> | ||||
| // replace old_str to new_str of str
 | ||||
| extern std::string srs_string_replace(std::string str, std::string old_str, std::string new_str); | ||||
| // trim char in trim_chars of str
 | ||||
| extern std::string srs_string_trim_end(std::string str, std::string trim_chars); | ||||
| // trim char in trim_chars of str
 | ||||
| extern std::string srs_string_trim_start(std::string str, std::string trim_chars); | ||||
| // remove char in remove_chars of str
 | ||||
| extern std::string srs_string_remove(std::string str, std::string remove_chars); | ||||
| // whether string end with
 | ||||
| extern bool srs_string_ends_with(std::string str, std::string flag); | ||||
| 
 | ||||
| // dns resolve utility, return the resolved ip address.
 | ||||
| extern std::string srs_dns_resolve(std::string host); | ||||
| // whether system is little endian
 | ||||
| extern bool srs_is_little_endian(); | ||||
| 
 | ||||
| /**
 | ||||
| * disable copy constructor of class | ||||
| */ | ||||
|  | @ -120,8 +96,4 @@ extern bool srs_is_little_endian(); | |||
|         className(const className&); \ | ||||
|         className& operator= (const className&) | ||||
| 
 | ||||
| // const time for st to convert to us
 | ||||
| #define SRS_TIME_MILLISECONDS 1000 | ||||
| #define SRS_TIME_SECONDS 1000000 | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| */ | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| class SrsStream; | ||||
| 
 | ||||
| /**
 | ||||
|  |  | |||
|  | @ -27,6 +27,7 @@ using namespace std; | |||
| 
 | ||||
| #include <srs_kernel_log.hpp> | ||||
| #include <srs_kernel_error.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| SrsStream::SrsStream() | ||||
| { | ||||
|  |  | |||
|  | @ -23,8 +23,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 
 | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| #include <sys/time.h> | ||||
| #include <unistd.h> | ||||
| #include <string.h> | ||||
| #include <netdb.h> | ||||
| #include <arpa/inet.h> | ||||
| #include <sys/time.h> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| #include <srs_kernel_log.hpp> | ||||
| 
 | ||||
|  | @ -58,3 +63,122 @@ void srs_update_system_time_ms() | |||
|      | ||||
|     _srs_system_time_us_cache = now_us; | ||||
| } | ||||
| 
 | ||||
| string srs_dns_resolve(string host) | ||||
| { | ||||
|     if (inet_addr(host.c_str()) != INADDR_NONE) { | ||||
|         return host; | ||||
|     } | ||||
|      | ||||
|     hostent* answer = gethostbyname(host.c_str()); | ||||
|     if (answer == NULL) { | ||||
|         return ""; | ||||
|     } | ||||
|      | ||||
|     char ipv4[16]; | ||||
|     memset(ipv4, 0, sizeof(ipv4)); | ||||
|     for (int i = 0; i < answer->h_length; i++) { | ||||
|         inet_ntop(AF_INET, answer->h_addr_list[i], ipv4, sizeof(ipv4)); | ||||
|         break; | ||||
|     } | ||||
|      | ||||
|     return ipv4; | ||||
| } | ||||
| 
 | ||||
| bool srs_is_little_endian() | ||||
| { | ||||
|     // convert to network(big-endian) order, if not equals, 
 | ||||
|     // the system is little-endian, so need to convert the int64
 | ||||
|     static int little_endian_check = -1; | ||||
|      | ||||
|     if(little_endian_check == -1) { | ||||
|         union { | ||||
|             int32_t i; | ||||
|             int8_t c; | ||||
|         } little_check_union; | ||||
|          | ||||
|         little_check_union.i = 0x01; | ||||
|         little_endian_check = little_check_union.c; | ||||
|     } | ||||
|      | ||||
|     return (little_endian_check == 1); | ||||
| } | ||||
| 
 | ||||
| string srs_string_replace(string str, string old_str, string new_str) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     if (old_str == new_str) { | ||||
|         return ret; | ||||
|     } | ||||
|      | ||||
|     size_t pos = 0; | ||||
|     while ((pos = ret.find(old_str, pos)) != std::string::npos) { | ||||
|         ret = ret.replace(pos, old_str.length(), new_str); | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_trim_end(string str, string trim_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)trim_chars.length(); i++) { | ||||
|         char ch = trim_chars.at(i); | ||||
|          | ||||
|         while (!ret.empty() && ret.at(ret.length() - 1) == ch) { | ||||
|             ret.erase(ret.end() - 1); | ||||
|              | ||||
|             // ok, matched, should reset the search
 | ||||
|             i = 0; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_trim_start(string str, string trim_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)trim_chars.length(); i++) { | ||||
|         char ch = trim_chars.at(i); | ||||
|          | ||||
|         while (!ret.empty() && ret.at(0) == ch) { | ||||
|             ret.erase(ret.begin()); | ||||
|              | ||||
|             // ok, matched, should reset the search
 | ||||
|             i = 0; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| string srs_string_remove(string str, string remove_chars) | ||||
| { | ||||
|     std::string ret = str; | ||||
|      | ||||
|     for (int i = 0; i < (int)remove_chars.length(); i++) { | ||||
|         char ch = remove_chars.at(i); | ||||
|          | ||||
|         for (std::string::iterator it = ret.begin(); it != ret.end();) { | ||||
|             if (ch == *it) { | ||||
|                 it = ret.erase(it); | ||||
|                  | ||||
|                 // ok, matched, should reset the search
 | ||||
|                 i = 0; | ||||
|             } else { | ||||
|                 ++it; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| bool srs_string_ends_with(string str, string flag) | ||||
| { | ||||
|     return str.rfind(flag) == str.length() - flag.length(); | ||||
| } | ||||
|  |  | |||
|  | @ -30,9 +30,32 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 
 | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| // compare
 | ||||
| #define srs_min(a, b) (((a) < (b))? (a) : (b)) | ||||
| #define srs_max(a, b) (((a) < (b))? (b) : (a)) | ||||
| 
 | ||||
| // get current system time in ms, use cache to avoid performance problem
 | ||||
| extern int64_t srs_get_system_time_ms(); | ||||
| // the deamon st-thread will update it.
 | ||||
| extern void srs_update_system_time_ms(); | ||||
| 
 | ||||
| // dns resolve utility, return the resolved ip address.
 | ||||
| extern std::string srs_dns_resolve(std::string host); | ||||
| 
 | ||||
| // whether system is little endian
 | ||||
| extern bool srs_is_little_endian(); | ||||
| 
 | ||||
| // replace old_str to new_str of str
 | ||||
| extern std::string srs_string_replace(std::string str, std::string old_str, std::string new_str); | ||||
| // trim char in trim_chars of str
 | ||||
| extern std::string srs_string_trim_end(std::string str, std::string trim_chars); | ||||
| // trim char in trim_chars of str
 | ||||
| extern std::string srs_string_trim_start(std::string str, std::string trim_chars); | ||||
| // remove char in remove_chars of str
 | ||||
| extern std::string srs_string_remove(std::string str, std::string remove_chars); | ||||
| // whether string end with
 | ||||
| extern bool srs_string_ends_with(std::string str, std::string flag); | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -38,6 +38,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_app_config.hpp> | ||||
| #include <srs_app_log.hpp> | ||||
| #include <srs_app_server.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // kernel module.
 | ||||
| ISrsLog* _srs_log = new SrsFastLog(); | ||||
|  |  | |||
|  | @ -39,6 +39,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_app_config.hpp> | ||||
| #include <srs_app_log.hpp> | ||||
| #include <srs_app_utility.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| // pre-declare
 | ||||
| int run(); | ||||
|  |  | |||
|  | @ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_protocol_rtmp_stack.hpp> | ||||
| #include <srs_protocol_utility.hpp> | ||||
| #include <srs_kernel_stream.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_kernel_buffer.hpp> | ||||
| #include <srs_kernel_stream.hpp> | ||||
| #include <srs_core_autofree.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <stdlib.h> | ||||
| 
 | ||||
| #include <srs_kernel_log.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| void srs_vhost_resolve(std::string& vhost, std::string& app) | ||||
| { | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| */ | ||||
| #include <srs_core.hpp> | ||||
| 
 | ||||
| #include <string> | ||||
| 
 | ||||
| #define RTMP_DEFAULT_PORT "1935" | ||||
| 
 | ||||
| // the default chunk size for system.
 | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| #include <srs_utest_buffer.hpp> | ||||
| 
 | ||||
| #include <srs_kernel_error.hpp> | ||||
| #include <srs_kernel_utility.hpp> | ||||
| 
 | ||||
| MockBufferReader::MockBufferReader(const char* data) | ||||
| { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue