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();