diff --git a/README.md b/README.md
index e873c04c5..fcb1b9c38 100755
--- a/README.md
+++ b/README.md
@@ -228,7 +228,7 @@ Supported operating systems and hardware:
* 2013-10-17, Created.
## History
-* v2.0, 2014-11-08, fix [#191](https://github.com/winlinvip/simple-rtmp-server/issues/191), configure --export-librtmp. 2.0.10.
+* v2.0, 2014-11-08, fix [#191](https://github.com/winlinvip/simple-rtmp-server/issues/191), configure --export-librtmp-project and --export-librtmp-single. 2.0.11.
* v2.0, 2014-11-08, fix [#66](https://github.com/winlinvip/simple-rtmp-server/issues/66), srs-librtmp support write h264 raw packet. 2.0.9.
* v2.0, 2014-10-25, fix [#185](https://github.com/winlinvip/simple-rtmp-server/issues/185), AMF0 support 0x0B the date type codec. 2.0.7.
* v2.0, 2014-10-24, fix [#186](https://github.com/winlinvip/simple-rtmp-server/issues/186), hotfix for bug #186, drop connect args when not object. 2.0.6.
diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh
index 67b200d26..82b03b634 100755
--- a/trunk/auto/depends.sh
+++ b/trunk/auto/depends.sh
@@ -126,7 +126,7 @@ function Ubuntu_prepare()
return 0
}
# donot prepare tools, for srs-librtmp depends only gcc and g++.
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
Ubuntu_prepare; ret=$?; if [[ 0 -ne $ret ]]; then echo "Ubuntu prepare failed, ret=$ret"; exit $ret; fi
fi
#####################################################################################
@@ -217,14 +217,14 @@ function Centos_prepare()
return 0
}
# donot prepare tools, for srs-librtmp depends only gcc and g++.
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
Centos_prepare; ret=$?; if [[ 0 -ne $ret ]]; then echo "CentOS prepare failed, ret=$ret"; exit $ret; fi
fi
#####################################################################################
# st-1.9
#####################################################################################
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
# check the arm flag file, if flag changed, need to rebuild the st.
_ST_MAKE=linux-debug
if [ $SRS_EMBEDED_CPU = YES ]; then
@@ -343,7 +343,7 @@ function write_nginx_html5()
END
}
# create the nginx dir, for http-server if not build nginx
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
mkdir -p ${SRS_OBJS}/nginx
fi
# make nginx
@@ -372,7 +372,7 @@ if [ $__SRS_BUILD_NGINX = YES ]; then
fi
# the demo dir.
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
# create forward dir
mkdir -p ${SRS_OBJS}/nginx/html/live &&
mkdir -p ${SRS_OBJS}/nginx/html/forward/live
@@ -595,7 +595,7 @@ fi
#####################################################################################
# build research code, librtmp
#####################################################################################
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
if [ $SRS_RESEARCH = YES ]; then
mkdir -p ${SRS_OBJS}/research
diff --git a/trunk/auto/generate-srs-librtmp-project.sh b/trunk/auto/generate-srs-librtmp-project.sh
new file mode 100755
index 000000000..af5b03e24
--- /dev/null
+++ b/trunk/auto/generate-srs-librtmp-project.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# when export srs-librtmp project
+# set the SRS_WORKDIR and SRS_OBJS,
+# then copy the srs-librtmp needed files.
+#
+# params:
+# $SRS_WORKDIR the work dir. ie. .
+# $SRS_OBJS the objs directory to store the Makefile. ie. ./objs
+# $SRS_OBJS_DIR the objs directory for Makefile. ie. objs
+# $SRS_EXPORT_LIBRTMP_PROJECT the export srs-librtmp project path. ie. srs-librtmp
+#
+
+if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
+ if [[ -d ${SRS_EXPORT_LIBRTMP_PROJECT} ]]; then
+ echo -e "${RED}srs-librtmp target dir exists: ${SRS_EXPORT_LIBRTMP_PROJECT}. ${BLACK}"
+ exit 1
+ fi
+ # create target
+ SRS_WORKDIR=${SRS_EXPORT_LIBRTMP_PROJECT} && SRS_OBJS=${SRS_WORKDIR}/${SRS_OBJS_DIR} && mkdir -p ${SRS_OBJS} &&
+ # copy src to target
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/research/librtmp && mkdir -p ${_CPT} && cp research/librtmp/*.c research/librtmp/Makefile ${_CPT} &&
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/auto && mkdir -p ${_CPT} && cp auto/generate_header.sh auto/generate-srs-librtmp-single.sh ${_CPT} &&
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/src/core && mkdir -p ${_CPT} && cp src/core/* ${_CPT} &&
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/src/kernel && mkdir -p ${_CPT} && cp src/kernel/* ${_CPT} &&
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/src/rtmp && mkdir -p ${_CPT} && cp src/rtmp/* ${_CPT} &&
+ _CPT=${SRS_EXPORT_LIBRTMP_PROJECT}/src/libs && mkdir -p ${_CPT} && cp src/libs/* ${_CPT}
+ # check ret
+ ret=$?; if [[ $ret -ne 0 ]]; then echo "export src failed, ret=$ret"; exit $ret; fi
+fi
\ No newline at end of file
diff --git a/trunk/auto/generate-srs-librtmp-single.sh b/trunk/auto/generate-srs-librtmp-single.sh
new file mode 100755
index 000000000..c1bf02071
--- /dev/null
+++ b/trunk/auto/generate-srs-librtmp-single.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+
+# when export srs-librtmp single files
+# package the whole project to srs_librtmp.h and srs_librtmp.cpp
+#
+# params:
+# $SRS_OBJS_DIR the objs directory for Makefile. ie. objs
+# $SRS_EXPORT_LIBRTMP_SINGLE the export srs-librtmp single path. ie. srs-librtmp
+#
+
+# the target dir must created
+if [[ ! -d $SRS_EXPORT_LIBRTMP_SINGLE ]]; then
+ echo -e "${RED}error, target dir not created: $SRS_EXPORT_LIBRTMP_SINGLE${BLACK}"
+ exit -1
+fi
+
+# generate the srs_librtmp.h
+cp $SRS_EXPORT_LIBRTMP_SINGLE/src/libs/srs_librtmp.hpp $SRS_EXPORT_LIBRTMP_SINGLE/srs_librtmp.h
+
+# create srs_librtmp.cpp
+FILE=$SRS_EXPORT_LIBRTMP_SINGLE/srs_librtmp.cpp
+cat << END >$FILE
+/*
+The MIT License (MIT)
+
+Copyright (c) 2013-2014 winlin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include "srs_librtmp.h"
+
+END
+# build objs auto files to cpp
+cat $SRS_EXPORT_LIBRTMP_SINGLE/$SRS_OBJS_DIR/srs_auto_headers.hpp >>$FILE
+ret=$?; if [[ $ret -ne 0 ]]; then
+ echo -e "${RED}failed to generate the srs_librtmp.cpp${BLACK}"
+ exit $ret
+fi
+# module to cpp files.
+function build_module_hpp()
+{
+ echo "build files ${SRS_LIBRTMP_OBJS} to $FILE"
+ for item in ${SRS_LIBRTMP_OBJS[*]}; do
+ FILE_NAME="${item%.*}"
+ echo "// following is generated by ${FILE_NAME}.hpp" >> $FILE &&
+ sed -i "s|#include >$FILE
+ ret=$?; if [[ $ret -ne 0 ]]; then
+ echo -e "${RED}failed to generate the srs_librtmp.cpp by ${FILE_NAME}.hpp. {${BLACK}"
+ exit $ret
+ fi
+ done
+}
+SRS_LIBRTMP_OBJS="${CORE_OBJS[@]}" && build_module_hpp
+SRS_LIBRTMP_OBJS="${KERNEL_OBJS[@]}" && build_module_hpp
+SRS_LIBRTMP_OBJS="${RTMP_OBJS[@]}" && build_module_hpp
+SRS_LIBRTMP_OBJS="${LIBS_OBJS[@]}" && build_module_hpp
+# module to cpp files.
+function build_module_cpp()
+{
+ echo "build files ${SRS_LIBRTMP_OBJS} to $FILE"
+ for item in ${SRS_LIBRTMP_OBJS[*]}; do
+ FILE_NAME="${item%.*}"
+ echo "// following is generated by ${FILE_NAME}.cpp" >> $FILE &&
+ sed -i "s|#include >$FILE
+ ret=$?; if [[ $ret -ne 0 ]]; then
+ echo -e "${RED}failed to generate the srs_librtmp.cpp by ${FILE_NAME}.cpp. {${BLACK}"
+ exit $ret
+ fi
+ done
+}
+SRS_LIBRTMP_OBJS="${CORE_OBJS[@]}" && build_module_cpp
+SRS_LIBRTMP_OBJS="${KERNEL_OBJS[@]}" && build_module_cpp
+SRS_LIBRTMP_OBJS="${RTMP_OBJS[@]}" && build_module_cpp
+SRS_LIBRTMP_OBJS="${LIBS_OBJS[@]}" && build_module_cpp
+
+# create example.cpp
+FILE=$SRS_EXPORT_LIBRTMP_SINGLE/example.c
+COMPILE='gcc example.c srs_librtmp.cpp -g -O0 -lstdc++ -o example'
+cat << END >$FILE
+/**
+# Example to use srs-librtmp
+# see: https://github.com/winlinvip/simple-rtmp-server/wiki/v2_CN_SrsLibrtmp
+${COMPILE}
+*/
+#include
+#include "srs_librtmp.h"
+
+int main(int argc, char** argv)
+{
+ printf("Example for srs-librtmp\n");
+ printf("SRS(simple-rtmp-server) client librtmp library.\n");
+ printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());
+
+ srs_rtmp_t rtmp = srs_rtmp_create("rtmp://ossrs.net/live/livestream");
+ srs_trace("create rtmp success");
+ srs_rtmp_destroy(rtmp);
+
+ return 0;
+}
+
+END
+
+# compile the example
+(cd $SRS_EXPORT_LIBRTMP_SINGLE && `${COMPILE}` && ./example && rm -f example)
+ret=$?; if [[ $ret -ne 0 ]]; then
+ echo "(cd $SRS_EXPORT_LIBRTMP_SINGLE && ${COMPILE} && ./example && rm -f example)"
+ echo -e "${RED}failed to compile example.${BLACK}"
+ exit $ret
+fi
+
+# clear the files for srs-librtmp project, generated by generate-srs-librtmp-project.sh
+(cd $SRS_EXPORT_LIBRTMP_SINGLE && rm -rf auto $SRS_OBJS_DIR research src Makefile)
diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh
index cbc667a10..dea0f89f3 100755
--- a/trunk/auto/options.sh
+++ b/trunk/auto/options.sh
@@ -58,8 +58,10 @@ SRS_LOG_TRACE=RESERVED
# experts
# donot compile ssl, use system ssl(-lssl) if required.
SRS_USE_SYS_SSL=NO
-# export the srs-librtmp to specified path, NO to disable it.
-SRS_EXPORT_LIBRTMP=NO
+# export the srs-librtmp to specified project, NO to disable it.
+SRS_EXPORT_LIBRTMP_PROJECT=NO
+# export the srs-librtmp to a single .h and .c, NO to disable it.
+SRS_EXPORT_LIBRTMP_SINGLE=NO
#
################################################################
# presets
@@ -183,8 +185,9 @@ Conflicts:
the complex tools not available for arm.
Experts:
- --use-sys-ssl donot compile ssl, use system ssl(-lssl) if required.
- --export-librtmp= export srs-librtmp to specified path.
+ --use-sys-ssl donot compile ssl, use system ssl(-lssl) if required.
+ --export-librtmp-project= export srs-librtmp to specified project in path.
+ --export-librtmp-single= export srs-librtmp to a single file(.h+.cpp) in path.
Workflow:
1. apply "Presets". if not specified, use default preset.
@@ -266,7 +269,8 @@ function parse_user_option() {
--full) SRS_ENABLE_ALL=YES ;;
--use-sys-ssl) SRS_USE_SYS_SSL=YES ;;
- --export-librtmp) SRS_EXPORT_LIBRTMP=${value} ;;
+ --export-librtmp-project) SRS_EXPORT_LIBRTMP_PROJECT=${value} ;;
+ --export-librtmp-single) SRS_EXPORT_LIBRTMP_SINGLE=${value} ;;
*)
echo "$0: error: invalid option \"$option\""
@@ -701,8 +705,13 @@ function apply_user_detail_options() {
export SRS_JOBS="--jobs=${SRS_JOBS}"
fi
+ # if specified export single file, export project first.
+ if [ $SRS_EXPORT_LIBRTMP_SINGLE != NO ]; then
+ SRS_EXPORT_LIBRTMP_PROJECT=$SRS_EXPORT_LIBRTMP_SINGLE
+ fi
+
# disable almost all features for export srs-librtmp.
- if [ $SRS_EXPORT_LIBRTMP != NO ]; then
+ if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
SRS_HLS=NO
SRS_DVR=NO
SRS_NGINX=NO
diff --git a/trunk/auto/summary.sh b/trunk/auto/summary.sh
index c4c55a04d..c7d5ac4f0 100755
--- a/trunk/auto/summary.sh
+++ b/trunk/auto/summary.sh
@@ -21,7 +21,7 @@ SrsGperfMPSummaryColor="\${GREEN}{disabled} "; if [ $SRS_GPERF_MP = YES ]; then
SrsGperfCPSummaryColor="\${GREEN}{disabled} "; if [ $SRS_GPERF_CP = YES ]; then SrsGperfCPSummaryColor="\${YELLOW}"; fi
SrsGprofSummaryColor="\${GREEN}{disabled} "; if [ $SRS_GPROF = YES ]; then SrsGprofSummaryColor="\${YELLOW}"; fi
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
cat < ${SRS_OBJS}/${SRS_BUILD_SUMMARY}
#!/bin/bash
diff --git a/trunk/configure b/trunk/configure
index 2987ab18e..482f91b68 100755
--- a/trunk/configure
+++ b/trunk/configure
@@ -25,30 +25,14 @@ BLACK="\\e[0m"
. auto/options.sh
# for export srs-librtmp, change target to it.
-if [ $SRS_EXPORT_LIBRTMP != NO ]; then
- if [[ -d ${SRS_EXPORT_LIBRTMP} ]]; then
- echo -e "${RED}srs-librtmp target dir exists: ${SRS_EXPORT_LIBRTMP}. ${BLACK}"
- exit 1
- fi
- # create target
- SRS_WORKDIR=${SRS_EXPORT_LIBRTMP} && SRS_OBJS=${SRS_WORKDIR}/${SRS_OBJS_DIR} && mkdir -p ${SRS_OBJS} &&
- # copy src to target
- _CPT=${SRS_EXPORT_LIBRTMP}/research/librtmp && mkdir -p ${_CPT} && cp research/librtmp/*.c research/librtmp/Makefile ${_CPT} &&
- _CPT=${SRS_EXPORT_LIBRTMP}/auto && mkdir -p ${_CPT} && cp auto/generate_header.sh ${_CPT} &&
- _CPT=${SRS_EXPORT_LIBRTMP}/src/core && mkdir -p ${_CPT} && cp src/core/* ${_CPT} &&
- _CPT=${SRS_EXPORT_LIBRTMP}/src/kernel && mkdir -p ${_CPT} && cp src/kernel/* ${_CPT} &&
- _CPT=${SRS_EXPORT_LIBRTMP}/src/rtmp && mkdir -p ${_CPT} && cp src/rtmp/* ${_CPT} &&
- _CPT=${SRS_EXPORT_LIBRTMP}/src/libs && mkdir -p ${_CPT} && cp src/libs/* ${_CPT}
- # check ret
- ret=$?; if [[ $ret -ne 0 ]]; then echo "export src failed, ret=$ret"; exit $ret; fi
-fi
+. auto/generate-srs-librtmp-project.sh
# the auto generated variables.
SRS_AUTO_HEADERS_H="${SRS_OBJS}/srs_auto_headers.hpp"
# clean the exists, when not export srs-librtmp.
# do this only when the options is ok.
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
if [[ -f Makefile ]]; then
make clean
fi
@@ -186,7 +170,7 @@ clean:
END
# if export librtmp, donot build the srs server.
-if [ $SRS_EXPORT_LIBRTMP != NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
server: _prepare_dir
@echo "donot build the srs(simple rtmp server) for srs-librtmp"
@@ -202,7 +186,7 @@ END
fi
# disable install entry for srs-librtmp
-if [ $SRS_EXPORT_LIBRTMP != NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
uninstall:
@echo "disable uninstall for srs-librtmp"
@@ -395,7 +379,7 @@ RTMP_INCS="src/rtmp"; MODULE_DIR=${RTMP_INCS} . auto/modules.sh
RTMP_OBJS="${MODULE_OBJS[@]}"
#
#App Module
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
MODULE_ID="APP"
MODULE_DEPENDS=("CORE" "KERNEL" "RTMP")
ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${SRS_OBJS_DIR})
@@ -418,7 +402,7 @@ LIBS_INCS="src/libs"; MODULE_DIR=${LIBS_INCS} . auto/modules.sh
LIBS_OBJS="${MODULE_OBJS[@]}"
#
#Main Module
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
MODULE_ID="MAIN"
MODULE_DEPENDS=("CORE" "KERNEL" "RTMP" "APP")
ModuleLibIncs=(${LibSTRoot} ${SRS_OBJS_DIR} ${LibGperfRoot})
@@ -432,7 +416,7 @@ fi
# then link to a binary, for example, objs/srs
#
# disable all app when export librtmp
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
# all main entrances
MAIN_ENTRANCES=("srs_main_server")
#
@@ -464,13 +448,27 @@ if [ $SRS_UTEST = YES ]; then
LINK_OPTIONS="-lpthread ${SrsLinkOptions}" MODULE_DIR="src/utest" APP_NAME="srs_utest" . auto/utest.sh
fi
+# for srs-librtmp single file,
+# package the whole project to srs_librtmp.h and srs_librtmp.cpp
+if [ $SRS_EXPORT_LIBRTMP_SINGLE != NO ]; then
+ echo "package the whole project to srs_librtmp.h and srs_librtmp.cpp"
+ . $SRS_EXPORT_LIBRTMP_SINGLE/auto/generate-srs-librtmp-single.sh
+ echo -e "${GREEN}Please use the srs-librtmp files: ${BLACK}"
+ echo -e "${GREEN} $SRS_EXPORT_LIBRTMP_PROJECT/srs_librtmp.h ${BLACK}"
+ echo -e "${GREEN} $SRS_EXPORT_LIBRTMP_PROJECT/srs_librtmp.cpp ${BLACK}"
+ echo -e "${GREEN} $SRS_EXPORT_LIBRTMP_PROJECT/example.c ${BLACK}"
+elif [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
+ echo -e "${GREEN}Please use the srs-librtmp project: ${BLACK}"
+ echo -e "${GREEN} cd $SRS_EXPORT_LIBRTMP_PROJECT && make ${BLACK}"
+fi
+
echo 'configure ok! '
#####################################################################################
# when configure success, prepare build
#####################################################################################
# create objs/logs for ffmpeg to write log.
-if [ $SRS_EXPORT_LIBRTMP = NO ]; then
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
mkdir -p ${SRS_OBJS}/logs
fi
@@ -478,127 +476,131 @@ fi
# configure summary
#####################################################################################
# summary
-echo ""
-echo "configure summary:"
-echo " ${SRS_AUTO_USER_CONFIGURE}"
-echo " ${SRS_AUTO_CONFIGURE}"
-if [ $SRS_HLS = YES ]; then
- echo -e "${GREEN}HLS is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without HLS support${BLACK}"
-fi
-if [ $SRS_NGINX = YES ]; then
- echo -e "${GREEN}Nginx http server is enabled${BLACK}"
-else
- echo -e "${GREEN}note: Nginx http server is disabled${BLACK}"
-fi
-if [ $SRS_DVR = YES ]; then
- echo -e "${GREEN}DVR is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without DVR support${BLACK}"
-fi
-if [ $SRS_SSL = YES ]; then
- echo -e "${GREEN}rtmp complex handshake is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without rtmp complex handshake support, donot support h264/aac to adobe flash player${BLACK}"
-fi
-if [ $SRS_FFMPEG_TOOL = YES ]; then
- echo -e "${GREEN}transcode/mux/ingest tool FFMPEG is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without transcode/mux/ingest tool FFMPEG support${BLACK}"
-fi
-if [ $SRS_TRANSCODE = YES ]; then
- echo -e "${GREEN}transcoding RTMP stream is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without transcoding RTMP stream support${BLACK}"
-fi
-if [ $SRS_INGEST = YES ]; then
- echo -e "${GREEN}ingest file/stream/device is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without ingest file/stream/device support${BLACK}"
-fi
-if [ $SRS_HTTP_CALLBACK = YES ]; then
- echo -e "${GREEN}http hooks callback over CherryPy is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without http hooks callback over CherryPy support${BLACK}"
-fi
-if [ $SRS_HTTP_SERVER = YES ]; then
- echo -e "${GREEN}http server to delivery http stream is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without http server to delivery http stream support${BLACK}"
-fi
-if [ $SRS_HTTP_API = YES ]; then
- echo -e "${GREEN}http api to manage server is enabled${BLACK}"
-else
- echo -e "${YELLOW}warning: without http api to manage server support${BLACK}"
-fi
-if [ $SRS_LIBRTMP = YES ]; then
- echo -e "${GREEN}srs-librtmp for client is enabled${BLACK}"
-else
- echo -e "${YELLOW}note: srs-librtmp for client is disabled${BLACK}"
-fi
-if [ $SRS_RESEARCH = YES ]; then
- echo -e "${GREEN}research tools are builded${BLACK}"
-else
- echo -e "${GREEN}note: research tools are not builded${BLACK}"
-fi
-if [ $SRS_UTEST = YES ]; then
- echo -e "${GREEN}utest for srs are builded${BLACK}"
-else
- echo -e "${YELLOW}note: utest for srs are not builded${BLACK}"
-fi
-if [ $SRS_GPERF = YES ]; then
- echo -e "${GREEN}gperf(tcmalloc) for srs are builded${BLACK}"
-else
- echo -e "${GREEN}note: gperf(tcmalloc) for srs are not builded${BLACK}"
-fi
-if [ $SRS_GPERF_MC = YES ]; then
- echo -e "${YELLOW}gmc(gperf memory check) for srs are builded -- Performance may suffer${BLACK}"
-else
- echo -e "${GREEN}note: gmc(gperf memory check) for srs are not builded${BLACK}"
-fi
-if [ $SRS_GPERF_MP = YES ]; then
- echo -e "${YELLOW}gmp(gperf memory profile) for srs are builded -- Performance may suffer${BLACK}"
-else
- echo -e "${GREEN}note: gmp(gperf memory profile) for srs are not builded${BLACK}"
-fi
-if [ $SRS_GPERF_CP = YES ]; then
- echo -e "${YELLOW}gcp(gperf cpu profile) for srs are builded -- Performance may suffer${BLACK}"
-else
- echo -e "${GREEN}note: gcp(gperf cpu profile) for srs are not builded${BLACK}"
-fi
-if [ $SRS_GPROF = YES ]; then
- echo -e "${YELLOW}gprof(GNU profile tool) for srs are builded -- Performance may suffer${BLACK}"
-else
- echo -e "${GREEN}note: gprof(GNU profile tool) for srs are not builded${BLACK}"
-fi
-if [ $SRS_ARM_UBUNTU12 = YES ]; then
- echo -e "${GREEN}arm-ubuntu12(armhf, v7cpu) for srs are builded${BLACK}"
-else
- echo -e "${GREEN}note: arm-ubuntu12(armhf, v7cpu) for srs are not builded${BLACK}"
-fi
-if [ $SRS_MIPS_UBUNTU12 = YES ]; then
- echo -e "${GREEN}mips-ubuntu12 for srs are builded${BLACK}"
-else
- echo -e "${GREEN}note: mips-ubuntu12 for srs are not builded${BLACK}"
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
+ echo ""
+ echo "configure summary:"
+ echo " ${SRS_AUTO_USER_CONFIGURE}"
+ echo " ${SRS_AUTO_CONFIGURE}"
+ if [ $SRS_HLS = YES ]; then
+ echo -e "${GREEN}HLS is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without HLS support${BLACK}"
+ fi
+ if [ $SRS_NGINX = YES ]; then
+ echo -e "${GREEN}Nginx http server is enabled${BLACK}"
+ else
+ echo -e "${GREEN}note: Nginx http server is disabled${BLACK}"
+ fi
+ if [ $SRS_DVR = YES ]; then
+ echo -e "${GREEN}DVR is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without DVR support${BLACK}"
+ fi
+ if [ $SRS_SSL = YES ]; then
+ echo -e "${GREEN}rtmp complex handshake is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without rtmp complex handshake support, donot support h264/aac to adobe flash player${BLACK}"
+ fi
+ if [ $SRS_FFMPEG_TOOL = YES ]; then
+ echo -e "${GREEN}transcode/mux/ingest tool FFMPEG is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without transcode/mux/ingest tool FFMPEG support${BLACK}"
+ fi
+ if [ $SRS_TRANSCODE = YES ]; then
+ echo -e "${GREEN}transcoding RTMP stream is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without transcoding RTMP stream support${BLACK}"
+ fi
+ if [ $SRS_INGEST = YES ]; then
+ echo -e "${GREEN}ingest file/stream/device is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without ingest file/stream/device support${BLACK}"
+ fi
+ if [ $SRS_HTTP_CALLBACK = YES ]; then
+ echo -e "${GREEN}http hooks callback over CherryPy is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without http hooks callback over CherryPy support${BLACK}"
+ fi
+ if [ $SRS_HTTP_SERVER = YES ]; then
+ echo -e "${GREEN}http server to delivery http stream is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without http server to delivery http stream support${BLACK}"
+ fi
+ if [ $SRS_HTTP_API = YES ]; then
+ echo -e "${GREEN}http api to manage server is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}warning: without http api to manage server support${BLACK}"
+ fi
+ if [ $SRS_LIBRTMP = YES ]; then
+ echo -e "${GREEN}srs-librtmp for client is enabled${BLACK}"
+ else
+ echo -e "${YELLOW}note: srs-librtmp for client is disabled${BLACK}"
+ fi
+ if [ $SRS_RESEARCH = YES ]; then
+ echo -e "${GREEN}research tools are builded${BLACK}"
+ else
+ echo -e "${GREEN}note: research tools are not builded${BLACK}"
+ fi
+ if [ $SRS_UTEST = YES ]; then
+ echo -e "${GREEN}utest for srs are builded${BLACK}"
+ else
+ echo -e "${YELLOW}note: utest for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_GPERF = YES ]; then
+ echo -e "${GREEN}gperf(tcmalloc) for srs are builded${BLACK}"
+ else
+ echo -e "${GREEN}note: gperf(tcmalloc) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_GPERF_MC = YES ]; then
+ echo -e "${YELLOW}gmc(gperf memory check) for srs are builded -- Performance may suffer${BLACK}"
+ else
+ echo -e "${GREEN}note: gmc(gperf memory check) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_GPERF_MP = YES ]; then
+ echo -e "${YELLOW}gmp(gperf memory profile) for srs are builded -- Performance may suffer${BLACK}"
+ else
+ echo -e "${GREEN}note: gmp(gperf memory profile) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_GPERF_CP = YES ]; then
+ echo -e "${YELLOW}gcp(gperf cpu profile) for srs are builded -- Performance may suffer${BLACK}"
+ else
+ echo -e "${GREEN}note: gcp(gperf cpu profile) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_GPROF = YES ]; then
+ echo -e "${YELLOW}gprof(GNU profile tool) for srs are builded -- Performance may suffer${BLACK}"
+ else
+ echo -e "${GREEN}note: gprof(GNU profile tool) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_ARM_UBUNTU12 = YES ]; then
+ echo -e "${GREEN}arm-ubuntu12(armhf, v7cpu) for srs are builded${BLACK}"
+ else
+ echo -e "${GREEN}note: arm-ubuntu12(armhf, v7cpu) for srs are not builded${BLACK}"
+ fi
+ if [ $SRS_MIPS_UBUNTU12 = YES ]; then
+ echo -e "${GREEN}mips-ubuntu12 for srs are builded${BLACK}"
+ else
+ echo -e "${GREEN}note: mips-ubuntu12 for srs are not builded${BLACK}"
+ fi
fi
#####################################################################################
# next step
#####################################################################################
-ip=`ifconfig|grep "inet addr"| grep -v "127.0.0.1"|awk '{print $2}'|awk -F ':' 'NR==1 {print $2}'`
-echo ""
-echo "to run 3rdparty application:"
-if [ $SRS_NGINX = YES ]; then
- echo "\" sudo ./objs/nginx/sbin/nginx \" to start the nginx http server for hls"
+if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
+ ip=`ifconfig|grep "inet addr"| grep -v "127.0.0.1"|awk '{print $2}'|awk -F ':' 'NR==1 {print $2}'`
+ echo ""
+ echo "to run 3rdparty application:"
+ if [ $SRS_NGINX = YES ]; then
+ echo "\" sudo ./objs/nginx/sbin/nginx \" to start the nginx http server for hls"
+ fi
+ if [ $SRS_FFMPEG_TOOL = YES ]; then
+ echo -e "\" ./objs/ffmpeg/bin/ffmpeg \" is used for live stream transcoding"
+ fi
+ if [ $SRS_HTTP_CALLBACK = YES ]; then
+ echo -e "\" python ./research/api-server/server.py 8085 \" to start the api-server"
+ fi
+ echo ""
+ echo "to build:"
+ echo "\" make \" to build the srs(simple rtmp server)."
+ echo "\" make help \" to get the usage of make"
fi
-if [ $SRS_FFMPEG_TOOL = YES ]; then
- echo -e "\" ./objs/ffmpeg/bin/ffmpeg \" is used for live stream transcoding"
-fi
-if [ $SRS_HTTP_CALLBACK = YES ]; then
- echo -e "\" python ./research/api-server/server.py 8085 \" to start the api-server"
-fi
-echo ""
-echo "to build:"
-echo "\" make \" to build the srs(simple rtmp server)."
-echo "\" make help \" to get the usage of make"
diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp
index 993aed8b0..343887979 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 2
#define VERSION_MINOR 0
-#define VERSION_REVISION 10
+#define VERSION_REVISION 11
// server info.
#define RTMP_SIG_SRS_KEY "SRS"
#define RTMP_SIG_SRS_ROLE "origin/edge server"
diff --git a/trunk/src/libs/srs_librtmp.cpp b/trunk/src/libs/srs_librtmp.cpp
index 87a567968..38e75542c 100644
--- a/trunk/src/libs/srs_librtmp.cpp
+++ b/trunk/src/libs/srs_librtmp.cpp
@@ -30,10 +30,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include
using namespace std;
-// undefine the log of librtmp for the srs use its log.
-#undef srs_trace
-#undef srs_verbose
-
#include
#include
#include
@@ -48,7 +44,7 @@ using namespace std;
#include
#include
-// if user want to define log, define the folowing macro.
+// if want to use your log, define the folowing macro.
#ifndef SRS_RTMP_USER_DEFINED_LOG
// kernel module.
ISrsLog* _srs_log = new ISrsLog();