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;