diff --git a/.circleci/config.yml b/.circleci/config.yml index cc0d2c346..f11e26526 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,7 @@ jobs: - image: ossrs/dev steps: - checkout - - run: cd trunk && ./configure --gcov --without-research --without-librtmp && make && ./objs/srs_utest && bash auto/coverage.sh + - run: cd trunk && ./configure --gcov && make && ./objs/srs_utest && bash auto/coverage.sh workflows: version: 2 build_and_test: diff --git a/README.md b/README.md index 88a682f79..a76a54244 100755 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ [Skype](https://github.com/ossrs/srs/wiki/v1_EN_Contact#skype-or-gitter) SRS/3.0, [OuXuli][release3]
-SRS是一个简单的流媒体直播集群。
-SRS is a simple live streaming cluster. +SRS是一个简单的流媒体直播集群,简单的快乐。
+SRS is a simple live streaming cluster, a simple joy. Download binaries from github.io: [Centos6-x86_64][centos0], [more...][more0]
Download binaries from ossrs.net: [Centos6-x86_64][centos1], [more...][more1]
diff --git a/trunk/.gitignore b/trunk/.gitignore index df86e17d2..ead136276 100644 --- a/trunk/.gitignore +++ b/trunk/.gitignore @@ -34,4 +34,5 @@ /test/ .DS_Store srs +*.dSYM/ diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index e19bfc9f4..63e9f707d 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -713,11 +713,13 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then fi fi -if [ $SRS_LIBRTMP = YES ]; then +if [[ $SRS_LIBRTMP == YES ]]; then mkdir -p ${SRS_OBJS}/research # librtmp - (cd ${SRS_WORKDIR}/research/librtmp && mkdir -p objs && ln -sf `pwd`/objs ../../${SRS_OBJS_DIR}/research/librtmp) + (cd ${SRS_WORKDIR}/research/librtmp && mkdir -p objs && + rm -rf ../../${SRS_OBJS_DIR}/research/librtmp && + ln -sf `pwd`/objs ../../${SRS_OBJS_DIR}/research/librtmp) ret=$?; if [[ $ret -ne 0 ]]; then echo "Link research/librtmp failed, ret=$ret"; exit $ret; fi fi diff --git a/trunk/configure b/trunk/configure index f3267cc91..08a2ddc77 100755 --- a/trunk/configure +++ b/trunk/configure @@ -106,7 +106,10 @@ if [ $SRS_GPERF = YES ]; then fi # For coverage. if [[ $SRS_GCOV == YES ]]; then - CXXFLAGS="${CXXFLAGS} -fprofile-arcs -ftest-coverage"; + SrsGcov="-fprofile-arcs -ftest-coverage" +fi +if [[ $SRS_GCOV == YES ]]; then + CXXFLAGS="${CXXFLAGS} ${SrsGcov}"; fi # Start to generate the Makefile. cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} @@ -159,7 +162,7 @@ if [ $SRS_MIPS_UBUNTU12 = YES ]; then fi # For coverage. if [[ $SRS_GCOV == YES ]]; then - SrsLinkOptions="${SrsLinkOptions} -fprofile-arcs -ftest-coverage"; + SrsLinkOptions="${SrsLinkOptions} ${SrsGcov}"; fi ##################################################################################### @@ -507,7 +510,7 @@ librtmp: server @echo "Building the client publish/play library." \$(MAKE) -f ${SRS_OBJS_DIR}/${SRS_MAKEFILE} librtmp @echo "Building the srs-librtmp example." - (cd research/librtmp; \$(MAKE) ${SrsLibrtmpSampleEntry}) + (cd research/librtmp; \$(MAKE) EXTRA_CXXFLAGS="${SrsGcov}" ${SrsLibrtmpSampleEntry}) END else diff --git a/trunk/ide/srs_xcode/srs_xcode.xcodeproj/project.pbxproj b/trunk/ide/srs_xcode/srs_xcode.xcodeproj/project.pbxproj index cdc8708bf..4aa190f06 100644 --- a/trunk/ide/srs_xcode/srs_xcode.xcodeproj/project.pbxproj +++ b/trunk/ide/srs_xcode/srs_xcode.xcodeproj/project.pbxproj @@ -447,7 +447,6 @@ 3CECAF961EDC100F00C50501 /* sched.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sched.c; path = "../../../objs/state-threads-1.9.1/sched.c"; sourceTree = ""; }; 3CECAF971EDC100F00C50501 /* stk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stk.c; path = "../../../objs/state-threads-1.9.1/stk.c"; sourceTree = ""; }; 3CECAF981EDC100F00C50501 /* sync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync.c; path = "../../../objs/state-threads-1.9.1/sync.c"; sourceTree = ""; }; - 3CFBDA271F0338A40054D63E /* circle.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = circle.yml; path = ../../../circle.yml; sourceTree = ""; }; 8C0652AF2035B5B9000B0661 /* srs_app_coworkers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_coworkers.hpp; path = ../../../src/app/srs_app_coworkers.hpp; sourceTree = ""; }; 8C0652B02035B5B9000B0661 /* srs_app_coworkers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_coworkers.cpp; path = ../../../src/app/srs_app_coworkers.cpp; sourceTree = ""; }; /* End PBXFileReference section */ @@ -827,7 +826,6 @@ 3C1EE6D21AB1366500576EE9 /* doc */ = { isa = PBXGroup; children = ( - 3CFBDA271F0338A40054D63E /* circle.yml */, 3C1EE6D31AB1367D00576EE9 /* AUTHORS.txt */, 3C1EE6D51AB1367D00576EE9 /* LICENSE */, 3C1EE6D61AB1367D00576EE9 /* README.md */, diff --git a/trunk/research/librtmp/.gitignore b/trunk/research/librtmp/.gitignore index 26416673b..f1518d9c3 100644 --- a/trunk/research/librtmp/.gitignore +++ b/trunk/research/librtmp/.gitignore @@ -1 +1,3 @@ *.mp4 +*.gcno +*.gcda diff --git a/trunk/research/librtmp/Makefile b/trunk/research/librtmp/Makefile index 00fad0900..0e138bb36 100755 --- a/trunk/research/librtmp/Makefile +++ b/trunk/research/librtmp/Makefile @@ -57,15 +57,15 @@ SRS_RESEARCH_DEPS = Makefile # for x86/x64 platform ifeq ($(GCC), gcc) - EXTRA_CXX_FLAG = -g -O0 -ldl -lstdc++ -lm + OTHER_FLAGS += -g -O0 -ldl -lstdc++ -lm endif # for arm. ifeq ($(GCC), arm-linux-gnueabi-gcc) - EXTRA_CXX_FLAG = -g -O0 -ldl -static -lstdc++ -lm + OTHER_FLAGS += -g -O0 -ldl -static -lstdc++ -lm endif # for mips, add -lgcc_eh, or stl compile failed. ifeq ($(GCC), mipsel-openwrt-linux-gcc) - EXTRA_CXX_FLAG = -g -O0 -ldl -lstdc++ -lm -lgcc_eh + OTHER_FLAGS += -g -O0 -ldl -lstdc++ -lm -lgcc_eh endif # for ssl or nossl ifeq ($(HANDSHAKE), SSL) @@ -82,42 +82,44 @@ nossl: @mkdir -p objs $(MAKE) HANDSHAKE="NOSSL" +CXXFLAGS += $(OTHER_FLAGS) $(EXTRA_CXXFLAGS) + objs/srs_flv_parser: srs_flv_parser.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) - $(GCC) srs_flv_parser.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_flv_parser + $(GCC) srs_flv_parser.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_flv_parser objs/srs_flv_injecter: srs_flv_injecter.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) - $(GCC) srs_flv_injecter.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_flv_injecter + $(GCC) srs_flv_injecter.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_flv_injecter objs/srs_publish: srs_publish.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_publish + $(GCC) srs_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_publish objs/srs_h264_raw_publish: srs_h264_raw_publish.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_h264_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_h264_raw_publish + $(GCC) srs_h264_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_h264_raw_publish objs/srs_audio_raw_publish: srs_audio_raw_publish.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_audio_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_audio_raw_publish + $(GCC) srs_audio_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_audio_raw_publish objs/srs_aac_raw_publish: srs_aac_raw_publish.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_aac_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_aac_raw_publish + $(GCC) srs_aac_raw_publish.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_aac_raw_publish objs/srs_play: srs_play.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_play.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_play + $(GCC) srs_play.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_play objs/srs_ingest_flv: srs_ingest_flv.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_ingest_flv.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_flv + $(GCC) srs_ingest_flv.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_ingest_flv objs/srs_ingest_mp4: srs_ingest_mp4.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_ingest_mp4.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_mp4 + $(GCC) srs_ingest_mp4.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_ingest_mp4 objs/srs_ingest_rtmp: srs_ingest_rtmp.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_ingest_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_rtmp + $(GCC) srs_ingest_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_ingest_rtmp objs/srs_detect_rtmp: srs_detect_rtmp.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_detect_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_detect_rtmp + $(GCC) srs_detect_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_detect_rtmp objs/srs_bandwidth_check: srs_bandwidth_check.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_bandwidth_check.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_bandwidth_check + $(GCC) srs_bandwidth_check.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_bandwidth_check objs/srs_rtmp_dump: srs_rtmp_dump.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) - $(GCC) srs_rtmp_dump.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_rtmp_dump + $(GCC) srs_rtmp_dump.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(CXXFLAGS) -o objs/srs_rtmp_dump