From 7b3bc8f741cb793e95926c159834e13ce6da14fa Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 26 Mar 2014 10:05:07 +0800 Subject: [PATCH] fix bug of bwtc --- README.md | 2 +- trunk/auto/options.sh | 30 ++++++++++++++++++++++++++- trunk/src/core/srs_core.hpp | 2 +- trunk/src/main/srs_main_bandcheck.cpp | 27 +++++++----------------- 4 files changed, 39 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 69f4d7681..4c0076fe3 100755 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Supported operating systems and hardware: ## Summary 01. Simple: also stable enough.
02. [High-performance](https://github.com/winlinvip/simple-rtmp-server/wiki/Performance): single-thread, async socket, event/st-thread driven.
-03. With RTMP edge server, support origin server.
+03. With RTMP edge server(plan), support origin server.
04. RTMP without vod streaming, live streaming only.
05. With multiple processes, support single process.
06. Support vhost, support \_\_defaultVhost\_\_.
diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh index 6326c37bc..638a0755e 100755 --- a/trunk/auto/options.sh +++ b/trunk/auto/options.sh @@ -32,6 +32,9 @@ SRS_ARM_UBUNTU12=RESERVED # armhf(v7cpu) built on ubuntu12 SRS_PREFIX=/usr/local/srs SRS_JOBS=1 SRS_STATIC=RESERVED +# private internal +# dev, open all features for dev, no gperf/prof/arm. +SRS_DEV=NO ##################################################################################### # parse options @@ -88,6 +91,7 @@ do --jobs) SRS_JOBS=${value} ;; --prefix) SRS_PREFIX=${value} ;; --static) SRS_STATIC=YES ;; + --dev) SRS_DEV=YES ;; *) echo "$0: error: invalid option \"$option\"" @@ -116,6 +120,7 @@ if [ $SRS_ARM_UBUNTU12 = YES ]; then if [ $SRS_GPERF_CP = RESERVED ]; then SRS_GPERF_CP=NO; fi if [ $SRS_GPROF = RESERVED ]; then SRS_GPROF=NO; fi if [ $SRS_ARM_UBUNTU12 = RESERVED ]; then SRS_ARM_UBUNTU12=NO; fi + if [ $SRS_DEV = RESERVED ]; then SRS_DEV=NO; fi # for arm, always set to static link. SRS_STATIC=YES else @@ -135,6 +140,28 @@ else if [ $SRS_GPROF = RESERVED ]; then SRS_GPROF=NO; fi if [ $SRS_ARM_UBUNTU12 = RESERVED ]; then SRS_ARM_UBUNTU12=NO; fi if [ $SRS_STATIC = RESERVED ]; then SRS_STATIC=NO; fi + if [ $SRS_DEV = RESERVED ]; then SRS_DEV=NO; fi +fi + +# if dev specified, open features if possible. +if [ $SRS_DEV = YES ]; then + SRS_HLS=YES + SRS_NGINX=YES + SRS_SSL=YES + SRS_FFMPEG=YES + SRS_HTTP_CALLBACK=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_ARM_UBUNTU12=NO + # for arm, always set to static link. + SRS_STATIC=NO fi # parse the jobs for make @@ -190,7 +217,8 @@ if [ $help = yes ]; then --static whether add '-static' to link options. always set this option for arm. --jobs[=N] Allow N jobs at once; infinite jobs with no arg. used for make in the configure, for example, to make ffmpeg. - --prefix= the absolute install path for srs. + --prefix= the absolute install path for srs. + --dev for dev, open all features, no gperf/gprof/arm. END exit 0 diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 3abb78296..f0f608b89 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR "0" #define VERSION_MINOR "9" -#define VERSION_REVISION "30" +#define VERSION_REVISION "31" #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION // server info. #define RTMP_SIG_SRS_KEY "srs" diff --git a/trunk/src/main/srs_main_bandcheck.cpp b/trunk/src/main/srs_main_bandcheck.cpp index 8092161a1..7450fe640 100644 --- a/trunk/src/main/srs_main_bandcheck.cpp +++ b/trunk/src/main/srs_main_bandcheck.cpp @@ -469,7 +469,7 @@ int SrsBandCheckClient::send_pub_data() std::stringstream seq; seq << i; std::string play_data = "SrS band check data from client's publishing......"; - pkt->data->set(seq.str(), new SrsAmf0String(play_data.c_str())); + pkt->data->set(seq.str(), SrsAmf0Any::str(play_data.c_str())); } data_count += 100; @@ -545,8 +545,9 @@ int SrsBandCheckClient::expect_finished() return ret; } - SrsAmf0Object* object; - if ((ret = srs_amf0_read_object(stream, object)) != ERROR_SUCCESS) { + SrsAmf0Object* object = SrsAmf0Any::object(); + if ((ret = object->read(stream)) != ERROR_SUCCESS) { + srs_freep(object); srs_error("amfo read object error. ret=%d", ret); return ret; } @@ -556,36 +557,24 @@ int SrsBandCheckClient::expect_finished() SrsAmf0Any* start_time_any = object->get_property("start_time"); if (start_time_any && start_time_any->is_number()) { - SrsAmf0Number* start_time_number = dynamic_cast (start_time_any); - if (start_time_number) { - start_time = start_time_number->value; - } + start_time = start_time_any->to_number(); } SrsAmf0Any* end_time_any = object->get_property("end_time"); if (end_time_any && end_time_any->is_number()) { - SrsAmf0Number* end_time_number = dynamic_cast (end_time_any); - if (end_time_number) { - end_time = end_time_number->value; - } + end_time = end_time_any->to_number(); } int play_kbps = 0; int pub_kbps = 0; SrsAmf0Any* play_kbp_any = object->get_property("play_kbps"); if (play_kbp_any && play_kbp_any->is_number()) { - SrsAmf0Number* play_kbps_number = dynamic_cast (play_kbp_any); - if (play_kbps_number) { - play_kbps = play_kbps_number->value; - } + play_kbps = play_kbp_any->to_number(); } SrsAmf0Any* pub_kbp_any = object->get_property("publish_kbps"); if (pub_kbp_any && pub_kbp_any->is_number()) { - SrsAmf0Number* pub_kbps_number = dynamic_cast (pub_kbp_any); - if (pub_kbps_number) { - pub_kbps = pub_kbps_number->value; - } + pub_kbps = pub_kbp_any->to_number(); } float time_elapsed;