From 31b568b013f372c7f79dc1be580d224855be3fcd Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 8 Jun 2014 13:03:03 +0800 Subject: [PATCH] refine core, move specified functions to kernel utility. --- trunk/auto/depends.sh | 2 +- trunk/auto/options.sh | 43 ++++++- trunk/src/app/srs_app_dvr.hpp | 4 +- trunk/src/app/srs_app_edge.cpp | 1 + trunk/src/app/srs_app_encoder.cpp | 1 + trunk/src/app/srs_app_forward.cpp | 1 + trunk/src/app/srs_app_hls.cpp | 1 + trunk/src/app/srs_app_http.cpp | 1 + trunk/src/app/srs_app_http_client.cpp | 1 + trunk/src/app/srs_app_http_client.hpp | 2 + trunk/src/app/srs_app_http_conn.cpp | 1 + trunk/src/app/srs_app_http_hooks.hpp | 4 +- trunk/src/app/srs_app_ingest.cpp | 1 + trunk/src/app/srs_app_log.cpp | 1 + trunk/src/app/srs_app_server.cpp | 3 + trunk/src/app/srs_app_source.cpp | 1 + trunk/src/app/srs_app_thread.cpp | 6 +- trunk/src/core/srs_core.cpp | 125 -------------------- trunk/src/core/srs_core.hpp | 28 ----- trunk/src/kernel/srs_kernel_flv.hpp | 4 +- trunk/src/kernel/srs_kernel_stream.cpp | 1 + trunk/src/kernel/srs_kernel_utility.cpp | 126 ++++++++++++++++++++- trunk/src/kernel/srs_kernel_utility.hpp | 23 ++++ trunk/src/main/srs_main_bandcheck.cpp | 1 + trunk/src/main/srs_main_server.cpp | 1 + trunk/src/rtmp/srs_protocol_rtmp.cpp | 1 + trunk/src/rtmp/srs_protocol_rtmp_stack.cpp | 1 + trunk/src/rtmp/srs_protocol_utility.cpp | 1 + trunk/src/rtmp/srs_protocol_utility.hpp | 2 + trunk/src/utest/srs_utest_buffer.cpp | 1 + 30 files changed, 224 insertions(+), 165 deletions(-) diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index cb26c8c74..1309e0a5e 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -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 diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh index c43e55b4b..58765a471 100755 --- a/trunk/auto/options.sh +++ b/trunk/auto/options.sh @@ -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,12 +276,14 @@ function apply_user_presets() { if [ $SRS_PURE_RTMP = NO ]; then if [ $SRS_FAST = NO ]; then if [ $SRS_DISABLE_ALL = NO ]; then - if [ $SRS_DEV = NO ]; then - if [ $SRS_ARM_UBUNTU12 = NO ]; then - if [ $SRS_MIPS_UBUNTU12 = NO ]; then - if [ $SRS_PI = NO ]; then - if [ $SRS_X86_X64 = NO ]; then - SRS_X86_X64=YES; opt="--x86-x64 $opt"; + if [ $SRS_ENABLE_ALL = NO ]; then + if [ $SRS_DEV = NO ]; then + if [ $SRS_ARM_UBUNTU12 = NO ]; then + if [ $SRS_MIPS_UBUNTU12 = NO ]; then + if [ $SRS_PI = NO ]; then + if [ $SRS_X86_X64 = NO ]; then + SRS_X86_X64=YES; opt="--x86-x64 $opt"; + fi fi fi fi @@ -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 diff --git a/trunk/src/app/srs_app_dvr.hpp b/trunk/src/app/srs_app_dvr.hpp index d231dd6c5..eeb57c36c 100644 --- a/trunk/src/app/srs_app_dvr.hpp +++ b/trunk/src/app/srs_app_dvr.hpp @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include +#include + #ifdef SRS_AUTO_DVR class SrsSource; @@ -238,4 +240,4 @@ public: #endif -#endif \ No newline at end of file +#endif diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp index 3350ee9de..edf52eb49 100644 --- a/trunk/src/app/srs_app_edge.cpp +++ b/trunk/src/app/srs_app_edge.cpp @@ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include // when error, edge ingester sleep for a while and retry. #define SRS_EDGE_INGESTER_SLEEP_US (int64_t)(1*1000*1000LL) diff --git a/trunk/src/app/srs_app_encoder.cpp b/trunk/src/app/srs_app_encoder.cpp index 63d3dcf6b..09d4083e4 100644 --- a/trunk/src/app/srs_app_encoder.cpp +++ b/trunk/src/app/srs_app_encoder.cpp @@ -33,6 +33,7 @@ using namespace std; #include #include #include +#include #ifdef SRS_AUTO_TRANSCODE diff --git a/trunk/src/app/srs_app_forward.cpp b/trunk/src/app/srs_app_forward.cpp index ed4c8e768..df6d4499f 100644 --- a/trunk/src/app/srs_app_forward.cpp +++ b/trunk/src/app/srs_app_forward.cpp @@ -40,6 +40,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include // when error, forwarder sleep for a while and retry. #define SRS_FORWARDER_SLEEP_US (int64_t)(3*1000*1000LL) diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 24bb26603..8c375efec 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -43,6 +43,7 @@ using namespace std; #include #include #include +#include // max PES packets size to flush the video. #define SRS_AUTO_HLS_AUDIO_CACHE_SIZE 1024 * 1024 diff --git a/trunk/src/app/srs_app_http.cpp b/trunk/src/app/srs_app_http.cpp index 76909b982..bb35df7a4 100644 --- a/trunk/src/app/srs_app_http.cpp +++ b/trunk/src/app/srs_app_http.cpp @@ -35,6 +35,7 @@ using namespace std; #include #include #include +#include #define SRS_DEFAULT_HTTP_PORT 80 diff --git a/trunk/src/app/srs_app_http_client.cpp b/trunk/src/app/srs_app_http_client.cpp index 2c197dea0..cd2cc249a 100644 --- a/trunk/src/app/srs_app_http_client.cpp +++ b/trunk/src/app/srs_app_http_client.cpp @@ -33,6 +33,7 @@ using namespace std; #include #include #include +#include SrsHttpClient::SrsHttpClient() { diff --git a/trunk/src/app/srs_app_http_client.hpp b/trunk/src/app/srs_app_http_client.hpp index 92e7629b6..9c2c818c5 100644 --- a/trunk/src/app/srs_app_http_client.hpp +++ b/trunk/src/app/srs_app_http_client.hpp @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include +#include + #ifdef SRS_AUTO_HTTP_PARSER #include diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp index 9ecf137f1..5ff436f4c 100644 --- a/trunk/src/app/srs_app_http_conn.cpp +++ b/trunk/src/app/srs_app_http_conn.cpp @@ -41,6 +41,7 @@ using namespace std; #include #include #include +#include #define SRS_HTTP_DEFAULT_PAGE "index.html" diff --git a/trunk/src/app/srs_app_http_hooks.hpp b/trunk/src/app/srs_app_http_hooks.hpp index e3a95f11d..091233f20 100644 --- a/trunk/src/app/srs_app_http_hooks.hpp +++ b/trunk/src/app/srs_app_http_hooks.hpp @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include +#include + #ifdef SRS_AUTO_HTTP_CALLBACK #include @@ -117,4 +119,4 @@ public: #endif -#endif \ No newline at end of file +#endif diff --git a/trunk/src/app/srs_app_ingest.cpp b/trunk/src/app/srs_app_ingest.cpp index da56e89fa..8d60e7001 100644 --- a/trunk/src/app/srs_app_ingest.cpp +++ b/trunk/src/app/srs_app_ingest.cpp @@ -32,6 +32,7 @@ using namespace std; #include #include #include +#include // when error, ingester sleep for a while and retry. // ingest never sleep a long time, for we must start the stream ASAP. diff --git a/trunk/src/app/srs_app_log.cpp b/trunk/src/app/srs_app_log.cpp index 7e45ba5d5..c9413fdc1 100644 --- a/trunk/src/app/srs_app_log.cpp +++ b/trunk/src/app/srs_app_log.cpp @@ -33,6 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include SrsThreadContext::SrsThreadContext() { diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index 43ea18ff5..f0d619faf 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -46,6 +46,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +// signal defines. +#define SIGNAL_RELOAD SIGHUP + #define SERVER_LISTEN_BACKLOG 512 // system interval diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp index ebab9b77f..1ae43d8dc 100644 --- a/trunk/src/app/srs_app_source.cpp +++ b/trunk/src/app/srs_app_source.cpp @@ -40,6 +40,7 @@ using namespace std; #include #include #include +#include #define CONST_MAX_JITTER_MS 500 #define DEFAULT_FRAME_TIME_MS 40 diff --git a/trunk/src/app/srs_app_thread.cpp b/trunk/src/app/srs_app_thread.cpp index efd971547..0e75b5dfb 100644 --- a/trunk/src/app/srs_app_thread.cpp +++ b/trunk/src/app/srs_app_thread.cpp @@ -26,6 +26,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +// const time for st to convert to us +#define SRS_TIME_MILLISECONDS 1000 +#define SRS_TIME_SECONDS 1000000 + ISrsThreadHandler::ISrsThreadHandler() { } @@ -180,4 +184,4 @@ void* SrsThread::thread_fun(void* arg) st_thread_exit(NULL); return NULL; -} \ No newline at end of file +} diff --git a/trunk/src/core/srs_core.cpp b/trunk/src/core/srs_core.cpp index 237b17f0a..d6c40526d 100644 --- a/trunk/src/core/srs_core.cpp +++ b/trunk/src/core/srs_core.cpp @@ -23,128 +23,3 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include -#include -#include -#include - -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); -} - diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index dd505c78f..70535c050 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -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 -// 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 diff --git a/trunk/src/kernel/srs_kernel_flv.hpp b/trunk/src/kernel/srs_kernel_flv.hpp index f5f282f3e..9acee8b2e 100644 --- a/trunk/src/kernel/srs_kernel_flv.hpp +++ b/trunk/src/kernel/srs_kernel_flv.hpp @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include +#include + class SrsStream; /** @@ -173,4 +175,4 @@ public: virtual int read_previous_tag_size(char ts[4]); }; -#endif \ No newline at end of file +#endif diff --git a/trunk/src/kernel/srs_kernel_stream.cpp b/trunk/src/kernel/srs_kernel_stream.cpp index a58619528..e9a388599 100644 --- a/trunk/src/kernel/srs_kernel_stream.cpp +++ b/trunk/src/kernel/srs_kernel_stream.cpp @@ -27,6 +27,7 @@ using namespace std; #include #include +#include SrsStream::SrsStream() { diff --git a/trunk/src/kernel/srs_kernel_utility.cpp b/trunk/src/kernel/srs_kernel_utility.cpp index 40ca6fb7e..b46eade62 100644 --- a/trunk/src/kernel/srs_kernel_utility.cpp +++ b/trunk/src/kernel/srs_kernel_utility.cpp @@ -23,8 +23,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include -#include #include +#include +#include +#include +#include + +using namespace std; #include @@ -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(); +} diff --git a/trunk/src/kernel/srs_kernel_utility.hpp b/trunk/src/kernel/srs_kernel_utility.hpp index 4d74ab87a..0a2f65d17 100644 --- a/trunk/src/kernel/srs_kernel_utility.hpp +++ b/trunk/src/kernel/srs_kernel_utility.hpp @@ -30,9 +30,32 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include +#include + +// 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 diff --git a/trunk/src/main/srs_main_bandcheck.cpp b/trunk/src/main/srs_main_bandcheck.cpp index 37ac0dddd..b0c10689a 100644 --- a/trunk/src/main/srs_main_bandcheck.cpp +++ b/trunk/src/main/srs_main_bandcheck.cpp @@ -38,6 +38,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include // kernel module. ISrsLog* _srs_log = new SrsFastLog(); diff --git a/trunk/src/main/srs_main_server.cpp b/trunk/src/main/srs_main_server.cpp index d63e46ee1..6c815076f 100644 --- a/trunk/src/main/srs_main_server.cpp +++ b/trunk/src/main/srs_main_server.cpp @@ -39,6 +39,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include // pre-declare int run(); diff --git a/trunk/src/rtmp/srs_protocol_rtmp.cpp b/trunk/src/rtmp/srs_protocol_rtmp.cpp index 29dfdc181..b7a6e18be 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp.cpp @@ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include using namespace std; diff --git a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp index b769f9de7..76050b95f 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp @@ -30,6 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include using namespace std; diff --git a/trunk/src/rtmp/srs_protocol_utility.cpp b/trunk/src/rtmp/srs_protocol_utility.cpp index 7f600ead4..069369a2c 100644 --- a/trunk/src/rtmp/srs_protocol_utility.cpp +++ b/trunk/src/rtmp/srs_protocol_utility.cpp @@ -26,6 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +#include void srs_vhost_resolve(std::string& vhost, std::string& app) { diff --git a/trunk/src/rtmp/srs_protocol_utility.hpp b/trunk/src/rtmp/srs_protocol_utility.hpp index 6ed126b76..8f9df2994 100644 --- a/trunk/src/rtmp/srs_protocol_utility.hpp +++ b/trunk/src/rtmp/srs_protocol_utility.hpp @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include +#include + #define RTMP_DEFAULT_PORT "1935" // the default chunk size for system. diff --git a/trunk/src/utest/srs_utest_buffer.cpp b/trunk/src/utest/srs_utest_buffer.cpp index 5f07ebb04..b540c53c8 100644 --- a/trunk/src/utest/srs_utest_buffer.cpp +++ b/trunk/src/utest/srs_utest_buffer.cpp @@ -23,6 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +#include MockBufferReader::MockBufferReader(const char* data) {