├── Lib ├── arm版本编译,请将交叉编译工具链发送至support@easydarwin.org,说清需求 ├── libeasyrtspclient.a ├── libEasyRTSPClient.dll ├── libEasyRTSPClient.lib └── x64 │ └── libeasyrtspclient.a ├── main.cpp ├── Include ├── EasyTypes.h └── EasyRTSPClientAPI.h ├── Doc └── EasyRTSPClient.psd ├── .gitignore ├── Buildit ├── win ├── EasyRTSPClient.vcxproj.filters ├── EasyRTSPClient.vcxproj.user ├── EasyRTSPClient.sln └── EasyRTSPClient.vcxproj ├── nbproject ├── project.xml ├── Makefile-variables.mk ├── Makefile-Debug.mk ├── Makefile-i386.mk ├── Makefile-x64.mk ├── configurations.xml └── Makefile-impl.mk ├── README.md └── Makefile /Lib/arm版本编译,请将交叉编译工具链发送至support@easydarwin.org,说清需求: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/main.cpp -------------------------------------------------------------------------------- /Include/EasyTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Include/EasyTypes.h -------------------------------------------------------------------------------- /Doc/EasyRTSPClient.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Doc/EasyRTSPClient.psd -------------------------------------------------------------------------------- /Lib/libeasyrtspclient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Lib/libeasyrtspclient.a -------------------------------------------------------------------------------- /Lib/libEasyRTSPClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Lib/libEasyRTSPClient.dll -------------------------------------------------------------------------------- /Lib/libEasyRTSPClient.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Lib/libEasyRTSPClient.lib -------------------------------------------------------------------------------- /Include/EasyRTSPClientAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Include/EasyRTSPClientAPI.h -------------------------------------------------------------------------------- /Lib/x64/libeasyrtspclient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RDFS/EasyRTSPClient/master/Lib/x64/libeasyrtspclient.a -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | #ignore thumbnails created by windows 3 | Thumbs.db 4 | #Ignore files build by Visual Studio 5 | *.obj 6 | *.exe 7 | *.pdb 8 | *.user 9 | *.aps 10 | *.pch 11 | *.vspscc 12 | *_i.c 13 | *_p.c 14 | *.ncb 15 | *.suo 16 | *.tlb 17 | *.tlh 18 | *.bak 19 | *.cache 20 | *.ilk 21 | *.log 22 | [Dd]ebug*/ 23 | *.lib 24 | *.sbr 25 | obj/ 26 | [Rr]elease*/ 27 | _ReSharper*/ 28 | [Tt]est[Rr]esult* 29 | *.sdf 30 | *.sdp 31 | *.o 32 | *.exp 33 | [Ll]ogs*/ 34 | [Pp]rivate*/ 35 | ipch/ 36 | *.opensdf 37 | /build/ -------------------------------------------------------------------------------- /Buildit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | usage() 4 | { 5 | echo "0. clean up ./Buildit clean" 6 | echo "1. build 32bit program ./Buildit i386 [target in i386]" 7 | echo "2. build 64bit program ./Buildit x64 [target in x64]" 8 | } 9 | 10 | if [ "$*" = "clean" ] ; then 11 | make -f nbproject/Makefile-i386.mk QMAKE= SUBPROJECTS= .clean-conf 12 | make -f nbproject/Makefile-x64.mk QMAKE= SUBPROJECTS= .clean-conf 13 | elif [ "$*" = "x64" ] ; then 14 | make -f nbproject/Makefile-x64.mk QMAKE= SUBPROJECTS= .build-conf 15 | elif [ "$*" = "i386" ] ; then 16 | make -f nbproject/Makefile-i386.mk QMAKE= SUBPROJECTS= .build-conf 17 | else 18 | usage; 19 | fi 20 | 21 | -------------------------------------------------------------------------------- /win/EasyRTSPClient.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | 源文件 16 | 17 | 18 | -------------------------------------------------------------------------------- /win/EasyRTSPClient.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | path=%path%;..\Lib 5 | WindowsLocalDebugger 6 | "rtsp://127.0.0.1/live.sdp" 7 | 8 | 9 | path=%path%;..\Lib 10 | WindowsLocalDebugger 11 | "rtsp://127.0.0.1/live.sdp" 12 | 13 | -------------------------------------------------------------------------------- /win/EasyRTSPClient.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EasyRTSPClient", "EasyRTSPClient.vcxproj", "{2C677677-3CEC-43BF-90C5-CC4246894BE5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {2C677677-3CEC-43BF-90C5-CC4246894BE5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {2C677677-3CEC-43BF-90C5-CC4246894BE5}.Debug|Win32.Build.0 = Debug|Win32 14 | {2C677677-3CEC-43BF-90C5-CC4246894BE5}.Release|Win32.ActiveCfg = Release|Win32 15 | {2C677677-3CEC-43BF-90C5-CC4246894BE5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.cnd.makeproject 4 | 5 | 6 | EasyRTSPClient 7 | 8 | cpp 9 | 10 | GB2312 11 | 12 | 13 | 14 | 15 | Debug 16 | 1 17 | 18 | 19 | i386 20 | 1 21 | 22 | 23 | x64 24 | 1 25 | 26 | 27 | 28 | false 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /nbproject/Makefile-variables.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated - do not edit! 3 | # 4 | # NOCDDL 5 | # 6 | CND_BASEDIR=`pwd` 7 | CND_BUILDDIR=build 8 | CND_DISTDIR=dist 9 | # Debug configuration 10 | CND_PLATFORM_Debug=GNU-Linux-x86 11 | CND_ARTIFACT_DIR_Debug=Debug 12 | CND_ARTIFACT_NAME_Debug=easyrtspclient 13 | CND_ARTIFACT_PATH_Debug=Debug/easyrtspclient 14 | CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package 15 | CND_PACKAGE_NAME_Debug=easyrtspclient.tar 16 | CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/easyrtspclient.tar 17 | # i386 configuration 18 | CND_PLATFORM_i386=GNU-Linux-x86 19 | CND_ARTIFACT_DIR_i386=i386 20 | CND_ARTIFACT_NAME_i386=easyrtspclient 21 | CND_ARTIFACT_PATH_i386=i386/easyrtspclient 22 | CND_PACKAGE_DIR_i386=dist/i386/GNU-Linux-x86/package 23 | CND_PACKAGE_NAME_i386=easyrtspclient.tar 24 | CND_PACKAGE_PATH_i386=dist/i386/GNU-Linux-x86/package/easyrtspclient.tar 25 | # x64 configuration 26 | CND_PLATFORM_x64=GNU-Linux-x86 27 | CND_ARTIFACT_DIR_x64=x64 28 | CND_ARTIFACT_NAME_x64=easyrtspclient 29 | CND_ARTIFACT_PATH_x64=x64/easyrtspclient 30 | CND_PACKAGE_DIR_x64=dist/x64/GNU-Linux-x86/package 31 | CND_PACKAGE_NAME_x64=easyrtspclient.tar 32 | CND_PACKAGE_PATH_x64=dist/x64/GNU-Linux-x86/package/easyrtspclient.tar 33 | # 34 | # include compiler specific variables 35 | # 36 | # dmake command 37 | ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ 38 | (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) 39 | # 40 | # gmake command 41 | .PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) 42 | # 43 | include nbproject/private/Makefile-variables.mk 44 | -------------------------------------------------------------------------------- /nbproject/Makefile-Debug.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated Makefile - do not edit! 3 | # 4 | # Edit the Makefile in the project folder instead (../Makefile). Each target 5 | # has a -pre and a -post target defined where you can add customized code. 6 | # 7 | # This makefile implements configuration specific macros and targets. 8 | 9 | 10 | # Environment 11 | MKDIR=mkdir 12 | CP=cp 13 | GREP=grep 14 | NM=nm 15 | CCADMIN=CCadmin 16 | RANLIB=ranlib 17 | CC=gcc 18 | CCC=g++ 19 | CXX=g++ 20 | FC=gfortran 21 | AS=as 22 | 23 | # Macros 24 | CND_PLATFORM=GNU-Linux-x86 25 | CND_DLIB_EXT=so 26 | CND_CONF=Debug 27 | CND_DISTDIR=dist 28 | CND_BUILDDIR=build 29 | 30 | # Include project Makefile 31 | include Makefile 32 | 33 | # Object Directory 34 | OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} 35 | 36 | # Object Files 37 | OBJECTFILES= \ 38 | ${OBJECTDIR}/main.o 39 | 40 | 41 | # C Compiler Flags 42 | CFLAGS= 43 | 44 | # CC Compiler Flags 45 | CCFLAGS= 46 | CXXFLAGS= 47 | 48 | # Fortran Compiler Flags 49 | FFLAGS= 50 | 51 | # Assembler Flags 52 | ASFLAGS= 53 | 54 | # Link Libraries and Options 55 | LDLIBSOPTIONS=-LLib 56 | 57 | # Build Targets 58 | .build-conf: ${BUILD_SUBPROJECTS} 59 | "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_CONF}/easyrtspclient 60 | 61 | ${CND_CONF}/easyrtspclient: ${OBJECTFILES} 62 | ${MKDIR} -p ${CND_CONF} 63 | ${LINK.cc} -o ${CND_CONF}/easyrtspclient ${OBJECTFILES} ${LDLIBSOPTIONS} -leasyrtspclient -lpthread 64 | 65 | ${OBJECTDIR}/main.o: main.cpp 66 | ${MKDIR} -p ${OBJECTDIR} 67 | ${RM} "$@.d" 68 | $(COMPILE.cc) -g -IInclude -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp 69 | 70 | # Subprojects 71 | .build-subprojects: 72 | 73 | # Clean Targets 74 | .clean-conf: ${CLEAN_SUBPROJECTS} 75 | ${RM} -r ${CND_BUILDDIR}/${CND_CONF} 76 | ${RM} ${CND_CONF}/easyrtspclient 77 | 78 | # Subprojects 79 | .clean-subprojects: 80 | 81 | # Enable dependency checking 82 | .dep.inc: .depcheck-impl 83 | 84 | include .dep.inc 85 | -------------------------------------------------------------------------------- /nbproject/Makefile-i386.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated Makefile - do not edit! 3 | # 4 | # Edit the Makefile in the project folder instead (../Makefile). Each target 5 | # has a -pre and a -post target defined where you can add customized code. 6 | # 7 | # This makefile implements configuration specific macros and targets. 8 | 9 | 10 | # Environment 11 | MKDIR=mkdir 12 | CP=cp 13 | GREP=grep 14 | NM=nm 15 | CCADMIN=CCadmin 16 | RANLIB=ranlib 17 | CC=gcc 18 | CCC=g++ 19 | CXX=g++ 20 | FC=gfortran 21 | AS=as 22 | 23 | # Macros 24 | CND_PLATFORM=GNU-Linux-x86 25 | CND_DLIB_EXT=so 26 | CND_CONF=i386 27 | CND_DISTDIR=dist 28 | CND_BUILDDIR=build 29 | 30 | # Include project Makefile 31 | include Makefile 32 | 33 | # Object Directory 34 | OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} 35 | 36 | # Object Files 37 | OBJECTFILES= \ 38 | ${OBJECTDIR}/main.o 39 | 40 | 41 | # C Compiler Flags 42 | CFLAGS= 43 | 44 | # CC Compiler Flags 45 | CCFLAGS=-m32 46 | CXXFLAGS=-m32 47 | 48 | # Fortran Compiler Flags 49 | FFLAGS= 50 | 51 | # Assembler Flags 52 | ASFLAGS= 53 | 54 | # Link Libraries and Options 55 | LDLIBSOPTIONS=-LLib 56 | 57 | # Build Targets 58 | .build-conf: ${BUILD_SUBPROJECTS} 59 | "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_CONF}/easyrtspclient 60 | 61 | ${CND_CONF}/easyrtspclient: ${OBJECTFILES} 62 | ${MKDIR} -p ${CND_CONF} 63 | ${LINK.cc} -o ${CND_CONF}/easyrtspclient ${OBJECTFILES} ${LDLIBSOPTIONS} -leasyrtspclient -lpthread 64 | 65 | ${OBJECTDIR}/main.o: main.cpp 66 | ${MKDIR} -p ${OBJECTDIR} 67 | ${RM} "$@.d" 68 | $(COMPILE.cc) -O2 -IInclude -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp 69 | 70 | # Subprojects 71 | .build-subprojects: 72 | 73 | # Clean Targets 74 | .clean-conf: ${CLEAN_SUBPROJECTS} 75 | ${RM} -r ${CND_BUILDDIR}/${CND_CONF} 76 | ${RM} ${CND_CONF}/easyrtspclient 77 | 78 | # Subprojects 79 | .clean-subprojects: 80 | 81 | # Enable dependency checking 82 | .dep.inc: .depcheck-impl 83 | 84 | include .dep.inc 85 | -------------------------------------------------------------------------------- /nbproject/Makefile-x64.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated Makefile - do not edit! 3 | # 4 | # Edit the Makefile in the project folder instead (../Makefile). Each target 5 | # has a -pre and a -post target defined where you can add customized code. 6 | # 7 | # This makefile implements configuration specific macros and targets. 8 | 9 | 10 | # Environment 11 | MKDIR=mkdir 12 | CP=cp 13 | GREP=grep 14 | NM=nm 15 | CCADMIN=CCadmin 16 | RANLIB=ranlib 17 | CC=gcc 18 | CCC=g++ 19 | CXX=g++ 20 | FC=gfortran 21 | AS=as 22 | 23 | # Macros 24 | CND_PLATFORM=GNU-Linux-x86 25 | CND_DLIB_EXT=so 26 | CND_CONF=x64 27 | CND_DISTDIR=dist 28 | CND_BUILDDIR=build 29 | 30 | # Include project Makefile 31 | include Makefile 32 | 33 | # Object Directory 34 | OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} 35 | 36 | # Object Files 37 | OBJECTFILES= \ 38 | ${OBJECTDIR}/main.o 39 | 40 | 41 | # C Compiler Flags 42 | CFLAGS= 43 | 44 | # CC Compiler Flags 45 | CCFLAGS= 46 | CXXFLAGS= 47 | 48 | # Fortran Compiler Flags 49 | FFLAGS= 50 | 51 | # Assembler Flags 52 | ASFLAGS= 53 | 54 | # Link Libraries and Options 55 | LDLIBSOPTIONS=-LLib/${CND_CONF} 56 | 57 | # Build Targets 58 | .build-conf: ${BUILD_SUBPROJECTS} 59 | "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_CONF}/easyrtspclient 60 | 61 | ${CND_CONF}/easyrtspclient: ${OBJECTFILES} 62 | ${MKDIR} -p ${CND_CONF} 63 | ${LINK.cc} -o ${CND_CONF}/easyrtspclient ${OBJECTFILES} ${LDLIBSOPTIONS} -leasyrtspclient -lpthread 64 | 65 | ${OBJECTDIR}/main.o: main.cpp 66 | ${MKDIR} -p ${OBJECTDIR} 67 | ${RM} "$@.d" 68 | $(COMPILE.cc) -O2 -IInclude -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp 69 | 70 | # Subprojects 71 | .build-subprojects: 72 | 73 | # Clean Targets 74 | .clean-conf: ${CLEAN_SUBPROJECTS} 75 | ${RM} -r ${CND_BUILDDIR}/${CND_CONF} 76 | ${RM} ${CND_CONF}/easyrtspclient 77 | 78 | # Subprojects 79 | .clean-subprojects: 80 | 81 | # Enable dependency checking 82 | .dep.inc: .depcheck-impl 83 | 84 | include .dep.inc 85 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EasyRTSPClient # 2 | 3 | EasyRTSPClient是EasyDarwin开源流媒体团队成员Gavin开发、提供的一套非常稳定、易用、支持重连的RTSPClient工具,接口调用非常简单,再也不用像调用live555那样处理整个RTSP OPTIONS/DESCRIBE/SETUP/PLAY的复杂流程,担心内存释放的问题了,全平台支持(包括Windows/Linux 32&64,ARM各平台,Android,IOS),接口简单且成熟稳定! 4 | 5 | ## 调用示例 ## 6 | 7 | - **EasyRTSPClient**:以RTSPClient的形式,从RTSP URL将音视频获取到本地; 8 | 9 | Windows编译方法, 10 | 11 | Visual Studio 2010 编译:./EasyRTSPClient-master/win/EasyRTSPClient.sln 12 | 13 | Linux编译方法, 14 | 15 | chmod +x ./Buildit 16 | ./Buildit 17 | 18 | 19 | - **EasyDarwin**:您也可以参考EasyDarwin中EasyHLSSession(HLS直播模块)、EasyRelaySession(RTSP转发模块)对EasyRTSPClient库的调用方法,详细请看:[https://github.com/EasyDarwin/EasyDarwin](https://github.com/EasyDarwin/EasyDarwin "EasyDarwin"); 20 | 21 | - **我们同时提供Windows、Linux、ARM版本的libEasyRTSPClient库**:arm版本请将交叉编译工具链发送至[support@easydarwin.org](mailto:support@easydarwin.org "EasyDarwin mail"),我们会帮您具体编译 22 | 23 | ## 调用流程 ## 24 | ![](http://www.easydarwin.org/skin/easydarwin/images/easyrtspclient20160326.png) 25 | 26 | 27 | ## 设计方法 ## 28 | EasyRTSPClient参考live555 testProg中的testRTSPClient示例程序,将一个live555 testRTSPClient封装在一个类中,例如,我们称为Class EasyRTSPClient,在EasyRTSP_Init接口调用时,我们新建EasyRTSPClient对象、在EasyRTSP_OpenStream接口调用时,我们建立线程,装载live555的TaskScheduler->SingleStep(0),然后再进行RTSP的具体流程,这个就可以直接用testRTSPClient的使用流程了、关闭RTSPClient,我们调用EasyRTSP_CloseStream接口,内部实现参考testRTSPClient中的shutdownStream方法,最后delete EasyRTSPClient类,这样整个过程就完整了! 29 | 30 | ### RTSPSourceCallBack数据回调说明 ### 31 | EasyRTSPClient可以回调出多种类型的数据: 32 | 33 | #define EASY_SDK_VIDEO_FRAME_FLAG /* 视频帧数据 */ 34 | #define EASY_SDK_AUDIO_FRAME_FLAG /* 音频帧数据 */ 35 | #define EASY_SDK_EVENT_FRAME_FLAG /* 事件帧数据 */ 36 | #define EASY_SDK_RTP_FRAME_FLAG /* RTP帧数据 */ 37 | #define EASY_SDK_SDP_FRAME_FLAG /* SDP帧数据 */ 38 | #define EASY_SDK_MEDIA_INFO_FLAG /* 媒体类型数据 */ 39 | 40 | EASY\_SDK\_VIDEO\_FRAME\_FLAG数据可支持多种视频格式: 41 | 42 | #define EASY_SDK_VIDEO_CODEC_H264 /* H264 */ 43 | #define EASY_SDK_VIDEO_CODEC_MJPEG /* MJPEG */ 44 | #define EASY_SDK_VIDEO_CODEC_MPEG4 /* MPEG4 */ 45 | 46 | 47 | > ***当回调出RTSP_FRAME_INFO->codec为EASY\_SDK\_VIDEO\_CODEC\_H264数据,RTSP_FRAME_INFO->type为EASY\_SDK\_VIDEO\_FRAME\_I关键帧时,我们输出的数据结构为SPS+PPS+I的组合***: 48 | 49 | |---------sps---------|-------pps-------|---------------I Frame---------------| 50 | | | | | 51 | 0-----------------reserved1---------reserved2-------------------------------length 52 | 53 | 54 | EASY\_SDK\_AUDIO\_FRAME\_FLAG数据可支持多种音频格式: 55 | 56 | #define EASY_SDK_AUDIO_CODEC_AAC /* AAC */ 57 | #define EASY_SDK_AUDIO_CODEC_G711A /* G711 alaw*/ 58 | #define EASY_SDK_AUDIO_CODEC_G711U /* G711 ulaw*/ 59 | 60 | 61 | ## 获取更多信息 ## 62 | 63 | 邮件:[support@easydarwin.org](mailto:support@easydarwin.org) 64 | 65 | WEB:[www.EasyDarwin.org](http://www.easydarwin.org) 66 | 67 | Author:[Gavin@EasyDarwin.org](mailto:Gavin@EasyDarwin.org "Gavin@EasyDarwin.org") 68 | 69 | QQ交流群:[465901074](http://jq.qq.com/?_wv=1027&k=2G045mo "EasyRTSPClient") 70 | 71 | Copyright © EasyDarwin.org 2012-2016 72 | 73 | ![EasyDarwin](http://www.easydarwin.org/skin/easydarwin/images/wx_qrcode.jpg) -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # There exist several targets which are by default empty and which can be 3 | # used for execution of your targets. These targets are usually executed 4 | # before and after some main targets. They are: 5 | # 6 | # .build-pre: called before 'build' target 7 | # .build-post: called after 'build' target 8 | # .clean-pre: called before 'clean' target 9 | # .clean-post: called after 'clean' target 10 | # .clobber-pre: called before 'clobber' target 11 | # .clobber-post: called after 'clobber' target 12 | # .all-pre: called before 'all' target 13 | # .all-post: called after 'all' target 14 | # .help-pre: called before 'help' target 15 | # .help-post: called after 'help' target 16 | # 17 | # Targets beginning with '.' are not intended to be called on their own. 18 | # 19 | # Main targets can be executed directly, and they are: 20 | # 21 | # build build a specific configuration 22 | # clean remove built files from a configuration 23 | # clobber remove all built files 24 | # all build all configurations 25 | # help print help mesage 26 | # 27 | # Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and 28 | # .help-impl are implemented in nbproject/makefile-impl.mk. 29 | # 30 | # Available make variables: 31 | # 32 | # CND_BASEDIR base directory for relative paths 33 | # CND_DISTDIR default top distribution directory (build artifacts) 34 | # CND_BUILDDIR default top build directory (object files, ...) 35 | # CONF name of current configuration 36 | # CND_PLATFORM_${CONF} platform name (current configuration) 37 | # CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration) 38 | # CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration) 39 | # CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration) 40 | # CND_PACKAGE_DIR_${CONF} directory of package (current configuration) 41 | # CND_PACKAGE_NAME_${CONF} name of package (current configuration) 42 | # CND_PACKAGE_PATH_${CONF} path to package (current configuration) 43 | # 44 | # NOCDDL 45 | 46 | 47 | # Environment 48 | MKDIR=mkdir 49 | CP=cp 50 | CCADMIN=CCadmin 51 | 52 | 53 | # build 54 | build: .build-post 55 | 56 | .build-pre: 57 | # Add your pre 'build' code here... 58 | 59 | .build-post: .build-impl 60 | # Add your post 'build' code here... 61 | 62 | 63 | # clean 64 | clean: .clean-post 65 | 66 | .clean-pre: 67 | # Add your pre 'clean' code here... 68 | 69 | .clean-post: .clean-impl 70 | # Add your post 'clean' code here... 71 | 72 | 73 | # clobber 74 | clobber: .clobber-post 75 | 76 | .clobber-pre: 77 | # Add your pre 'clobber' code here... 78 | 79 | .clobber-post: .clobber-impl 80 | # Add your post 'clobber' code here... 81 | 82 | 83 | # all 84 | all: .all-post 85 | 86 | .all-pre: 87 | # Add your pre 'all' code here... 88 | 89 | .all-post: .all-impl 90 | # Add your post 'all' code here... 91 | 92 | 93 | # build tests 94 | build-tests: .build-tests-post 95 | 96 | .build-tests-pre: 97 | # Add your pre 'build-tests' code here... 98 | 99 | .build-tests-post: .build-tests-impl 100 | # Add your post 'build-tests' code here... 101 | 102 | 103 | # run tests 104 | test: .test-post 105 | 106 | .test-pre: build-tests 107 | # Add your pre 'test' code here... 108 | 109 | .test-post: .test-impl 110 | # Add your post 'test' code here... 111 | 112 | 113 | # help 114 | help: .help-post 115 | 116 | .help-pre: 117 | # Add your pre 'help' code here... 118 | 119 | .help-post: .help-impl 120 | # Add your post 'help' code here... 121 | 122 | 123 | 124 | # include project implementation makefile 125 | include nbproject/Makefile-impl.mk 126 | 127 | # include project make variables 128 | include nbproject/Makefile-variables.mk 129 | -------------------------------------------------------------------------------- /nbproject/configurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 19 | Makefile 20 | 21 | main.cpp 22 | 23 | Makefile 24 | 25 | 26 | 27 | default 28 | true 29 | false 30 | 31 | 32 | 33 | 34 | Include 35 | 36 | 37 | 38 | ${CND_CONF}/easyrtspclient 39 | 40 | Lib 41 | 42 | -leasyrtspclient -lpthread 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | default 51 | true 52 | false 53 | 54 | 55 | 56 | 5 57 | 58 | 59 | 5 60 | 61 | Include 62 | 63 | -m32 64 | 65 | 66 | 5 67 | 68 | 69 | 5 70 | 71 | 72 | ${CND_CONF}/easyrtspclient 73 | 74 | Lib 75 | 76 | -leasyrtspclient -lpthread 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | default 85 | true 86 | false 87 | 88 | 89 | 90 | 5 91 | 92 | 93 | 5 94 | 95 | Include 96 | 97 | 98 | 99 | 5 100 | 101 | 102 | 5 103 | 104 | 105 | ${CND_CONF}/easyrtspclient 106 | 107 | Lib/${CND_CONF} 108 | 109 | -leasyrtspclient -lpthread 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /nbproject/Makefile-impl.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated Makefile - do not edit! 3 | # 4 | # Edit the Makefile in the project folder instead (../Makefile). Each target 5 | # has a pre- and a post- target defined where you can add customization code. 6 | # 7 | # This makefile implements macros and targets common to all configurations. 8 | # 9 | # NOCDDL 10 | 11 | 12 | # Building and Cleaning subprojects are done by default, but can be controlled with the SUB 13 | # macro. If SUB=no, subprojects will not be built or cleaned. The following macro 14 | # statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf 15 | # and .clean-reqprojects-conf unless SUB has the value 'no' 16 | SUB_no=NO 17 | SUBPROJECTS=${SUB_${SUB}} 18 | BUILD_SUBPROJECTS_=.build-subprojects 19 | BUILD_SUBPROJECTS_NO= 20 | BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} 21 | CLEAN_SUBPROJECTS_=.clean-subprojects 22 | CLEAN_SUBPROJECTS_NO= 23 | CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} 24 | 25 | 26 | # Project Name 27 | PROJECTNAME=EasyRTSPClient 28 | 29 | # Active Configuration 30 | DEFAULTCONF=Debug 31 | CONF=${DEFAULTCONF} 32 | 33 | # All Configurations 34 | ALLCONFS=Debug i386 x64 35 | 36 | 37 | # build 38 | .build-impl: .build-pre .validate-impl .depcheck-impl 39 | @#echo "=> Running $@... Configuration=$(CONF)" 40 | "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf 41 | 42 | 43 | # clean 44 | .clean-impl: .clean-pre .validate-impl .depcheck-impl 45 | @#echo "=> Running $@... Configuration=$(CONF)" 46 | "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf 47 | 48 | 49 | # clobber 50 | .clobber-impl: .clobber-pre .depcheck-impl 51 | @#echo "=> Running $@..." 52 | for CONF in ${ALLCONFS}; \ 53 | do \ 54 | "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \ 55 | done 56 | 57 | # all 58 | .all-impl: .all-pre .depcheck-impl 59 | @#echo "=> Running $@..." 60 | for CONF in ${ALLCONFS}; \ 61 | do \ 62 | "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \ 63 | done 64 | 65 | # build tests 66 | .build-tests-impl: .build-impl .build-tests-pre 67 | @#echo "=> Running $@... Configuration=$(CONF)" 68 | "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf 69 | 70 | # run tests 71 | .test-impl: .build-tests-impl .test-pre 72 | @#echo "=> Running $@... Configuration=$(CONF)" 73 | "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf 74 | 75 | # dependency checking support 76 | .depcheck-impl: 77 | @echo "# This code depends on make tool being used" >.dep.inc 78 | @if [ -n "${MAKE_VERSION}" ]; then \ 79 | echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \ 80 | echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ 81 | echo "include \$${DEPFILES}" >>.dep.inc; \ 82 | echo "endif" >>.dep.inc; \ 83 | else \ 84 | echo ".KEEP_STATE:" >>.dep.inc; \ 85 | echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ 86 | fi 87 | 88 | # configuration validation 89 | .validate-impl: 90 | @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ 91 | then \ 92 | echo ""; \ 93 | echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \ 94 | echo "See 'make help' for details."; \ 95 | echo "Current directory: " `pwd`; \ 96 | echo ""; \ 97 | fi 98 | @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ 99 | then \ 100 | exit 1; \ 101 | fi 102 | 103 | 104 | # help 105 | .help-impl: .help-pre 106 | @echo "This makefile supports the following configurations:" 107 | @echo " ${ALLCONFS}" 108 | @echo "" 109 | @echo "and the following targets:" 110 | @echo " build (default target)" 111 | @echo " clean" 112 | @echo " clobber" 113 | @echo " all" 114 | @echo " help" 115 | @echo "" 116 | @echo "Makefile Usage:" 117 | @echo " make [CONF=] [SUB=no] build" 118 | @echo " make [CONF=] [SUB=no] clean" 119 | @echo " make [SUB=no] clobber" 120 | @echo " make [SUB=no] all" 121 | @echo " make help" 122 | @echo "" 123 | @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," 124 | @echo " also build subprojects." 125 | @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," 126 | @echo " also clean subprojects." 127 | @echo "Target 'clobber' will remove all built files from all configurations and," 128 | @echo " unless 'SUB=no', also from subprojects." 129 | @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," 130 | @echo " also build subprojects." 131 | @echo "Target 'help' prints this message." 132 | @echo "" 133 | 134 | -------------------------------------------------------------------------------- /win/EasyRTSPClient.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | 15 | 16 | 17 | {2C677677-3CEC-43BF-90C5-CC4246894BE5} 18 | Win32Proj 19 | EasyPusher_demo 20 | EasyRTSPClient 21 | 22 | 23 | 24 | Application 25 | true 26 | Unicode 27 | false 28 | 29 | 30 | Application 31 | false 32 | true 33 | Unicode 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | true 47 | $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include 48 | $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib 49 | false 50 | 51 | 52 | false 53 | false 54 | 55 | 56 | 57 | 58 | 59 | Level3 60 | Disabled 61 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 62 | ../Include/ 63 | MultiThreadedDebug 64 | 65 | 66 | Console 67 | true 68 | ws2_32.lib;wsock32.lib;winmm.lib;libEasyRTSPClient.lib 69 | ../Lib/ 70 | 71 | 72 | 73 | 74 | Level3 75 | 76 | 77 | Disabled 78 | 79 | 80 | false 81 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 82 | ../Include/ 83 | MultiThreaded 84 | EditAndContinue 85 | false 86 | true 87 | EnableFastChecks 88 | 89 | 90 | Console 91 | true 92 | true 93 | true 94 | ws2_32.lib;wsock32.lib;winmm.lib;libEasyRTSPClient.lib 95 | ../Lib/ 96 | 97 | 98 | 99 | 100 | 101 | --------------------------------------------------------------------------------