├── .gitignore ├── LICENSE ├── README.md ├── demo ├── EasyCommon │ └── EasyTypes.h ├── EasyRTSPClient │ ├── EasyRTSPClientAPI.h │ ├── Win32 │ │ ├── libEasyRTSPClient.dll │ │ └── libEasyRTSPClient.lib │ └── Win64 │ │ ├── libEasyRTSPClient.dll │ │ └── libEasyRTSPClient.lib ├── EasyRTSPServer │ ├── EasyRtspServerAPI.h │ ├── Win32 │ │ ├── libEasyRTSPServer.dll │ │ └── libEasyRTSPServer.lib │ └── Win64 │ │ ├── libEasyRTSPServer.dll │ │ └── libEasyRTSPServer.lib ├── EasyStreamingServer.cpp ├── EasyStreamingServer.h ├── EasyStreamingServer.sln ├── EasyStreamingServer.vcxproj ├── EasyStreamingServer.vcxproj.filters ├── EasyStreamingServer.vcxproj.user ├── Makefile ├── README.md ├── getsps.cpp ├── getsps.h ├── main.cpp └── nbproject │ ├── Makefile-Debug.mk │ ├── Makefile-Release.mk │ ├── Makefile-impl.mk │ ├── Makefile-variables.mk │ ├── Package-Debug.bash │ ├── Package-Release.bash │ ├── configurations.xml │ ├── private │ ├── Makefile-variables.mk │ ├── c_standard_headers_indexer.c │ ├── configurations.xml │ ├── cpp_standard_headers_indexer.cpp │ ├── launcher.properties │ └── private.xml │ └── project.xml ├── simulator ├── Bin │ ├── Linux_64bits │ │ ├── easy.mp4 │ │ └── easyrtspserver_demo │ └── Win64 │ │ ├── EasyRTSPServer_Demo.exe │ │ ├── avcodec-58.dll │ │ ├── avdevice-58.dll │ │ ├── avfilter-7.dll │ │ ├── avformat-58.dll │ │ ├── avutil-56.dll │ │ ├── easy.mp4 │ │ ├── libEasyRTSPServer.dll │ │ ├── libEasyStreamClient.dll │ │ ├── postproc-55.dll │ │ ├── swresample-3.dll │ │ ├── swscale-5.dll │ │ └── vcruntime140_1.dll ├── README.md └── Src │ ├── .dep.inc │ ├── EasyCommon │ └── EasyTypes.h │ ├── EasyRTSPServer │ ├── EasyRtspServerAPI.h │ └── Win64 │ │ ├── libEasyRTSPServer.dll │ │ └── libEasyRTSPServer.lib │ ├── EasyRTSPServer_Demo.cpp │ ├── EasyRTSPServer_Demo.h │ ├── EasyRTSPServer_Demo.sln │ ├── EasyRTSPServer_Demo.vcxproj │ ├── EasyRTSPServer_Demo.vcxproj.filters │ ├── EasyRTSPServer_Demo.vcxproj.user │ ├── EasyStreamClient │ ├── EasyStreamClientAPI.h │ └── Win64 │ │ ├── libEasyStreamClient.dll │ │ └── libEasyStreamClient.lib │ ├── Lib │ └── x64 │ │ ├── libavcodec.a │ │ ├── libavfilter.a │ │ ├── libavformat.a │ │ ├── libavutil.a │ │ ├── libbz2.a │ │ ├── libeasyrtmp.a │ │ ├── libeasyrtspserver.a │ │ ├── libeasystreamclient.a │ │ ├── libfreetype.a │ │ ├── libpostproc.a │ │ ├── libswresample.a │ │ ├── libswscale.a │ │ ├── libx264.a │ │ └── libz.a │ ├── Makefile │ ├── getsps.cpp │ ├── getsps.h │ ├── main.cpp │ └── nbproject │ ├── Makefile-Debug.mk │ ├── Makefile-Release.mk │ ├── Makefile-aarch64.mk │ ├── Makefile-hisiv300.mk │ ├── Makefile-hisiv500.mk │ ├── Makefile-impl.mk │ ├── Makefile-variables.mk │ ├── Makefile-x64.mk │ ├── Package-Debug.bash │ ├── Package-Release.bash │ ├── configurations.xml │ ├── private │ ├── Makefile-variables.mk │ ├── c_standard_headers_indexer.c │ ├── configurations.xml │ ├── cpp_standard_headers_indexer.cpp │ ├── launcher.properties │ └── private.xml │ └── project.xml └── src ├── BaseList.cpp ├── BaseList.h ├── BasicTaskSchedulerEpoll.cpp ├── BasicTaskSchedulerEpoll.h ├── Buildit ├── CreateDump.cpp ├── CreateDump.h ├── EasyRtspServerAPI.cpp ├── EasyRtspServerAPI.h ├── EasyTypes.h ├── LiveAudioServerMediaSubsession.cpp ├── LiveAudioServerMediaSubsession.h ├── LiveH264VideoServerMediaSubsession.cpp ├── LiveH264VideoServerMediaSubsession.h ├── LiveH265VideoServerMediaSubsession.cpp ├── LiveH265VideoServerMediaSubsession.h ├── LiveJPEGStreamSource.cpp ├── LiveJPEGStreamSource.h ├── LiveJPEGVideoServerMediaSubsession.cpp ├── LiveJPEGVideoServerMediaSubsession.h ├── LiveMetadataServerMediaSubsession.cpp ├── LiveMetadataServerMediaSubsession.h ├── LiveRtspServer.cpp ├── LiveRtspServer.h ├── LiveServerMediaSession.cpp ├── LiveServerMediaSession.h ├── LiveServerMediaSubsession.cpp ├── LiveServerMediaSubsession.h ├── LiveSource.cpp ├── LiveSource.h ├── MJPEGVideoSource.cpp ├── MJPEGVideoSource.h ├── Makefile ├── RtspClientList.cpp ├── RtspClientList.h ├── RtspTypes.h ├── TerminalCode.h ├── aes256.cpp ├── aes256.h ├── libEasyRTSPServer.sln ├── libRTSPServer.vcxproj ├── libRTSPServer.vcxproj.filters ├── libRTSPServer.vcxproj.user ├── libRTSPServerAPI.cpp ├── libRTSPServerAPI.h ├── live ├── #config.macosx# ├── BasicUsageEnvironment │ ├── BasicHashTable.cpp │ ├── BasicTaskScheduler.cpp │ ├── BasicTaskScheduler0.cpp │ ├── BasicUsageEnvironment.cpp │ ├── BasicUsageEnvironment0.cpp │ ├── COPYING │ ├── COPYING.LESSER │ ├── DelayQueue.cpp │ ├── Makefile.head │ ├── Makefile.tail │ └── include │ │ ├── BasicHashTable.hh │ │ ├── BasicUsageEnvironment.hh │ │ ├── BasicUsageEnvironment0.hh │ │ ├── BasicUsageEnvironment_version.hh │ │ ├── DelayQueue.hh │ │ └── HandlerSet.hh ├── COPYING ├── COPYING.LESSER ├── Makefile.head ├── Makefile.tail ├── README ├── UsageEnvironment │ ├── COPYING │ ├── COPYING.LESSER │ ├── HashTable.cpp │ ├── Makefile.head │ ├── Makefile.tail │ ├── UsageEnvironment.cpp │ ├── include │ │ ├── Boolean.hh │ │ ├── HashTable.hh │ │ ├── UsageEnvironment.hh │ │ ├── UsageEnvironment_version.hh │ │ └── strDup.hh │ └── strDup.cpp ├── WindowsAudioInputDevice │ ├── WindowsAudioInputDevice.mak │ ├── WindowsAudioInputDevice_common.cpp │ ├── WindowsAudioInputDevice_common.hh │ ├── WindowsAudioInputDevice_mixer.cpp │ ├── WindowsAudioInputDevice_mixer.hh │ ├── WindowsAudioInputDevice_noMixer.cpp │ ├── WindowsAudioInputDevice_noMixer.hh │ └── showAudioInputPorts.cpp ├── config.aix ├── config.alpha ├── config.armeb-uclibc ├── config.armlinux ├── config.avr32-linux ├── config.bfin-linux-uclibc ├── config.bfin-uclinux ├── config.bsplinux ├── config.cris-axis-linux-gnu ├── config.cygwin ├── config.cygwin-for-vlc ├── config.freebsd ├── config.iphone-simulator ├── config.iphoneos ├── config.irix ├── config.linux ├── config.linux-64bit ├── config.linux-gdb ├── config.linux-with-shared-libraries ├── config.macosx ├── config.macosx-32bit ├── config.macosx-before-version-10.4 ├── config.mingw ├── config.openbsd ├── config.qnx4 ├── config.solaris-32bit ├── config.solaris-64bit ├── config.sunos ├── config.uClinux ├── configure ├── fix-makefile ├── genMakefiles ├── genWindowsMakefiles ├── genWindowsMakefiles.cmd ├── groupsock │ ├── COPYING │ ├── COPYING.LESSER │ ├── GroupEId.cpp │ ├── Groupsock.cpp │ ├── GroupsockHelper.cpp │ ├── IOHandlers.cpp │ ├── Makefile.head │ ├── Makefile.tail │ ├── NetAddress.cpp │ ├── NetInterface.cpp │ ├── include │ │ ├── GroupEId.hh │ │ ├── Groupsock.hh │ │ ├── GroupsockHelper.hh │ │ ├── IOHandlers.hh │ │ ├── NetAddress.hh │ │ ├── NetCommon.h │ │ ├── NetInterface.hh │ │ ├── TunnelEncaps.hh │ │ └── groupsock_version.hh │ └── inet.c ├── liveMedia │ ├── AC3AudioFileServerMediaSubsession.cpp │ ├── AC3AudioRTPSink.cpp │ ├── AC3AudioRTPSource.cpp │ ├── AC3AudioStreamFramer.cpp │ ├── ADTSAudioFileServerMediaSubsession.cpp │ ├── ADTSAudioFileSource.cpp │ ├── AMRAudioFileServerMediaSubsession.cpp │ ├── AMRAudioFileSink.cpp │ ├── AMRAudioFileSource.cpp │ ├── AMRAudioRTPSink.cpp │ ├── AMRAudioRTPSource.cpp │ ├── AMRAudioSource.cpp │ ├── AVIFileSink.cpp │ ├── AudioInputDevice.cpp │ ├── AudioRTPSink.cpp │ ├── Base64.cpp │ ├── BasicUDPSink.cpp │ ├── BasicUDPSource.cpp │ ├── BitVector.cpp │ ├── ByteStreamFileSource.cpp │ ├── ByteStreamMemoryBufferSource.cpp │ ├── ByteStreamMultiFileSource.cpp │ ├── COPYING │ ├── COPYING.LESSER │ ├── DVVideoFileServerMediaSubsession.cpp │ ├── DVVideoRTPSink.cpp │ ├── DVVideoRTPSource.cpp │ ├── DVVideoStreamFramer.cpp │ ├── DeviceSource.cpp │ ├── DigestAuthentication.cpp │ ├── EBMLNumber.cpp │ ├── EBMLNumber.hh │ ├── FileServerMediaSubsession.cpp │ ├── FileSink.cpp │ ├── FramedFileSource.cpp │ ├── FramedFilter.cpp │ ├── FramedSource.cpp │ ├── GSMAudioRTPSink.cpp │ ├── GenericMediaServer.cpp │ ├── GenericMediaServer_20191012.cpp │ ├── GenericMediaServer_20191230.cpp │ ├── H261VideoRTPSource.cpp │ ├── H263plusVideoFileServerMediaSubsession.cpp │ ├── H263plusVideoRTPSink.cpp │ ├── H263plusVideoRTPSource.cpp │ ├── H263plusVideoStreamFramer.cpp │ ├── H263plusVideoStreamParser.cpp │ ├── H263plusVideoStreamParser.hh │ ├── H264VideoFileServerMediaSubsession.cpp │ ├── H264VideoFileSink.cpp │ ├── H264VideoRTPSink.cpp │ ├── H264VideoRTPSource.cpp │ ├── H264VideoStreamDiscreteFramer.cpp │ ├── H264VideoStreamFramer.cpp │ ├── H264or5VideoFileSink.cpp │ ├── H264or5VideoRTPSink.cpp │ ├── H264or5VideoStreamDiscreteFramer.cpp │ ├── H264or5VideoStreamFramer.cpp │ ├── H265VideoFileServerMediaSubsession.cpp │ ├── H265VideoFileSink.cpp │ ├── H265VideoRTPSink.cpp │ ├── H265VideoRTPSource.cpp │ ├── H265VideoStreamDiscreteFramer.cpp │ ├── H265VideoStreamFramer.cpp │ ├── InputFile.cpp │ ├── JPEGVideoRTPSink.cpp │ ├── JPEGVideoRTPSource.cpp │ ├── JPEGVideoSource.cpp │ ├── Locale.cpp │ ├── MP3ADU.cpp │ ├── MP3ADURTPSink.cpp │ ├── MP3ADURTPSource.cpp │ ├── MP3ADUTranscoder.cpp │ ├── MP3ADUdescriptor.cpp │ ├── MP3ADUdescriptor.hh │ ├── MP3ADUinterleaving.cpp │ ├── MP3AudioFileServerMediaSubsession.cpp │ ├── MP3AudioMatroskaFileServerMediaSubsession.cpp │ ├── MP3AudioMatroskaFileServerMediaSubsession.hh │ ├── MP3FileSource.cpp │ ├── MP3Internals.cpp │ ├── MP3Internals.hh │ ├── MP3InternalsHuffman.cpp │ ├── MP3InternalsHuffman.hh │ ├── MP3InternalsHuffmanTable.cpp │ ├── MP3StreamState.cpp │ ├── MP3StreamState.hh │ ├── MP3Transcoder.cpp │ ├── MPEG1or2AudioRTPSink.cpp │ ├── MPEG1or2AudioRTPSource.cpp │ ├── MPEG1or2AudioStreamFramer.cpp │ ├── MPEG1or2Demux.cpp │ ├── MPEG1or2DemuxedElementaryStream.cpp │ ├── MPEG1or2DemuxedServerMediaSubsession.cpp │ ├── MPEG1or2FileServerDemux.cpp │ ├── MPEG1or2VideoFileServerMediaSubsession.cpp │ ├── MPEG1or2VideoRTPSink.cpp │ ├── MPEG1or2VideoRTPSource.cpp │ ├── MPEG1or2VideoStreamDiscreteFramer.cpp │ ├── MPEG1or2VideoStreamFramer.cpp │ ├── MPEG2IndexFromTransportStream.cpp │ ├── MPEG2TransportFileServerMediaSubsession.cpp │ ├── MPEG2TransportStreamAccumulator.cpp │ ├── MPEG2TransportStreamFramer.cpp │ ├── MPEG2TransportStreamFromESSource.cpp │ ├── MPEG2TransportStreamFromPESSource.cpp │ ├── MPEG2TransportStreamIndexFile.cpp │ ├── MPEG2TransportStreamMultiplexor.cpp │ ├── MPEG2TransportStreamTrickModeFilter.cpp │ ├── MPEG2TransportUDPServerMediaSubsession.cpp │ ├── MPEG4ESVideoRTPSink.cpp │ ├── MPEG4ESVideoRTPSource.cpp │ ├── MPEG4GenericRTPSink.cpp │ ├── MPEG4GenericRTPSource.cpp │ ├── MPEG4LATMAudioRTPSink.cpp │ ├── MPEG4LATMAudioRTPSource.cpp │ ├── MPEG4VideoFileServerMediaSubsession.cpp │ ├── MPEG4VideoStreamDiscreteFramer.cpp │ ├── MPEG4VideoStreamFramer.cpp │ ├── MPEGVideoStreamFramer.cpp │ ├── MPEGVideoStreamParser.cpp │ ├── MPEGVideoStreamParser.hh │ ├── Makefile.head │ ├── Makefile.tail │ ├── MatroskaDemuxedTrack.cpp │ ├── MatroskaDemuxedTrack.hh │ ├── MatroskaFile.cpp │ ├── MatroskaFileParser.cpp │ ├── MatroskaFileParser.hh │ ├── MatroskaFileServerDemux.cpp │ ├── MatroskaFileServerMediaSubsession.cpp │ ├── MatroskaFileServerMediaSubsession.hh │ ├── Media.cpp │ ├── MediaSession.cpp │ ├── MediaSink.cpp │ ├── MediaSource.cpp │ ├── MultiFramedRTPSink.cpp │ ├── MultiFramedRTPSource.cpp │ ├── OggDemuxedTrack.cpp │ ├── OggDemuxedTrack.hh │ ├── OggFile.cpp │ ├── OggFileParser.cpp │ ├── OggFileParser.hh │ ├── OggFileServerDemux.cpp │ ├── OggFileServerMediaSubsession.cpp │ ├── OggFileServerMediaSubsession.hh │ ├── OggFileSink.cpp │ ├── OnDemandServerMediaSubsession.cpp │ ├── OutputFile.cpp │ ├── PassiveServerMediaSubsession.cpp │ ├── ProxyServerMediaSession.cpp │ ├── QCELPAudioRTPSource.cpp │ ├── QuickTimeFileSink.cpp │ ├── QuickTimeGenericRTPSource.cpp │ ├── RTCP.cpp │ ├── RTPInterface.cpp │ ├── RTPSink.cpp │ ├── RTPSource.cpp │ ├── RTSPClient.cpp │ ├── RTSPCommon.cpp │ ├── RTSPRegisterSender.cpp │ ├── RTSPServer.cpp │ ├── RTSPServerRegister.cpp │ ├── RTSPServerSupportingHTTPStreaming.cpp │ ├── SIPClient.cpp │ ├── ServerMediaSession.cpp │ ├── SimpleRTPSink.cpp │ ├── SimpleRTPSource.cpp │ ├── StreamParser.cpp │ ├── StreamParser.hh │ ├── StreamReplicator.cpp │ ├── T140TextRTPSink.cpp │ ├── TCPStreamSink.cpp │ ├── TextRTPSink.cpp │ ├── TheoraVideoRTPSink.cpp │ ├── TheoraVideoRTPSource.cpp │ ├── VP8VideoRTPSink.cpp │ ├── VP8VideoRTPSource.cpp │ ├── VP9VideoRTPSink.cpp │ ├── VP9VideoRTPSource.cpp │ ├── VideoRTPSink.cpp │ ├── VorbisAudioRTPSink.cpp │ ├── VorbisAudioRTPSource.cpp │ ├── WAVAudioFileServerMediaSubsession.cpp │ ├── WAVAudioFileSource.cpp │ ├── include │ │ ├── AC3AudioFileServerMediaSubsession.hh │ │ ├── AC3AudioRTPSink.hh │ │ ├── AC3AudioRTPSource.hh │ │ ├── AC3AudioStreamFramer.hh │ │ ├── ADTSAudioFileServerMediaSubsession.hh │ │ ├── ADTSAudioFileSource.hh │ │ ├── AMRAudioFileServerMediaSubsession.hh │ │ ├── AMRAudioFileSink.hh │ │ ├── AMRAudioFileSource.hh │ │ ├── AMRAudioRTPSink.hh │ │ ├── AMRAudioRTPSource.hh │ │ ├── AMRAudioSource.hh │ │ ├── AVIFileSink.hh │ │ ├── AudioInputDevice.hh │ │ ├── AudioRTPSink.hh │ │ ├── Base64.hh │ │ ├── BasicUDPSink.hh │ │ ├── BasicUDPSource.hh │ │ ├── BitVector.hh │ │ ├── ByteStreamFileSource.hh │ │ ├── ByteStreamMemoryBufferSource.hh │ │ ├── ByteStreamMultiFileSource.hh │ │ ├── DVVideoFileServerMediaSubsession.hh │ │ ├── DVVideoRTPSink.hh │ │ ├── DVVideoRTPSource.hh │ │ ├── DVVideoStreamFramer.hh │ │ ├── DeviceSource.hh │ │ ├── DigestAuthentication.hh │ │ ├── FileServerMediaSubsession.hh │ │ ├── FileSink.hh │ │ ├── FramedFileSource.hh │ │ ├── FramedFilter.hh │ │ ├── FramedSource.hh │ │ ├── GSMAudioRTPSink.hh │ │ ├── GenericMediaServer.hh │ │ ├── GenericMediaServer_20191012.hh │ │ ├── H261VideoRTPSource.hh │ │ ├── H263plusVideoFileServerMediaSubsession.hh │ │ ├── H263plusVideoRTPSink.hh │ │ ├── H263plusVideoRTPSource.hh │ │ ├── H263plusVideoStreamFramer.hh │ │ ├── H264VideoFileServerMediaSubsession.hh │ │ ├── H264VideoFileSink.hh │ │ ├── H264VideoRTPSink.hh │ │ ├── H264VideoRTPSource.hh │ │ ├── H264VideoStreamDiscreteFramer.hh │ │ ├── H264VideoStreamFramer.hh │ │ ├── H264or5VideoFileSink.hh │ │ ├── H264or5VideoRTPSink.hh │ │ ├── H264or5VideoStreamDiscreteFramer.hh │ │ ├── H264or5VideoStreamFramer.hh │ │ ├── H265VideoFileServerMediaSubsession.hh │ │ ├── H265VideoFileSink.hh │ │ ├── H265VideoRTPSink.hh │ │ ├── H265VideoRTPSource.hh │ │ ├── H265VideoStreamDiscreteFramer.hh │ │ ├── H265VideoStreamFramer.hh │ │ ├── InputFile.hh │ │ ├── JPEGVideoRTPSink.hh │ │ ├── JPEGVideoRTPSource.hh │ │ ├── JPEGVideoSource.hh │ │ ├── Locale.hh │ │ ├── MP3ADU.hh │ │ ├── MP3ADURTPSink.hh │ │ ├── MP3ADURTPSource.hh │ │ ├── MP3ADUTranscoder.hh │ │ ├── MP3ADUinterleaving.hh │ │ ├── MP3AudioFileServerMediaSubsession.hh │ │ ├── MP3FileSource.hh │ │ ├── MP3Transcoder.hh │ │ ├── MPEG1or2AudioRTPSink.hh │ │ ├── MPEG1or2AudioRTPSource.hh │ │ ├── MPEG1or2AudioStreamFramer.hh │ │ ├── MPEG1or2Demux.hh │ │ ├── MPEG1or2DemuxedElementaryStream.hh │ │ ├── MPEG1or2DemuxedServerMediaSubsession.hh │ │ ├── MPEG1or2FileServerDemux.hh │ │ ├── MPEG1or2VideoFileServerMediaSubsession.hh │ │ ├── MPEG1or2VideoRTPSink.hh │ │ ├── MPEG1or2VideoRTPSource.hh │ │ ├── MPEG1or2VideoStreamDiscreteFramer.hh │ │ ├── MPEG1or2VideoStreamFramer.hh │ │ ├── MPEG2IndexFromTransportStream.hh │ │ ├── MPEG2TransportFileServerMediaSubsession.hh │ │ ├── MPEG2TransportStreamAccumulator.hh │ │ ├── MPEG2TransportStreamFramer.hh │ │ ├── MPEG2TransportStreamFromESSource.hh │ │ ├── MPEG2TransportStreamFromPESSource.hh │ │ ├── MPEG2TransportStreamIndexFile.hh │ │ ├── MPEG2TransportStreamMultiplexor.hh │ │ ├── MPEG2TransportStreamTrickModeFilter.hh │ │ ├── MPEG2TransportUDPServerMediaSubsession.hh │ │ ├── MPEG4ESVideoRTPSink.hh │ │ ├── MPEG4ESVideoRTPSource.hh │ │ ├── MPEG4GenericRTPSink.hh │ │ ├── MPEG4GenericRTPSource.hh │ │ ├── MPEG4LATMAudioRTPSink.hh │ │ ├── MPEG4LATMAudioRTPSource.hh │ │ ├── MPEG4VideoFileServerMediaSubsession.hh │ │ ├── MPEG4VideoStreamDiscreteFramer.hh │ │ ├── MPEG4VideoStreamFramer.hh │ │ ├── MPEGVideoStreamFramer.hh │ │ ├── MatroskaFile.hh │ │ ├── MatroskaFileServerDemux.hh │ │ ├── Media.hh │ │ ├── MediaSession.hh │ │ ├── MediaSink.hh │ │ ├── MediaSource.hh │ │ ├── MediaTranscodingTable.hh │ │ ├── MultiFramedRTPSink.hh │ │ ├── MultiFramedRTPSource.hh │ │ ├── OggFile.hh │ │ ├── OggFileServerDemux.hh │ │ ├── OggFileSink.hh │ │ ├── OnDemandServerMediaSubsession.hh │ │ ├── OutputFile.hh │ │ ├── PassiveServerMediaSubsession.hh │ │ ├── ProxyServerMediaSession.hh │ │ ├── ProxyServerMediaSession.hh.orig │ │ ├── QCELPAudioRTPSource.hh │ │ ├── QuickTimeFileSink.hh │ │ ├── QuickTimeGenericRTPSource.hh │ │ ├── RTCP.hh │ │ ├── RTPInterface.hh │ │ ├── RTPSink.hh │ │ ├── RTPSource.hh │ │ ├── RTSPClient.hh │ │ ├── RTSPCommon.hh │ │ ├── RTSPRegisterSender.hh │ │ ├── RTSPServer.hh │ │ ├── RTSPServerSupportingHTTPStreaming.hh │ │ ├── SIPClient.hh │ │ ├── ServerMediaSession.hh │ │ ├── SimpleRTPSink.hh │ │ ├── SimpleRTPSource.hh │ │ ├── StreamReplicator.hh │ │ ├── T140TextRTPSink.hh │ │ ├── TCPStreamSink.hh │ │ ├── TextRTPSink.hh │ │ ├── TheoraVideoRTPSink.hh │ │ ├── TheoraVideoRTPSource.hh │ │ ├── VP8VideoRTPSink.hh │ │ ├── VP8VideoRTPSource.hh │ │ ├── VP9VideoRTPSink.hh │ │ ├── VP9VideoRTPSource.hh │ │ ├── VideoRTPSink.hh │ │ ├── VorbisAudioRTPSink.hh │ │ ├── VorbisAudioRTPSource.hh │ │ ├── WAVAudioFileServerMediaSubsession.hh │ │ ├── WAVAudioFileSource.hh │ │ ├── liveMedia.hh │ │ ├── liveMedia_version.hh │ │ ├── ourMD5.hh │ │ └── uLawAudioFilter.hh │ ├── ourMD5.cpp │ ├── rtcp_from_spec.c │ ├── rtcp_from_spec.h │ ├── stDjgzxL │ └── uLawAudioFilter.cpp ├── mediaServer │ ├── COPYING │ ├── COPYING.LESSER │ ├── DynamicRTSPServer.cpp │ ├── DynamicRTSPServer.hh │ ├── Makefile.head │ ├── Makefile.tail │ ├── live555MediaServer.cpp │ └── version.hh ├── proxyServer │ ├── COPYING │ ├── COPYING.LESSER │ ├── Makefile.head │ ├── Makefile.tail │ └── live555ProxyServer.cpp ├── testProgs │ ├── COPYING │ ├── COPYING.LESSER │ ├── MPEG2TransportStreamIndexer.cpp │ ├── Makefile.head │ ├── Makefile.tail │ ├── openRTSP.cpp │ ├── playCommon.cpp │ ├── playCommon.hh │ ├── playSIP.cpp │ ├── registerRTSPStream.cpp │ ├── sapWatch.cpp │ ├── testAMRAudioStreamer.cpp │ ├── testDVVideoStreamer.cpp │ ├── testGSMStreamer.cpp │ ├── testH264VideoStreamer.cpp │ ├── testH264VideoToTransportStream.cpp │ ├── testH265VideoStreamer.cpp │ ├── testH265VideoToTransportStream.cpp │ ├── testMKVStreamer.cpp │ ├── testMP3-using-ADUs.sdp │ ├── testMP3.sdp │ ├── testMP3Receiver.cpp │ ├── testMP3Streamer.cpp │ ├── testMPEG1or2AudioVideo.sdp │ ├── testMPEG1or2AudioVideoStreamer.cpp │ ├── testMPEG1or2ProgramToTransportStream.cpp │ ├── testMPEG1or2Splitter.cpp │ ├── testMPEG1or2Video.sdp │ ├── testMPEG1or2VideoReceiver.cpp │ ├── testMPEG1or2VideoStreamer.cpp │ ├── testMPEG2Transport.sdp │ ├── testMPEG2TransportReceiver.cpp │ ├── testMPEG2TransportStreamTrickPlay.cpp │ ├── testMPEG2TransportStreamer.cpp │ ├── testMPEG4VideoStreamer.cpp │ ├── testOggStreamer.cpp │ ├── testOnDemandRTSPServer.cpp │ ├── testRTSPClient.cpp │ ├── testRelay.cpp │ ├── testReplicator.cpp │ ├── testWAVAudioStreamer.cpp │ └── vobStreamer.cpp ├── win32config └── win32config.Borland ├── live_ipv4_ipv6.cpp ├── live_ipv4_ipv6.h ├── livebase64.cpp ├── livebase64.h ├── livebufferqueue.cpp ├── livebufferqueue.h ├── main.cpp ├── nbproject ├── Makefile-Debug.mk ├── Makefile-Release.mk ├── Makefile-himix200.mk ├── Makefile-hisiv500.mk ├── Makefile-impl.mk ├── Makefile-variables.mk ├── Package-Debug.bash ├── Package-Release.bash ├── Package-himix200.bash ├── Package-hisiv500.bash ├── configurations.xml ├── private │ ├── Makefile-variables.mk │ ├── c_standard_headers_indexer.c │ ├── configurations.xml │ ├── cpp_standard_headers_indexer.cpp │ ├── launcher.properties │ └── private.xml └── project.xml ├── osmutex.cpp ├── osmutex.h ├── osthread.cpp ├── osthread.h ├── rtsp over http.txt ├── sync_shm.cpp ├── sync_shm.h ├── trace.cpp ├── trace.h └── version.hh /.gitignore: -------------------------------------------------------------------------------- 1 | /ipch/* 2 | /x64/* 3 | *.sdf 4 | *.opensdf 5 | *.suo 6 | -------------------------------------------------------------------------------- /demo/EasyCommon/EasyTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyCommon/EasyTypes.h -------------------------------------------------------------------------------- /demo/EasyRTSPClient/EasyRTSPClientAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPClient/EasyRTSPClientAPI.h -------------------------------------------------------------------------------- /demo/EasyRTSPClient/Win32/libEasyRTSPClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPClient/Win32/libEasyRTSPClient.dll -------------------------------------------------------------------------------- /demo/EasyRTSPClient/Win32/libEasyRTSPClient.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPClient/Win32/libEasyRTSPClient.lib -------------------------------------------------------------------------------- /demo/EasyRTSPClient/Win64/libEasyRTSPClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPClient/Win64/libEasyRTSPClient.dll -------------------------------------------------------------------------------- /demo/EasyRTSPClient/Win64/libEasyRTSPClient.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPClient/Win64/libEasyRTSPClient.lib -------------------------------------------------------------------------------- /demo/EasyRTSPServer/EasyRtspServerAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPServer/EasyRtspServerAPI.h -------------------------------------------------------------------------------- /demo/EasyRTSPServer/Win32/libEasyRTSPServer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPServer/Win32/libEasyRTSPServer.dll -------------------------------------------------------------------------------- /demo/EasyRTSPServer/Win32/libEasyRTSPServer.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPServer/Win32/libEasyRTSPServer.lib -------------------------------------------------------------------------------- /demo/EasyRTSPServer/Win64/libEasyRTSPServer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPServer/Win64/libEasyRTSPServer.dll -------------------------------------------------------------------------------- /demo/EasyRTSPServer/Win64/libEasyRTSPServer.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyRTSPServer/Win64/libEasyRTSPServer.lib -------------------------------------------------------------------------------- /demo/EasyStreamingServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyStreamingServer.cpp -------------------------------------------------------------------------------- /demo/EasyStreamingServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/EasyStreamingServer.h -------------------------------------------------------------------------------- /demo/EasyStreamingServer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.34931.43 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EasyStreamingServer", "EasyStreamingServer.vcxproj", "{7306A01E-C67D-4A07-A9EB-2571A0FF84BD}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x64.ActiveCfg = Debug|x64 17 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x64.Build.0 = Debug|x64 18 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x86.ActiveCfg = Debug|Win32 19 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x86.Build.0 = Debug|Win32 20 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x64.ActiveCfg = Release|x64 21 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x64.Build.0 = Release|x64 22 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x86.ActiveCfg = Release|Win32 23 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {995033F8-5A31-4385-A573-278BFC5BFBF6} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /demo/EasyStreamingServer.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 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | Header Files 34 | 35 | 36 | -------------------------------------------------------------------------------- /demo/EasyStreamingServer.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- 1 | ## 示例说明 2 | 3 | 本示例的主要作用就是通过EasyRTSPClient将外部的RTSP流取到EasyRTSPServer调用程序本地,再通过EasyRTSPServer的接口,将音视频数据推送进入EasyRTSPServer内部,再由EasyRTSPServer进行多路的分发: 4 | 5 | 6 | > IPC --RTSP拉流--> 取得音视频AVFrame --> EasyRtspServer_PushFrame(AVFrame) --> RTSPServer分发 7 | 8 | 9 | 10 | 假设,本示例运行在IP:192.168.1.99上,EasyRtspServer_Startup监听的端口为554,示例启动后,比如我们要拉取并进行分发的IPC的RTSP地址是:rtsp://admin:12345@192.168.1.100/ch1,那我们只需要在VLC中请求输入: 11 | 12 | > rtsp://192.168.1.99:554/rtsp://admin:12345@192.168.1.100/ch1 13 | 14 | EasyRTSPServer就启动了对IPC的RTSP的实时分发,支持多次重复请求,一路进多路出! 15 | -------------------------------------------------------------------------------- /demo/getsps.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/demo/getsps.cpp -------------------------------------------------------------------------------- /demo/getsps.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __GET_SPS_H__ 3 | #define __GET_SPS_H__ 4 | 5 | 6 | int GetH265VPSandSPSandPPS(char *pbuf, int bufsize, char *_vps, int *_vpslen, char *_sps, int *_spslen, char *_pps, int *_ppslen); 7 | int GetH264SPSandPPS(char *pbuf, int bufsize, char *_sps, int *_spslen, char *_pps, int *_ppslen); 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /demo/main.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "EasyStreamingServer.h" 3 | #include 4 | #ifndef _WIN32 5 | #include 6 | #endif 7 | 8 | 9 | 10 | int main() 11 | { 12 | #ifndef _WIN32 13 | signal(SIGPIPE, SIG_IGN); 14 | #endif 15 | 16 | EasyStreamingServer streamingServer; 17 | 18 | streamingServer.Startup(554); 19 | 20 | printf("############### Press enter to exit ############\n"); 21 | getchar(); 22 | 23 | streamingServer.Shutdown(); 24 | 25 | 26 | return 0; 27 | } 28 | -------------------------------------------------------------------------------- /demo/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 11 | CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux 12 | CND_ARTIFACT_NAME_Debug=easystreamingserver 13 | CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/easystreamingserver 14 | CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package 15 | CND_PACKAGE_NAME_Debug=easystreamingserver.tar 16 | CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/easystreamingserver.tar 17 | # Release configuration 18 | CND_PLATFORM_Release=GNU-Linux 19 | CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux 20 | CND_ARTIFACT_NAME_Release=easystreamingserver 21 | CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/easystreamingserver 22 | CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package 23 | CND_PACKAGE_NAME_Release=easystreamingserver.tar 24 | CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/easystreamingserver.tar 25 | # 26 | # include compiler specific variables 27 | # 28 | # dmake command 29 | ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ 30 | (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) 31 | # 32 | # gmake command 33 | .PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) 34 | # 35 | include nbproject/private/Makefile-variables.mk 36 | -------------------------------------------------------------------------------- /demo/nbproject/Package-Release.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=GNU-Linux 10 | CND_CONF=Release 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/easystreamingserver 17 | OUTPUT_BASENAME=easystreamingserver 18 | PACKAGE_TOP_DIR=easystreamingserver/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/easystreamingserver/bin" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/easystreamingserver.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/easystreamingserver.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /demo/nbproject/private/Makefile-variables.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated - do not edit! 3 | # 4 | # NOCDDL 5 | # 6 | # Debug configuration 7 | # Release configuration 8 | -------------------------------------------------------------------------------- /demo/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 6 | 7 | 8 | -------------------------------------------------------------------------------- /demo/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.cnd.makeproject 4 | 5 | 6 | EasyStreamingServer 7 | 8 | cpp 9 | h 10 | UTF-8 11 | 12 | 13 | 14 | 15 | Debug 16 | 1 17 | 18 | 19 | Release 20 | 1 21 | 22 | 23 | 24 | false 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /simulator/Bin/Linux_64bits/easy.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Linux_64bits/easy.mp4 -------------------------------------------------------------------------------- /simulator/Bin/Linux_64bits/easyrtspserver_demo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Linux_64bits/easyrtspserver_demo -------------------------------------------------------------------------------- /simulator/Bin/Win64/EasyRTSPServer_Demo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/EasyRTSPServer_Demo.exe -------------------------------------------------------------------------------- /simulator/Bin/Win64/avcodec-58.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/avcodec-58.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/avdevice-58.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/avdevice-58.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/avfilter-7.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/avfilter-7.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/avformat-58.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/avformat-58.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/avutil-56.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/avutil-56.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/easy.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/easy.mp4 -------------------------------------------------------------------------------- /simulator/Bin/Win64/libEasyRTSPServer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/libEasyRTSPServer.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/libEasyStreamClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/libEasyStreamClient.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/postproc-55.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/postproc-55.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/swresample-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/swresample-3.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/swscale-5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/swscale-5.dll -------------------------------------------------------------------------------- /simulator/Bin/Win64/vcruntime140_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Bin/Win64/vcruntime140_1.dll -------------------------------------------------------------------------------- /simulator/README.md: -------------------------------------------------------------------------------- 1 | # IPC RTSP模拟器(RTSP Simulator)运行说明 2 | 3 | ## Win 4 | 运行EasyRTSPServer_Demo.exe 5 | 6 | 7 | ## Linux 8 | 运行easyrtspserver_demo 9 | 10 | 11 | # RTSP拉流 12 | ## rtsp源地址为摄像机或NVR的rtsp地址. 比如rtsp://192.168.1.100/ch1 13 | rtsp://192.168.1.160:554/rtsp://192.168.1.100/ch1 14 | ## rtsp源需带用户名密码的地址如下(用户名: admin 密码:12345): 15 | rtsp://192.168.1.160:554/rtsp://admin:12345@192.168.1.100/ch1 16 | ## 文件视频源是easy.mp4: 17 | rtsp://192.168.1.160:554/easy.mp4 18 | 19 | ## 说明 20 | 示例代码中支持H264/H265; 21 | 用户验证设置为不验证; 22 | -------------------------------------------------------------------------------- /simulator/Src/.dep.inc: -------------------------------------------------------------------------------- 1 | # This code depends on make tool being used 2 | DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES})) 3 | ifneq (${DEPFILES},) 4 | include ${DEPFILES} 5 | endif 6 | -------------------------------------------------------------------------------- /simulator/Src/EasyCommon/EasyTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyCommon/EasyTypes.h -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer/EasyRtspServerAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyRTSPServer/EasyRtspServerAPI.h -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer/Win64/libEasyRTSPServer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyRTSPServer/Win64/libEasyRTSPServer.dll -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer/Win64/libEasyRTSPServer.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyRTSPServer/Win64/libEasyRTSPServer.lib -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer_Demo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyRTSPServer_Demo.cpp -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer_Demo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyRTSPServer_Demo.h -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer_Demo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EasyRTSPServer_Demo", "EasyRTSPServer_Demo.vcxproj", "{7306A01E-C67D-4A07-A9EB-2571A0FF84BD}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|Win32.Build.0 = Debug|Win32 16 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x64.ActiveCfg = Debug|x64 17 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Debug|x64.Build.0 = Debug|x64 18 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|Win32.ActiveCfg = Release|Win32 19 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|Win32.Build.0 = Release|Win32 20 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x64.ActiveCfg = Release|x64 21 | {7306A01E-C67D-4A07-A9EB-2571A0FF84BD}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer_Demo.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 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | Header Files 34 | 35 | 36 | -------------------------------------------------------------------------------- /simulator/Src/EasyRTSPServer_Demo.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ..\Bin\Win32 5 | WindowsLocalDebugger 6 | 7 | -------------------------------------------------------------------------------- /simulator/Src/EasyStreamClient/EasyStreamClientAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyStreamClient/EasyStreamClientAPI.h -------------------------------------------------------------------------------- /simulator/Src/EasyStreamClient/Win64/libEasyStreamClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyStreamClient/Win64/libEasyStreamClient.dll -------------------------------------------------------------------------------- /simulator/Src/EasyStreamClient/Win64/libEasyStreamClient.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/EasyStreamClient/Win64/libEasyStreamClient.lib -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libavcodec.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libavcodec.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libavfilter.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libavfilter.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libavformat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libavformat.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libavutil.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libavutil.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libbz2.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libbz2.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libeasyrtmp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libeasyrtmp.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libeasyrtspserver.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libeasyrtspserver.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libeasystreamclient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libeasystreamclient.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libfreetype.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libfreetype.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libpostproc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libpostproc.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libswresample.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libswresample.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libswscale.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libswscale.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libx264.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libx264.a -------------------------------------------------------------------------------- /simulator/Src/Lib/x64/libz.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/Lib/x64/libz.a -------------------------------------------------------------------------------- /simulator/Src/getsps.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/simulator/Src/getsps.cpp -------------------------------------------------------------------------------- /simulator/Src/getsps.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __GET_SPS_H__ 3 | #define __GET_SPS_H__ 4 | 5 | 6 | int GetH265VPSandSPSandPPS(char *pbuf, int bufsize, char *_vps, int *_vpslen, char *_sps, int *_spslen, char *_pps, int *_ppslen); 7 | //int GetH264SPSandPPS(char *pbuf, int bufsize, char *_sps, int *_spslen, char *_pps, int *_ppslen); 8 | int GetH264SPSandPPS(char* pbuf, int bufsize, char* _sps, int* _spslen, char* _pps, int* _ppslen, char* _sei, int* _seilen); 9 | 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /simulator/Src/main.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "EasyRTSPServer_Demo.h" 3 | #include 4 | #ifndef _WIN32 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | #endif 11 | 12 | int streamingServerStop = 0; 13 | 14 | void exit_cleanly(int flag) 15 | { 16 | streamingServerStop = 1; 17 | printf("======Receive exit signal, program exit...=======\n"); 18 | } 19 | 20 | 21 | int main() 22 | { 23 | #ifndef _WIN32 24 | signal(SIGPIPE, SIG_IGN); 25 | signal(SIGTERM, exit_cleanly); 26 | signal(SIGINT, exit_cleanly); 27 | signal(SIGQUIT, exit_cleanly); 28 | #endif 29 | 30 | EasyStreamingServer streamingServer; 31 | 32 | streamingServer.Startup(554); 33 | 34 | //getchar(); 35 | 36 | printf("############### Press enter to exit ############\n"); 37 | while (1) 38 | { 39 | if (streamingServerStop == 0x01) 40 | { 41 | Sleep(2000); 42 | break; 43 | } 44 | Sleep(1000); 45 | } 46 | streamingServer.Shutdown(); 47 | 48 | 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /simulator/Src/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 11 | CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux 12 | CND_ARTIFACT_NAME_Debug=easyrtspserver_demo 13 | CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/easyrtspserver_demo 14 | CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package 15 | CND_PACKAGE_NAME_Debug=easyrtspserverdemo.tar 16 | CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/easyrtspserverdemo.tar 17 | # Release configuration 18 | CND_PLATFORM_Release=GNU-Linux 19 | CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux 20 | CND_ARTIFACT_NAME_Release=easyrtspserver_demo 21 | CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/easyrtspserver_demo 22 | CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package 23 | CND_PACKAGE_NAME_Release=easyrtspserverdemo.tar 24 | CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/easyrtspserverdemo.tar 25 | # 26 | # include compiler specific variables 27 | # 28 | # dmake command 29 | ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ 30 | (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) 31 | # 32 | # gmake command 33 | .PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) 34 | # 35 | include nbproject/private/Makefile-variables.mk 36 | -------------------------------------------------------------------------------- /simulator/Src/nbproject/Package-Release.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=GNU-Linux 10 | CND_CONF=Release 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/easyrtspserver_demo 17 | OUTPUT_BASENAME=easyrtspserver_demo 18 | PACKAGE_TOP_DIR=easyrtspserverdemo/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/easyrtspserverdemo/bin" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/easyrtspserverdemo.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/easyrtspserverdemo.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /simulator/Src/nbproject/private/Makefile-variables.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated - do not edit! 3 | # 4 | # NOCDDL 5 | # 6 | # Debug configuration 7 | # Release configuration 8 | -------------------------------------------------------------------------------- /simulator/Src/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /simulator/Src/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.cnd.makeproject 4 | 5 | 6 | EasyRTSPServer_Demo 7 | 8 | cpp 9 | h 10 | UTF-8 11 | 12 | 13 | 14 | 15 | Debug 16 | 1 17 | 18 | 19 | Release 20 | 1 21 | 22 | 23 | 24 | false 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/BaseList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/BaseList.cpp -------------------------------------------------------------------------------- /src/BaseList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/BaseList.h -------------------------------------------------------------------------------- /src/BasicTaskSchedulerEpoll.h: -------------------------------------------------------------------------------- 1 | #ifndef _BASIC_TASK_SCHEDULER_EPOLL_HH 2 | #define _BASIC_TASK_SCHEDULER_EPOLL_HH 3 | 4 | #ifndef _BASIC_USAGE_ENVIRONMENT0_HH 5 | #include "BasicUsageEnvironment0.hh" 6 | #endif 7 | 8 | 9 | 10 | typedef struct __EPOLL_EVENT_T 11 | { 12 | int fd; 13 | int events; 14 | int status; 15 | long last_active; 16 | }EPOLL_EVENT_T; 17 | 18 | 19 | class BasicTaskSchedulerEpoll: public BasicTaskScheduler0 { 20 | public: 21 | static BasicTaskSchedulerEpoll* createNew(int id, int maxEventNum, unsigned maxSchedulerGranularity = 10000/*microseconds*/); 22 | virtual ~BasicTaskSchedulerEpoll(); 23 | 24 | 25 | virtual int SingleStep(unsigned maxDelayTime, int threadIdx, char *envirName); 26 | protected: 27 | BasicTaskSchedulerEpoll(int id, int maxEventNum, unsigned maxSchedulerGranularity); 28 | // called only by "createNew()" 29 | 30 | protected: 31 | // Redefined virtual functions: 32 | 33 | 34 | virtual int setBackgroundHandling(int socketNum, int conditionSet, BackgroundHandlerProc* handlerProc, void* clientData); 35 | virtual void moveSocketHandling(int oldSocketNum, int newSocketNum); 36 | 37 | int epoll_event_set(EPOLL_EVENT_T *ev, int fd, void *arg); 38 | int epoll_event_add(int epollFd, int events, EPOLL_EVENT_T *ev); 39 | int epoll_event_del(int epollFd, EPOLL_EVENT_T *ev); 40 | 41 | 42 | protected: 43 | // To implement background operations: 44 | int fEpollFd; 45 | int mEpollMaxEventNum; 46 | int mEpollEventNum; 47 | 48 | EPOLL_EVENT_T *pEpoolEvents; 49 | }; 50 | 51 | 52 | #endif -------------------------------------------------------------------------------- /src/CreateDump.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/CreateDump.cpp -------------------------------------------------------------------------------- /src/CreateDump.h: -------------------------------------------------------------------------------- 1 | #ifndef __CREATE_DUMP_H__ 2 | #define __CREATE_DUMP_H__ 3 | 4 | #ifdef _WIN32 5 | #include 6 | #include 7 | #pragma comment(lib,"DbgHelp.lib") 8 | 9 | 10 | 11 | 12 | void CreateDumpFile(LPCSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException); 13 | 14 | 15 | 16 | 17 | 18 | 19 | #endif 20 | 21 | 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/EasyRtspServerAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/EasyRtspServerAPI.h -------------------------------------------------------------------------------- /src/EasyTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/EasyTypes.h -------------------------------------------------------------------------------- /src/LiveAudioServerMediaSubsession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveAudioServerMediaSubsession.cpp -------------------------------------------------------------------------------- /src/LiveAudioServerMediaSubsession.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef _LIVE_AUDIO_SERVER_MEDIA_SUBSESSION_H 4 | #define _LIVE_AUDIO_SERVER_MEDIA_SUBSESSION_H 5 | 6 | #include "LiveServerMediaSubsession.h" 7 | #include "RtspTypes.h" 8 | 9 | class LiveAudioServerMediaSubsession: public LiveServerMediaSubsession 10 | { 11 | public: 12 | static LiveAudioServerMediaSubsession* createNew(UsageEnvironment& env, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 13 | 14 | void setDoneFlag() { fDoneFlag = ~0; } 15 | void checkForAuxSDPLine1(); 16 | 17 | private: 18 | LiveAudioServerMediaSubsession(UsageEnvironment& env, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 19 | // called only by createNew() 20 | virtual ~LiveAudioServerMediaSubsession(); 21 | 22 | private: // redefined virtual functions 23 | //virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource); 24 | virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate); 25 | virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource); 26 | 27 | private: 28 | char fDoneFlag; // used when setting up 'SDPlines' 29 | RTPSink* fDummyRTPSink; // ditto 30 | 31 | unsigned fSamplingFrequency; 32 | unsigned fNumChannels; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/LiveH264VideoServerMediaSubsession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveH264VideoServerMediaSubsession.cpp -------------------------------------------------------------------------------- /src/LiveH264VideoServerMediaSubsession.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveH264VideoServerMediaSubsession.h -------------------------------------------------------------------------------- /src/LiveH265VideoServerMediaSubsession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveH265VideoServerMediaSubsession.cpp -------------------------------------------------------------------------------- /src/LiveH265VideoServerMediaSubsession.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveH265VideoServerMediaSubsession.h -------------------------------------------------------------------------------- /src/LiveJPEGStreamSource.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __LIVE_JPEG_STREAM_SOURCE 3 | #define __LIVE_JPEG_STREAM_SOURCE 4 | 5 | 6 | #ifndef _JPEG_VIDEO_SOURCE_HH 7 | #include 8 | #endif 9 | 10 | #include "LiveSource.h" 11 | 12 | class LiveJPEGStreamSource: public JPEGVideoSource { 13 | public: 14 | static LiveJPEGStreamSource* createNew(FramedSource* inputSource); 15 | 16 | private: 17 | LiveJPEGStreamSource(FramedSource* inputSource); 18 | // called only by createNew() 19 | 20 | virtual ~LiveJPEGStreamSource(); 21 | 22 | private: // redefined virtual functions 23 | virtual void doGetNextFrame(); 24 | 25 | virtual u_int8_t type(); 26 | virtual u_int8_t qFactor(); 27 | virtual u_int8_t width(); 28 | virtual u_int8_t height(); 29 | virtual u_int8_t const* quantizationTables(u_int8_t& precision, 30 | u_int16_t& length); 31 | private: 32 | static void afterGettingFrame(void* clientData, unsigned frameSize, 33 | unsigned numTruncatedBytes, 34 | struct timeval presentationTime, 35 | unsigned durationInMicroseconds); 36 | void afterGettingFrame1(unsigned frameSize, unsigned numTruncatedBytes, 37 | struct timeval presentationTime, 38 | unsigned durationInMicroseconds); 39 | 40 | private: 41 | FramedSource* fSource; 42 | u_int8_t fLastWidth, fLastHeight; // actual dimensions /8 43 | u_int8_t fLastQuantizationTable[256];//128]; 44 | u_int16_t fLastQuantizationTableSize; 45 | unsigned char fBuffer[VIDEO_MAX_FRAME_SIZE]; 46 | }; 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/LiveJPEGVideoServerMediaSubsession.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef _LIVE_JPEG_VIDEO_SERVER_MEDIA_SUBSESSION_H 4 | #define _LIVE_JPEG_VIDEO_SERVER_MEDIA_SUBSESSION_H 5 | 6 | #include "LiveServerMediaSubsession.h" 7 | #include "RtspTypes.h" 8 | 9 | class LiveJPEGVideoServerMediaSubsession: public LiveServerMediaSubsession { 10 | public: 11 | static LiveJPEGVideoServerMediaSubsession* createNew(UsageEnvironment& env, unsigned estimatedBitrate, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 12 | 13 | void setDoneFlag() { fDoneFlag = ~0; } 14 | //void checkForAuxSDPLine1(); 15 | 16 | private: 17 | LiveJPEGVideoServerMediaSubsession(UsageEnvironment& env, unsigned estimatedBitrate, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 18 | // called only by createNew() 19 | virtual ~LiveJPEGVideoServerMediaSubsession(); 20 | 21 | private: // redefined virtual functions 22 | //virtual char const* getAuxSDPLine(RTPSink* rtpSink, 23 | // FramedSource* inputSource); 24 | virtual FramedSource* createNewStreamSource(unsigned clientSessionId, 25 | unsigned& estBitrate); 26 | virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, 27 | unsigned char rtpPayloadTypeIfDynamic, 28 | FramedSource* inputSource); 29 | 30 | private: 31 | char fDoneFlag; // used when setting up 'SDPlines' 32 | RTPSink* fDummyRTPSink; // ditto 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/LiveMetadataServerMediaSubsession.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef _LIVE_METADATA_SERVER_MEDIA_SUBSESSION_H 4 | #define _LIVE_METADATA_SERVER_MEDIA_SUBSESSION_H 5 | 6 | #include "LiveServerMediaSubsession.h" 7 | #include "RtspTypes.h" 8 | 9 | class LiveMetadataServerMediaSubsession: public LiveServerMediaSubsession 10 | { 11 | public: 12 | static LiveMetadataServerMediaSubsession* createNew(UsageEnvironment& env, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 13 | 14 | void setDoneFlag() { fDoneFlag = ~0; } 15 | void checkForAuxSDPLine1(); 16 | 17 | private: 18 | LiveMetadataServerMediaSubsession(UsageEnvironment& env, RTSP_MEDIA_INFO_T *pMediaInfo, LiveSource *liveSource, char *streamName, char *mediaTypeName, Boolean reuseFirstSource, portNumBits defaultPort); 19 | // called only by createNew() 20 | virtual ~LiveMetadataServerMediaSubsession(); 21 | 22 | private: // redefined virtual functions 23 | //virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource); 24 | virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate); 25 | virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource); 26 | 27 | private: 28 | char fDoneFlag; // used when setting up 'SDPlines' 29 | RTPSink* fDummyRTPSink; // ditto 30 | 31 | unsigned fSamplingFrequency; 32 | unsigned fNumChannels; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/LiveRtspServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveRtspServer.cpp -------------------------------------------------------------------------------- /src/LiveRtspServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveRtspServer.h -------------------------------------------------------------------------------- /src/LiveServerMediaSession.h: -------------------------------------------------------------------------------- 1 | #ifndef _LIVE_SERVER_MEDIA_SESSION_H 2 | #define _LIVE_SERVER_MEDIA_SESSION_H 3 | 4 | #include 5 | 6 | 7 | class LiveServerMediaSession: public ServerMediaSession 8 | { 9 | public: 10 | static LiveServerMediaSession* createNew(UsageEnvironment& env, 11 | char const* streamName = NULL, 12 | char const* info = NULL, 13 | char const* description = NULL, 14 | Boolean isSSM = False, 15 | char const* miscSDPLines = NULL, 16 | void *liveChannel=NULL, void **callback=NULL, void *userptr=NULL); 17 | 18 | protected: // we're a virtual base class 19 | LiveServerMediaSession(UsageEnvironment& env, 20 | char const* streamName = NULL, 21 | char const* info = NULL, 22 | char const* description = NULL, 23 | Boolean isSSM = False, 24 | char const* miscSDPLines = NULL, 25 | void *liveChannel=NULL, void **callback=NULL, void *userptr=NULL); 26 | virtual ~LiveServerMediaSession(); 27 | 28 | 29 | void *channelPtr; 30 | void **callbackPtr; 31 | void *userPtr; 32 | }; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/LiveServerMediaSubsession.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveServerMediaSubsession.h -------------------------------------------------------------------------------- /src/LiveSource.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveSource.cpp -------------------------------------------------------------------------------- /src/LiveSource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/LiveSource.h -------------------------------------------------------------------------------- /src/MJPEGVideoSource.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/MJPEGVideoSource.cpp -------------------------------------------------------------------------------- /src/RtspClientList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "libRTSPServerAPI.h" 4 | #include "BaseList.h" 5 | 6 | class RtspClientList : public BaseList 7 | { 8 | public: 9 | RtspClientList(void); 10 | ~RtspClientList(void); 11 | 12 | 13 | //int Add(SIP_DEVICE_INFO_CONTEXT *pSipDeviceInfoContext); 14 | int Update(RTSP_CLIENT_INFO_T *pClient); 15 | int Del(char *cameraIndexCode); 16 | int Find(char *cameraIndexCode, RTSP_CLIENT_INFO_T **pClient); 17 | 18 | int DelNode(void *userPtr); 19 | 20 | 21 | protected: 22 | }; 23 | 24 | -------------------------------------------------------------------------------- /src/RtspTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/RtspTypes.h -------------------------------------------------------------------------------- /src/TerminalCode.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/TerminalCode.h -------------------------------------------------------------------------------- /src/aes256.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/aes256.h -------------------------------------------------------------------------------- /src/libEasyRTSPServer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRTSPServer", "libRTSPServer.vcxproj", "{D04A12D5-B250-4096-9FC0-44FD1E19ABF6}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Debug|Win32.Build.0 = Debug|Win32 16 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Debug|x64.ActiveCfg = Debug|x64 17 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Debug|x64.Build.0 = Debug|x64 18 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Release|Win32.ActiveCfg = Release|Win32 19 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Release|Win32.Build.0 = Release|Win32 20 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Release|x64.ActiveCfg = Release|x64 21 | {D04A12D5-B250-4096-9FC0-44FD1E19ABF6}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /src/libRTSPServer.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/libRTSPServerAPI.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/libRTSPServerAPI.cpp -------------------------------------------------------------------------------- /src/libRTSPServerAPI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/libRTSPServerAPI.h -------------------------------------------------------------------------------- /src/live/#config.macosx#: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. $(EXTRA_LDFLAGS) -DBSD=1 -O -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -DTIME_BASE=in 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = libtool -s -o 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/BasicUsageEnvironment/BasicTaskScheduler.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/BasicUsageEnvironment/BasicTaskScheduler.cpp -------------------------------------------------------------------------------- /src/live/BasicUsageEnvironment/BasicTaskScheduler0.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/BasicUsageEnvironment/BasicTaskScheduler0.cpp -------------------------------------------------------------------------------- /src/live/BasicUsageEnvironment/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -Iinclude -I../UsageEnvironment/include -I../groupsock/include 2 | PREFIX = /usr/local 3 | LIBDIR = $(PREFIX)/lib 4 | ##### Change the following for your environment: 5 | -------------------------------------------------------------------------------- /src/live/BasicUsageEnvironment/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | NAME = libBasicUsageEnvironment 4 | LIB_FILE = $(NAME).$(LIB_SUFFIX) 5 | ALL = $(LIB_FILE) 6 | all: $(ALL) 7 | 8 | OBJS = BasicUsageEnvironment0.$(OBJ) BasicUsageEnvironment.$(OBJ) \ 9 | BasicTaskScheduler0.$(OBJ) BasicTaskScheduler.$(OBJ) \ 10 | DelayQueue.$(OBJ) BasicHashTable.$(OBJ) 11 | 12 | libBasicUsageEnvironment.$(LIB_SUFFIX): $(OBJS) 13 | $(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \ 14 | $(OBJS) 15 | 16 | .$(C).$(OBJ): 17 | $(C_COMPILER) -c $(C_FLAGS) $< 18 | 19 | .$(CPP).$(OBJ): 20 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 21 | 22 | BasicUsageEnvironment0.$(CPP): include/BasicUsageEnvironment0.hh 23 | include/BasicUsageEnvironment0.hh: include/BasicUsageEnvironment_version.hh include/DelayQueue.hh 24 | BasicUsageEnvironment.$(CPP): include/BasicUsageEnvironment.hh 25 | include/BasicUsageEnvironment.hh: include/BasicUsageEnvironment0.hh 26 | BasicTaskScheduler0.$(CPP): include/BasicUsageEnvironment0.hh include/HandlerSet.hh 27 | BasicTaskScheduler.$(CPP): include/BasicUsageEnvironment.hh include/HandlerSet.hh 28 | DelayQueue.$(CPP): include/DelayQueue.hh 29 | BasicHashTable.$(CPP): include/BasicHashTable.hh 30 | 31 | clean: 32 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 33 | 34 | install: install1 $(INSTALL2) 35 | install1: libBasicUsageEnvironment.$(LIB_SUFFIX) 36 | install -d $(DESTDIR)$(PREFIX)/include/BasicUsageEnvironment $(DESTDIR)$(LIBDIR) 37 | install -m 644 include/*.hh $(DESTDIR)$(PREFIX)/include/BasicUsageEnvironment 38 | install -m 644 libBasicUsageEnvironment.$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR) 39 | install_shared_libraries: libBasicUsageEnvironment.$(LIB_SUFFIX) 40 | ln -fs $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).$(SHORT_LIB_SUFFIX) 41 | ln -fs $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).so 42 | 43 | ##### Any additional, platform-specific rules come here: 44 | -------------------------------------------------------------------------------- /src/live/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "BasicUsageEnvironment" library 2 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _BASICUSAGEENVIRONMENT_VERSION_HH 5 | #define _BASICUSAGEENVIRONMENT_VERSION_HH 6 | 7 | #define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_STRING "2018.02.18" 8 | #define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_INT 1518912000 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/live/Makefile.head: -------------------------------------------------------------------------------- 1 | ##### Change the following for your environment: 2 | -------------------------------------------------------------------------------- /src/live/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | LIVEMEDIA_DIR = liveMedia 4 | GROUPSOCK_DIR = groupsock 5 | USAGE_ENVIRONMENT_DIR = UsageEnvironment 6 | BASIC_USAGE_ENVIRONMENT_DIR = BasicUsageEnvironment 7 | 8 | TESTPROGS_DIR = testProgs 9 | 10 | MEDIA_SERVER_DIR = mediaServer 11 | 12 | PROXY_SERVER_DIR = proxyServer 13 | 14 | all: 15 | cd $(LIVEMEDIA_DIR) ; $(MAKE) 16 | cd $(GROUPSOCK_DIR) ; $(MAKE) 17 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) 18 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) 19 | cd $(TESTPROGS_DIR) ; $(MAKE) 20 | cd $(MEDIA_SERVER_DIR) ; $(MAKE) 21 | cd $(PROXY_SERVER_DIR) ; $(MAKE) 22 | @echo 23 | @echo "For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html" 24 | 25 | install: 26 | cd $(LIVEMEDIA_DIR) ; $(MAKE) install 27 | cd $(GROUPSOCK_DIR) ; $(MAKE) install 28 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) install 29 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) install 30 | cd $(TESTPROGS_DIR) ; $(MAKE) install 31 | cd $(MEDIA_SERVER_DIR) ; $(MAKE) install 32 | cd $(PROXY_SERVER_DIR) ; $(MAKE) install 33 | 34 | clean: 35 | cd $(LIVEMEDIA_DIR) ; $(MAKE) clean 36 | cd $(GROUPSOCK_DIR) ; $(MAKE) clean 37 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 38 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 39 | cd $(TESTPROGS_DIR) ; $(MAKE) clean 40 | cd $(MEDIA_SERVER_DIR) ; $(MAKE) clean 41 | cd $(PROXY_SERVER_DIR) ; $(MAKE) clean 42 | 43 | distclean: clean 44 | -rm -f $(LIVEMEDIA_DIR)/Makefile $(GROUPSOCK_DIR)/Makefile \ 45 | $(USAGE_ENVIRONMENT_DIR)/Makefile $(BASIC_USAGE_ENVIRONMENT_DIR)/Makefile \ 46 | $(TESTPROGS_DIR)/Makefile $(MEDIA_SERVER_DIR)/Makefile \ 47 | $(PROXY_SERVER_DIR)/Makefile Makefile 48 | -------------------------------------------------------------------------------- /src/live/README: -------------------------------------------------------------------------------- 1 | For documentation and instructions for building this software, 2 | see 3 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/HashTable.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 17 | // Generic Hash Table 18 | // Implementation 19 | 20 | #include "HashTable.hh" 21 | 22 | HashTable::HashTable() { 23 | } 24 | 25 | HashTable::~HashTable() { 26 | } 27 | 28 | HashTable::Iterator::Iterator() { 29 | } 30 | 31 | HashTable::Iterator::~Iterator() {} 32 | 33 | void* HashTable::RemoveNext() { 34 | Iterator* iter = Iterator::create(*this); 35 | char const* key; 36 | void* removedValue = iter->next(key); 37 | if (removedValue != 0) Remove(key); 38 | 39 | delete iter; 40 | return removedValue; 41 | } 42 | 43 | void* HashTable::getFirst() { 44 | Iterator* iter = Iterator::create(*this); 45 | char const* key; 46 | void* firstValue = iter->next(key); 47 | 48 | delete iter; 49 | return firstValue; 50 | } 51 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -Iinclude -I../groupsock/include 2 | PREFIX = /usr/local 3 | LIBDIR = $(PREFIX)/lib 4 | ##### Change the following for your environment: 5 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | NAME = libUsageEnvironment 4 | USAGE_ENVIRONMENT_LIB = $(NAME).$(LIB_SUFFIX) 5 | ALL = $(USAGE_ENVIRONMENT_LIB) 6 | all: $(ALL) 7 | 8 | OBJS = UsageEnvironment.$(OBJ) HashTable.$(OBJ) strDup.$(OBJ) 9 | 10 | $(USAGE_ENVIRONMENT_LIB): $(OBJS) 11 | $(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) $(OBJS) 12 | 13 | .$(C).$(OBJ): 14 | $(C_COMPILER) -c $(C_FLAGS) $< 15 | 16 | .$(CPP).$(OBJ): 17 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 18 | 19 | UsageEnvironment.$(CPP): include/UsageEnvironment.hh 20 | include/UsageEnvironment.hh: include/UsageEnvironment_version.hh include/Boolean.hh include/strDup.hh 21 | HashTable.$(CPP): include/HashTable.hh 22 | include/HashTable.hh: include/Boolean.hh 23 | strDup.$(CPP): include/strDup.hh 24 | 25 | clean: 26 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 27 | 28 | install: install1 $(INSTALL2) 29 | install1: $(USAGE_ENVIRONMENT_LIB) 30 | install -d $(DESTDIR)$(PREFIX)/include/UsageEnvironment $(DESTDIR)$(LIBDIR) 31 | install -m 644 include/*.hh $(DESTDIR)$(PREFIX)/include/UsageEnvironment 32 | install -m 644 $(USAGE_ENVIRONMENT_LIB) $(DESTDIR)$(LIBDIR) 33 | install_shared_libraries: $(USAGE_ENVIRONMENT_LIB) 34 | ln -fs $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).$(SHORT_LIB_SUFFIX) 35 | ln -fs $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).so 36 | 37 | ##### Any additional, platform-specific rules come here: 38 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/include/Boolean.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | #ifndef _BOOLEAN_HH 17 | #define _BOOLEAN_HH 18 | 19 | #if defined(__BORLANDC__) || (!defined(USE_LIVE555_BOOLEAN) && defined(_MSC_VER) && _MSC_VER >= 1400) 20 | // Use the "bool" type defined by the Borland compiler, and MSVC++ 8.0, Visual Studio 2005 and higher 21 | typedef bool Boolean; 22 | #define False false 23 | #define True true 24 | #else 25 | typedef unsigned char Boolean; 26 | #ifndef __MSHTML_LIBRARY_DEFINED__ 27 | #ifndef False 28 | const Boolean False = 0; 29 | #endif 30 | #ifndef True 31 | const Boolean True = 1; 32 | #endif 33 | 34 | #endif 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/include/UsageEnvironment_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "UsageEnvironment" library 2 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _USAGEENVIRONMENT_VERSION_HH 5 | #define _USAGEENVIRONMENT_VERSION_HH 6 | 7 | #define USAGEENVIRONMENT_LIBRARY_VERSION_STRING "2018.02.18" 8 | #define USAGEENVIRONMENT_LIBRARY_VERSION_INT 1518912000 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/include/strDup.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | 17 | #ifndef _STRDUP_HH 18 | #define _STRDUP_HH 19 | 20 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 21 | // A C++ equivalent to the standard C routine "strdup()". 22 | // This generates a char* that can be deleted using "delete[]" 23 | // Header 24 | 25 | #include 26 | 27 | char* strDup(char const* str); 28 | // Note: strDup(NULL) returns NULL 29 | 30 | char* strDupSize(char const* str); 31 | // Like "strDup()", except that it *doesn't* copy the original. 32 | // (Instead, it just allocates a string of the same size as the original.) 33 | 34 | char* strDupSize(char const* str, size_t& resultBufSize); 35 | // An alternative form of "strDupSize()" that also returns the size of the allocated buffer. 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/live/UsageEnvironment/strDup.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 17 | // A C++ equivalent to the standard C routine "strdup()". 18 | // This generates a char* that can be deleted using "delete[]" 19 | // Implementation 20 | 21 | #include "strDup.hh" 22 | 23 | char* strDup(char const* str) { 24 | if (str == NULL) return NULL; 25 | size_t len = strlen(str) + 1; 26 | char* copy = new char[len]; 27 | 28 | if (copy != NULL) { 29 | memcpy(copy, str, len); 30 | } 31 | return copy; 32 | } 33 | 34 | char* strDupSize(char const* str) { 35 | size_t dummy; 36 | 37 | return strDupSize(str, dummy); 38 | } 39 | 40 | char* strDupSize(char const* str, size_t& resultBufSize) { 41 | if (str == NULL) { 42 | resultBufSize = 0; 43 | return NULL; 44 | } 45 | 46 | resultBufSize = strlen(str) + 1; 47 | char* copy = new char[resultBufSize]; 48 | 49 | return copy; 50 | } 51 | -------------------------------------------------------------------------------- /src/live/WindowsAudioInputDevice/showAudioInputPorts.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // Copyright (c) 1996-2018, Live Networks, Inc. All rights reserved 17 | // A program that prints out this computer's audio input ports 18 | 19 | #include "AudioInputDevice.hh" 20 | #include 21 | 22 | int main(int argc, char** argv) { 23 | AudioPortNames* portNames = AudioInputDevice::getPortNames(); 24 | if (portNames == NULL) { 25 | fprintf(stderr, "AudioInputDevice::getPortNames() failed!\n"); 26 | exit(1); 27 | } 28 | 29 | printf("%d available audio input ports:\n", portNames->numPorts); 30 | for (unsigned i = 0; i < portNames->numPorts; ++i) { 31 | printf("%d\t%s\n", i, portNames->portName[i]); 32 | } 33 | 34 | return 0; 35 | } 36 | -------------------------------------------------------------------------------- /src/live/config.aix: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -DBSD=1 -O -DTIME_BASE=int -DSOCKLEN_T=socklen_t 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DAIX=1 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.alpha: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DTIME_BASE=int 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) -DALPHA 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -DALPHA 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -B static 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.armeb-uclibc: -------------------------------------------------------------------------------- 1 | CROSS_COMPILE= armeb-linux-uclibc- 2 | COMPILE_OPTS = $(INCLUDES) -I. -Os -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D 3 | LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 4 | C = c 5 | C_COMPILER = $(CROSS_COMPILE)gcc 6 | C_FLAGS = $(COMPILE_OPTS) 7 | CPP = cpp 8 | CPLUSPLUS_COMPILER = $(CROSS_COMPILE)g++ 9 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 10 | OBJ = o 11 | LINK = $(CROSS_COMPILE)gcc -o 12 | LINK_OPTS = -L. 13 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 14 | LIBRARY_LINK = $(CROSS_COMPILE)ar cr 15 | LIBRARY_LINK_OPTS = 16 | LIB_SUFFIX = a 17 | LIBS_FOR_CONSOLE_APPLICATION = 18 | LIBS_FOR_GUI_APPLICATION = 19 | EXE = 20 | -------------------------------------------------------------------------------- /src/live/config.armlinux: -------------------------------------------------------------------------------- 1 | CROSS_COMPILE?= arm-elf- 2 | COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 3 | C = c 4 | C_COMPILER = $(CROSS_COMPILE)gcc 5 | C_FLAGS = $(COMPILE_OPTS) 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = $(CROSS_COMPILE)g++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 9 | OBJ = o 10 | LINK = $(CROSS_COMPILE)g++ -o 11 | LINK_OPTS = 12 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 13 | LIBRARY_LINK = $(CROSS_COMPILE)ar cr 14 | LIBRARY_LINK_OPTS = $(LINK_OPTS) 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | -------------------------------------------------------------------------------- /src/live/config.avr32-linux: -------------------------------------------------------------------------------- 1 | CROSS_COMPILE= avr32-linux-uclibc- 2 | COMPILE_OPTS = -Os $(INCLUDES) -msoft-float -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 C = c 3 | C_COMPILER = $(CROSS_COMPILE)gcc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = $(CROSS_COMPILE)c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -fuse-cxa-atexit -DBSD=1 OBJ = o 8 | LINK = $(CROSS_COMPILE)c++ -o 9 | LINK_OPTS = 10 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 11 | LIBRARY_LINK = $(CROSS_COMPILE)ar cr LIBRARY_LINK_OPTS = 12 | LIB_SUFFIX = a 13 | LIBS_FOR_CONSOLE_APPLICATION = 14 | LIBS_FOR_GUI_APPLICATION = 15 | EXE = 16 | -------------------------------------------------------------------------------- /src/live/config.bfin-linux-uclibc: -------------------------------------------------------------------------------- 1 | CROSS_COMPILER = bfin-linux-uclibc- 2 | COMPILE_OPTS = $(INCLUDES) -I. -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -DUCLINUX -D_FILE_OFFSET_BITS=64 3 | C = c 4 | C_COMPILER = $(CROSS_COMPILER)gcc 5 | C_FLAGS = $(COMPILE_OPTS) -Wall 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = $(CROSS_COMPILER)g++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 9 | OBJ = o 10 | LINK = $(CROSS_COMPILER)g++ -o 11 | LINK_OPTS = -L. 12 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 13 | LIBRARY_LINK = $(CROSS_COMPILER)ar cr 14 | LIBRARY_LINK_OPTS = 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | -------------------------------------------------------------------------------- /src/live/config.bfin-uclinux: -------------------------------------------------------------------------------- 1 | CROSS_COMPILER= bfin-uclinux- 2 | COMPILE_OPTS = $(INCLUDES) -I. -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -DUCLINUX -D_FILE_OFFSET_BITS=64 3 | C = c 4 | C_COMPILER = $(CROSS_COMPILER)gcc 5 | C_FLAGS = $(COMPILE_OPTS) -Wall 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = $(CROSS_COMPILER)g++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 9 | OBJ = o 10 | LINK = $(CROSS_COMPILER)g++ -Wl,-elf2flt -o 11 | LINK_OPTS = -L. 12 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 13 | LIBRARY_LINK = $(CROSS_COMPILER)ar cr 14 | LIBRARY_LINK_OPTS = 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | -------------------------------------------------------------------------------- /src/live/config.bsplinux: -------------------------------------------------------------------------------- 1 | CROSS_COMPILE= 2 | COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 3 | C = c 4 | C_COMPILER = $(CROSS_COMPILE)ecc 5 | C_FLAGS = $(COMPILE_OPTS) 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = $(CROSS_COMPILE)e++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 9 | OBJ = o 10 | LINK = $(CROSS_COMPILE)e++ -o 11 | LINK_OPTS = -L. 12 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 13 | LIBRARY_LINK = $(CROSS_COMPILE)eld -o 14 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = -lm 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | -------------------------------------------------------------------------------- /src/live/config.cris-axis-linux-gnu: -------------------------------------------------------------------------------- 1 | # Note: AXIS_TOP_DIR is assumed to already be set in your environment. 2 | # You can set this using the "init_env" script. 3 | # See http://developer.axis.com/doc/software/apps/apps-howto.html 4 | # for more information. 5 | AXIS_DIR = $(AXIS_TOP_DIR)/target/cris-axis-linux-gnu 6 | COMPILE_OPTS = $(INCLUDES) -I. -mlinux -isystem $(AXIS_DIR)/include -Wall -O2 -DSOCKLEN_T=socklen_t -DCRIS -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 7 | C = c 8 | C_COMPILER = gcc-cris 9 | C_FLAGS = $(COMPILE_OPTS) 10 | CPP = cpp 11 | CPLUSPLUS_COMPILER = c++-cris 12 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wno-ctor-dtor-privacy -ansi -pipe 13 | OBJ = o 14 | LINK = c++-cris -static -o 15 | AXIS_LINK_OPTS = -L$(AXIS_DIR)/lib 16 | LINK_OPTS = -L. 17 | CONSOLE_LINK_OPTS = $(LINK_OPTS) -L$(AXIS_DIR)/lib -mlinux 18 | LIBRARY_LINK = ld-cris -mcrislinux -o 19 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 20 | LIB_SUFFIX = a 21 | LIBS_FOR_CONSOLE_APPLICATION = 22 | LIBS_FOR_GUI_APPLICATION = 23 | EXE = 24 | -------------------------------------------------------------------------------- /src/live/config.cygwin: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -DNEWLOCALE_NOT_USED=1 2 | C = c 3 | C_COMPILER = gcc 4 | C_FLAGS = $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__CYGWIN__ 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.cygwin-for-vlc: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -DNEWLOCALE_NOT_USED=1 2 | C = c 3 | C_COMPILER = gcc 4 | C_FLAGS = $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D_WIN32 -mno-cygwin 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -D_WIN32 -Wno-deprecated -mno-cygwin 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.freebsd: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DBSD=1 -DNEWLOCALE_NOT_USED=1 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ar cr 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.iphone-simulator: -------------------------------------------------------------------------------- 1 | # **Note: You must install the relevant "Command line tools (OSX *.*) for Xcode - Xcode *.*" 2 | # for this configuration file to work. 3 | 4 | # Change the following version number, if necessary, before running "genMakefiles iphone-simulator" 5 | IOS_VERSION = 8.3 6 | MIN_IOS_VERSION = 7.0 7 | 8 | DEVELOPER_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer 9 | TOOL_PATH = $(DEVELOPER_PATH)/usr/bin 10 | SDK_PATH = $(DEVELOPER_PATH)/SDKs 11 | SDK = $(SDK_PATH)/iPhoneSimulator$(IOS_VERSION).sdk 12 | COMPILE_OPTS = $(INCLUDES) -I. $(EXTRA_LDFLAGS) -DBSD=1 -O2 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -miphoneos-version-min=$(MIN_IOS_VERSION) -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC -arch i386 --sysroot=$(SDK) -isysroot $(SDK) 13 | C = c 14 | C_COMPILER = /usr/bin/xcrun clang 15 | C_FLAGS = $(COMPILE_OPTS) 16 | CPP = cpp 17 | CPLUSPLUS_COMPILER = /usr/bin/xcrun clang 18 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 19 | OBJ = o 20 | LINK = /usr/bin/xcrun clang -o 21 | LINK_OPTS = -L. -arch i386 -miphoneos-version-min=$(MIN_IOS_VERSION) --sysroot=$(SDK) -isysroot -L$(SDK)/usr/lib/system -I$(SDK)/usr/lib /usr/lib/libc++.dylib 22 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 23 | LIBRARY_LINK = /usr/bin/xcrun libtool -static -o 24 | LIBRARY_LINK_OPTS = 25 | LIB_SUFFIX = a 26 | LIBS_FOR_CONSOLE_APPLICATION = 27 | LIBS_FOR_GUI_APPLICATION = 28 | EXE = 29 | -------------------------------------------------------------------------------- /src/live/config.iphoneos: -------------------------------------------------------------------------------- 1 | # **Note: You must install the relevant "Command line tools (OSX *.*) for Xcode - Xcode *.*" 2 | # for this configuration file to work. 3 | # 4 | # Change the following version number, if necessary, before running "genMakefiles iphoneos" 5 | IOS_VERSION = 8.3 6 | 7 | DEVELOPER_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer 8 | TOOL_PATH = $(DEVELOPER_PATH)/usr/bin 9 | SDK_PATH = $(DEVELOPER_PATH)/SDKs 10 | SDK = $(SDK_PATH)/iPhoneOS$(IOS_VERSION).sdk 11 | COMPILE_OPTS = $(INCLUDES) -I. $(EXTRA_LDFLAGS) -DBSD=1 -O2 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC -arch armv7 --sysroot=$(SDK) 12 | C = c 13 | C_COMPILER = /usr/bin/xcrun clang 14 | C_FLAGS = $(COMPILE_OPTS) 15 | CPP = cpp 16 | CPLUSPLUS_COMPILER = /usr/bin/xcrun clang 17 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 18 | OBJ = o 19 | LINK = /usr/bin/xcrun clang -o 20 | LINK_OPTS = -v -L. -arch armv7 --sysroot=$(SDK) -L$(SDK)/usr/lib/system /usr/lib/libc++.dylib 21 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 22 | LIBRARY_LINK = /usr/bin/xcrun libtool -static -o 23 | LIBRARY_LINK_OPTS = 24 | LIB_SUFFIX = a 25 | LIBS_FOR_CONSOLE_APPLICATION = 26 | LIBS_FOR_GUI_APPLICATION = 27 | EXE = 28 | -------------------------------------------------------------------------------- /src/live/config.irix: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) -DIRIX 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DIRIX 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -B static 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.linux: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS) 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. $(LDFLAGS) 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ar cr 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.linux-64bit: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -m64 -fPIC -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ar cr 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.linux-gdb: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -g -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ar cr 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.macosx: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. $(EXTRA_LDFLAGS) -DBSD=1 -O -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -DTIME_BASE=int -DNEED_XLOCALE_H=1 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = libtool -s -o 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.macosx-32bit: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = -m32 $(INCLUDES) -I. $(EXTRA_LDFLAGS) -DBSD=1 -O -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1 -DTIME_BASE=int 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. -m32 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = libtool -s -o 13 | LIBRARY_LINK_OPTS = 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.macosx-before-version-10.4: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -DBSD=1 -O -DSOCKLEN_T=int -DTIME_BASE=int 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.mingw: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=int -DLOCALE_NOT_USED 2 | C = c 3 | C_COMPILER = $(CC) 4 | C_FLAGS = $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__MINGW32__ 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = $(CXX) 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -D__MINGW32__ -Wall -Wno-deprecated 8 | OBJ = o 9 | LINK = $(CXX) -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = $(LD) -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = -lws2_32 16 | LIBS_FOR_GUI_APPLICATION = -lws2_32 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.openbsd: -------------------------------------------------------------------------------- 1 | .SUFFIXES: .cpp 2 | COMPILE_OPTS = $(INCLUDES) -I. -DBSD=1 -O -DSOCKLEN_T=socklen_t 3 | C = c 4 | C_COMPILER = cc 5 | C_FLAGS = $(COMPILE_OPTS) 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = c++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DAIX=1 9 | OBJ = o 10 | LINK = c++ -o 11 | LINK_OPTS = -L. 12 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 13 | LIBRARY_LINK = ld -o 14 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | -------------------------------------------------------------------------------- /src/live/config.qnx4: -------------------------------------------------------------------------------- 1 | # 2 | # Requires: 3 | # QNX 4.25 4 | # Watcom 10.6 5 | # TCP/IP 5.0 6 | # 7 | COMPILE_OPTS = $(INCLUDES) -I. -D_QNX4 -DBSD -DSOCKLEN_T=uint32_t -I/usr/watcom/10.6/usr/include 8 | C = c 9 | C_COMPILER = cc32 10 | C_FLAGS = $(COMPILE_OPTS) 11 | CPP = cpp 12 | CPLUSPLUS_COMPILER = cc32 13 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -WC,-xs 14 | OBJ = o 15 | LINK = cc32 -b -M -N30000 -o 16 | LINK_OPTS = -l. 17 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 18 | LIBRARY_LINK = wlib -n -b -c 19 | LIBRARY_LINK_OPTS = $(LINK_OPTS) 20 | LIB_SUFFIX = lib 21 | LIBS_FOR_CONSOLE_APPLICATION = -lsocket 22 | LIBS_FOR_GUI_APPLICATION = $(LIBS_FOR_CONSOLE_APPLICATION) 23 | EXE = 24 | -------------------------------------------------------------------------------- /src/live/config.solaris-32bit: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOLARIS -DNEWLOCALE_NOT_USED -DSOCKLEN_T=socklen_t 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -dn 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = -lsocket -lnsl 16 | LIBS_FOR_GUI_APPLICATION = $(LIBS_FOR_CONSOLE_APPLICATION) 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.solaris-64bit: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -m64 -I. -O -DSOLARIS -DNEWLOCALE_NOT_USED -DSOCKLEN_T=socklen_t 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cpp 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -m64 -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -64 -r -dn 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = -lsocket -lnsl 16 | LIBS_FOR_GUI_APPLICATION = $(LIBS_FOR_CONSOLE_APPLICATION) 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.sunos: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -DBSD=1 -O 2 | C = c 3 | C_COMPILER = cc 4 | C_FLAGS = $(COMPILE_OPTS) 5 | CPP = cc 6 | CPLUSPLUS_COMPILER = c++ 7 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 8 | OBJ = o 9 | LINK = c++ -o 10 | LINK_OPTS = -L. 11 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 12 | LIBRARY_LINK = ld -o 13 | LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic 14 | LIB_SUFFIX = a 15 | LIBS_FOR_CONSOLE_APPLICATION = 16 | LIBS_FOR_GUI_APPLICATION = 17 | EXE = 18 | -------------------------------------------------------------------------------- /src/live/config.uClinux: -------------------------------------------------------------------------------- 1 | CROSS_COMPILE= arc-linux-uclibc- 2 | COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 3 | C = c 4 | C_COMPILER = $(CROSS_COMPILE)gcc 5 | CFLAGS += $(COMPILE_OPTS) 6 | C_FLAGS = $(CFLAGS) 7 | CPP = cpp 8 | CPLUSPLUS_COMPILER = $(CROSS_COMPILE)g++ 9 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 10 | CPLUSPLUS_FLAGS += $(CPPFLAGS) -fexceptions 11 | OBJ = o 12 | LINK = $(CROSS_COMPILE)g++ -o 13 | LINK_OPTS = -L. $(LDFLAGS) 14 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 15 | LIBRARY_LINK = $(CROSS_COMPILE)ar cr 16 | LIBRARY_LINK_OPTS = 17 | LIB_SUFFIX = a 18 | LIBS_FOR_CONSOLE_APPLICATION = $(CXXLIBS) 19 | LIBS_FOR_GUI_APPLICATION = $(LIBS_FOR_CONSOLE_APPLICATION) 20 | EXE = 21 | -------------------------------------------------------------------------------- /src/live/configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Whoa! This software distribution does NOT use the normal Unix \"configure\" mechanism for generating a Makefile. For instructions on how to build this software, see ." 4 | echo "Also, please make sure that you're using the most up-to-date version of the source code - available from ." 5 | -------------------------------------------------------------------------------- /src/live/fix-makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # the next line restarts using tclsh \ 3 | exec tclsh8.4 "$0" "$@" 4 | 5 | set makefileName [lindex $argv 0] 6 | set tmpfileName /tmp/rsftmp 7 | 8 | set inFid [open $makefileName r] 9 | set outFid [open $tmpfileName w] 10 | 11 | while {![eof $inFid]} { 12 | set line [gets $inFid] 13 | if {[string match *\)\$* $line]} { 14 | set pos [string first \)\$ $line] 15 | set prefix [string range $line 0 $pos] 16 | incr pos 17 | set suffix [string range $line $pos end] 18 | set line $prefix\ $suffix 19 | } 20 | 21 | puts $outFid $line 22 | } 23 | 24 | close $inFid 25 | close $outFid 26 | file rename -force $tmpfileName $makefileName 27 | -------------------------------------------------------------------------------- /src/live/genMakefiles: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | usage() { 4 | echo "Usage: $0 " 5 | exit 1 6 | } 7 | 8 | if [ $# -ne 1 ] 9 | then 10 | usage $* 11 | fi 12 | 13 | platform=$1 14 | subdirs="liveMedia groupsock UsageEnvironment BasicUsageEnvironment testProgs mediaServer proxyServer" 15 | 16 | for subdir in $subdirs 17 | do 18 | /bin/rm -f $subdir/Makefile 19 | cat $subdir/Makefile.head config.$platform $subdir/Makefile.tail > $subdir/Makefile 20 | chmod a-w $subdir/Makefile 21 | done 22 | 23 | /bin/rm -f Makefile 24 | cat Makefile.head config.$1 Makefile.tail > Makefile 25 | chmod a-w Makefile 26 | -------------------------------------------------------------------------------- /src/live/genWindowsMakefiles: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd liveMedia 4 | /bin/rm -f liveMedia.mak 5 | /bin/rm -f Makefile 6 | cat Makefile.head ../win32config Makefile.tail > liveMedia.mak 7 | 8 | cd ../groupsock 9 | /bin/rm -f groupsock.mak 10 | /bin/rm -f Makefile 11 | cat Makefile.head ../win32config Makefile.tail > groupsock.mak 12 | 13 | cd ../UsageEnvironment 14 | /bin/rm -f UsageEnvironment.mak 15 | /bin/rm -f Makefile 16 | cat Makefile.head ../win32config Makefile.tail > UsageEnvironment.mak 17 | 18 | cd ../BasicUsageEnvironment 19 | /bin/rm -f BasicUsageEnvironment.mak 20 | /bin/rm -f Makefile 21 | cat Makefile.head ../win32config Makefile.tail > BasicUsageEnvironment.mak 22 | 23 | cd ../testProgs 24 | /bin/rm -f testProgs.mak 25 | /bin/rm -f Makefile 26 | cat Makefile.head ../win32config Makefile.tail > testProgs.mak 27 | 28 | cd ../mediaServer 29 | /bin/rm -f mediaServer.mak 30 | /bin/rm -f Makefile 31 | cat Makefile.head ../win32config Makefile.tail > mediaServer.mak 32 | 33 | cd ../proxyServer 34 | /bin/rm -f proxyServer.mak 35 | /bin/rm -f Makefile 36 | cat Makefile.head ../win32config Makefile.tail > proxyServer.mak 37 | -------------------------------------------------------------------------------- /src/live/genWindowsMakefiles.cmd: -------------------------------------------------------------------------------- 1 | @Echo OFF 2 | SETLOCAL 3 | for %%I in (%0) do %%~dI 4 | for %%I in (%0) do cd "%%~pI" 5 | cd liveMedia 6 | del /Q liveMedia.mak 7 | type Makefile.head ..\win32config Makefile.tail > liveMedia.mak 8 | cd ../groupsock 9 | del /Q groupsock.mak 10 | type Makefile.head ..\win32config Makefile.tail > groupsock.mak 11 | cd ../UsageEnvironment 12 | del /Q UsageEnvironment.mak 13 | type Makefile.head ..\win32config Makefile.tail > UsageEnvironment.mak 14 | cd ../BasicUsageEnvironment 15 | del /Q BasicUsageEnvironment.mak 16 | type Makefile.head ..\win32config Makefile.tail > BasicUsageEnvironment.mak 17 | cd ../testProgs 18 | del /Q testProgs.mak 19 | type Makefile.head ..\win32config Makefile.tail > testProgs.mak 20 | cd ../mediaServer 21 | del /Q mediaServer.mak 22 | type Makefile.head ..\win32config Makefile.tail > mediaServer.mak 23 | cd ../proxyServer 24 | del /Q proxyServer.mak 25 | type Makefile.head ..\win32config Makefile.tail > proxyServer.mak 26 | 27 | ENDLOCAL 28 | -------------------------------------------------------------------------------- /src/live/groupsock/Groupsock.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/groupsock/Groupsock.cpp -------------------------------------------------------------------------------- /src/live/groupsock/GroupsockHelper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/groupsock/GroupsockHelper.cpp -------------------------------------------------------------------------------- /src/live/groupsock/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -Iinclude -I../UsageEnvironment/include 2 | PREFIX = /usr/local 3 | LIBDIR = $(PREFIX)/lib 4 | ##### Change the following for your environment: 5 | -------------------------------------------------------------------------------- /src/live/groupsock/NetInterface.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/groupsock/NetInterface.cpp -------------------------------------------------------------------------------- /src/live/groupsock/include/GroupsockHelper.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/groupsock/include/GroupsockHelper.hh -------------------------------------------------------------------------------- /src/live/groupsock/include/IOHandlers.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "mTunnel" multicast access service 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // IO event handlers 19 | // C++ header 20 | 21 | #ifndef _IO_HANDLERS_HH 22 | #define _IO_HANDLERS_HH 23 | 24 | #ifndef _NET_INTERFACE_HH 25 | #include "NetInterface.hh" 26 | #endif 27 | 28 | // Handles incoming data on sockets: 29 | void socketReadHandler(Socket* sock, int mask); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/live/groupsock/include/groupsock_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "groupsock" library 2 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _GROUPSOCK_VERSION_HH 5 | #define _GROUPSOCK_VERSION_HH 6 | 7 | #define GROUPSOCK_LIBRARY_VERSION_STRING "2018.02.18" 8 | #define GROUPSOCK_LIBRARY_VERSION_INT 1518912000 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/live/liveMedia/AMRAudioSource.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A source object for AMR audio sources 19 | // Implementation 20 | 21 | #include "AMRAudioSource.hh" 22 | 23 | AMRAudioSource::AMRAudioSource(UsageEnvironment& env, 24 | Boolean isWideband, unsigned numChannels) 25 | : FramedSource(env), 26 | fIsWideband(isWideband), fNumChannels(numChannels), fLastFrameHeader(0) { 27 | } 28 | 29 | AMRAudioSource::~AMRAudioSource() { 30 | } 31 | 32 | char const* AMRAudioSource::MIMEtype() const { 33 | return "audio/AMR"; 34 | } 35 | 36 | Boolean AMRAudioSource::isAMRAudioSource() const { 37 | return True; 38 | } 39 | -------------------------------------------------------------------------------- /src/live/liveMedia/AudioInputDevice.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // Copyright (c) 2001-2003 Live Networks, Inc. All rights reserved. 17 | // Generic audio input device (such as a microphone, or an input sound card) 18 | // Implementation 19 | 20 | #include 21 | 22 | AudioInputDevice 23 | ::AudioInputDevice(UsageEnvironment& env, unsigned char bitsPerSample, 24 | unsigned char numChannels, 25 | unsigned samplingFrequency, unsigned granularityInMS) 26 | : FramedSource(env), fBitsPerSample(bitsPerSample), 27 | fNumChannels(numChannels), fSamplingFrequency(samplingFrequency), 28 | fGranularityInMS(granularityInMS) { 29 | } 30 | 31 | AudioInputDevice::~AudioInputDevice() { 32 | } 33 | 34 | char** AudioInputDevice::allowedDeviceNames = NULL; 35 | 36 | ////////// AudioPortNames implementation ////////// 37 | 38 | AudioPortNames::AudioPortNames() 39 | : numPorts(0), portName(NULL) { 40 | } 41 | 42 | AudioPortNames::~AudioPortNames() { 43 | for (unsigned i = 0; i < numPorts; ++i) delete portName[i]; 44 | delete portName; 45 | } 46 | -------------------------------------------------------------------------------- /src/live/liveMedia/AudioRTPSink.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for audio codecs (abstract base class) 19 | // Implementation 20 | 21 | #include "AudioRTPSink.hh" 22 | 23 | AudioRTPSink::AudioRTPSink(UsageEnvironment& env, 24 | Groupsock* rtpgs, unsigned char rtpPayloadType, 25 | unsigned rtpTimestampFrequency, 26 | char const* rtpPayloadFormatName, 27 | unsigned numChannels) 28 | : MultiFramedRTPSink(env, rtpgs, rtpPayloadType, rtpTimestampFrequency, 29 | rtpPayloadFormatName, numChannels) { 30 | } 31 | 32 | AudioRTPSink::~AudioRTPSink() { 33 | } 34 | 35 | char const* AudioRTPSink::sdpMediaType() const { 36 | return "audio"; 37 | } 38 | -------------------------------------------------------------------------------- /src/live/liveMedia/FileServerMediaSubsession.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A 'ServerMediaSubsession' object that creates new, unicast, "RTPSink"s 19 | // on demand, from a file. 20 | // Implementation 21 | 22 | #include "FileServerMediaSubsession.hh" 23 | 24 | FileServerMediaSubsession 25 | ::FileServerMediaSubsession(UsageEnvironment& env, char const* fileName, 26 | Boolean reuseFirstSource) 27 | : OnDemandServerMediaSubsession(env, reuseFirstSource, "FileServerMediaSubsession", "MediaType"), 28 | fFileSize(0) { 29 | fFileName = strDup(fileName); 30 | } 31 | 32 | FileServerMediaSubsession::~FileServerMediaSubsession() { 33 | delete[] (char*)fFileName; 34 | } 35 | -------------------------------------------------------------------------------- /src/live/liveMedia/FramedFileSource.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Framed File Sources 19 | // Implementation 20 | 21 | #include "FramedFileSource.hh" 22 | 23 | ////////// FramedFileSource ////////// 24 | 25 | FramedFileSource::FramedFileSource(UsageEnvironment& env, FILE* fid) 26 | : FramedSource(env), fFid(fid) { 27 | } 28 | 29 | FramedFileSource::~FramedFileSource() { 30 | } 31 | -------------------------------------------------------------------------------- /src/live/liveMedia/GSMAudioRTPSink.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // RTP sink for GSM audio 19 | // Implementation 20 | 21 | #include "GSMAudioRTPSink.hh" 22 | 23 | GSMAudioRTPSink::GSMAudioRTPSink(UsageEnvironment& env, Groupsock* RTPgs) 24 | : AudioRTPSink(env, RTPgs, 3, 8000, "GSM") { 25 | } 26 | 27 | GSMAudioRTPSink::~GSMAudioRTPSink() { 28 | } 29 | 30 | GSMAudioRTPSink* 31 | GSMAudioRTPSink::createNew(UsageEnvironment& env, Groupsock* RTPgs) { 32 | return new GSMAudioRTPSink(env, RTPgs); 33 | } 34 | 35 | Boolean GSMAudioRTPSink 36 | ::frameCanAppearAfterPacketStart(unsigned char const* /*frameStart*/, 37 | unsigned /*numBytesInFrame*/) const { 38 | // Allow at most 5 frames in a single packet: 39 | return numFramesUsedSoFar() < 5; 40 | } 41 | -------------------------------------------------------------------------------- /src/live/liveMedia/GenericMediaServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/GenericMediaServer.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/GenericMediaServer_20191012.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/GenericMediaServer_20191012.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/GenericMediaServer_20191230.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/GenericMediaServer_20191230.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/H264VideoStreamDiscreteFramer.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A simplified version of "H264VideoStreamFramer" that takes only complete, 19 | // discrete frames (rather than an arbitrary byte stream) as input. 20 | // This avoids the parsing and data copying overhead of the full 21 | // "H264VideoStreamFramer". 22 | // Implementation 23 | 24 | #include "H264VideoStreamDiscreteFramer.hh" 25 | 26 | H264VideoStreamDiscreteFramer* 27 | H264VideoStreamDiscreteFramer::createNew(UsageEnvironment& env, FramedSource* inputSource) { 28 | return new H264VideoStreamDiscreteFramer(env, inputSource); 29 | } 30 | 31 | H264VideoStreamDiscreteFramer 32 | ::H264VideoStreamDiscreteFramer(UsageEnvironment& env, FramedSource* inputSource) 33 | : H264or5VideoStreamDiscreteFramer(264, env, inputSource) { 34 | } 35 | 36 | H264VideoStreamDiscreteFramer::~H264VideoStreamDiscreteFramer() { 37 | } 38 | 39 | Boolean H264VideoStreamDiscreteFramer::isH264VideoStreamFramer() const { 40 | return True; 41 | } 42 | -------------------------------------------------------------------------------- /src/live/liveMedia/H264VideoStreamFramer.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A filter that breaks up a H.264 Video Elementary Stream into NAL units. 19 | // Implementation 20 | 21 | #include "H264VideoStreamFramer.hh" 22 | 23 | H264VideoStreamFramer* H264VideoStreamFramer 24 | ::createNew(UsageEnvironment& env, FramedSource* inputSource, Boolean includeStartCodeInOutput) { 25 | return new H264VideoStreamFramer(env, inputSource, True, includeStartCodeInOutput); 26 | } 27 | 28 | H264VideoStreamFramer 29 | ::H264VideoStreamFramer(UsageEnvironment& env, FramedSource* inputSource, Boolean createParser, Boolean includeStartCodeInOutput) 30 | : H264or5VideoStreamFramer(264, env, inputSource, createParser, includeStartCodeInOutput) { 31 | } 32 | 33 | H264VideoStreamFramer::~H264VideoStreamFramer() { 34 | } 35 | 36 | Boolean H264VideoStreamFramer::isH264VideoStreamFramer() const { 37 | return True; 38 | } 39 | -------------------------------------------------------------------------------- /src/live/liveMedia/H265VideoStreamDiscreteFramer.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A simplified version of "H265VideoStreamFramer" that takes only complete, 19 | // discrete frames (rather than an arbitrary byte stream) as input. 20 | // This avoids the parsing and data copying overhead of the full 21 | // "H265VideoStreamFramer". 22 | // Implementation 23 | 24 | #include "H265VideoStreamDiscreteFramer.hh" 25 | 26 | H265VideoStreamDiscreteFramer* 27 | H265VideoStreamDiscreteFramer::createNew(UsageEnvironment& env, FramedSource* inputSource) { 28 | return new H265VideoStreamDiscreteFramer(env, inputSource); 29 | } 30 | 31 | H265VideoStreamDiscreteFramer 32 | ::H265VideoStreamDiscreteFramer(UsageEnvironment& env, FramedSource* inputSource) 33 | : H264or5VideoStreamDiscreteFramer(265, env, inputSource) { 34 | } 35 | 36 | H265VideoStreamDiscreteFramer::~H265VideoStreamDiscreteFramer() { 37 | } 38 | 39 | Boolean H265VideoStreamDiscreteFramer::isH265VideoStreamFramer() const { 40 | return True; 41 | } 42 | -------------------------------------------------------------------------------- /src/live/liveMedia/H265VideoStreamFramer.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A filter that breaks up a H.265 Video Elementary Stream into NAL units. 19 | // Implementation 20 | 21 | #include "H265VideoStreamFramer.hh" 22 | 23 | H265VideoStreamFramer* H265VideoStreamFramer 24 | ::createNew(UsageEnvironment& env, FramedSource* inputSource, Boolean includeStartCodeInOutput) { 25 | return new H265VideoStreamFramer(env, inputSource, True, includeStartCodeInOutput); 26 | } 27 | 28 | H265VideoStreamFramer 29 | ::H265VideoStreamFramer(UsageEnvironment& env, FramedSource* inputSource, Boolean createParser, Boolean includeStartCodeInOutput) 30 | : H264or5VideoStreamFramer(265, env, inputSource, createParser, includeStartCodeInOutput) { 31 | } 32 | 33 | H265VideoStreamFramer::~H265VideoStreamFramer() { 34 | } 35 | 36 | Boolean H265VideoStreamFramer::isH265VideoStreamFramer() const { 37 | return True; 38 | } 39 | -------------------------------------------------------------------------------- /src/live/liveMedia/JPEGVideoSource.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // JPEG video sources 19 | // Implementation 20 | 21 | #include "JPEGVideoSource.hh" 22 | 23 | JPEGVideoSource::JPEGVideoSource(UsageEnvironment& env) 24 | : FramedSource(env) { 25 | } 26 | 27 | JPEGVideoSource::~JPEGVideoSource() { 28 | } 29 | 30 | u_int8_t const* JPEGVideoSource::quantizationTables(u_int8_t& precision, 31 | u_int16_t& length) { 32 | // Default implementation 33 | precision = 0; 34 | length = 0; 35 | return NULL; 36 | } 37 | 38 | u_int16_t JPEGVideoSource::restartInterval() { 39 | // Default implementation 40 | return 0; 41 | } 42 | 43 | Boolean JPEGVideoSource::isJPEGVideoSource() const { 44 | return True; 45 | } 46 | -------------------------------------------------------------------------------- /src/live/liveMedia/MP3ADUdescriptor.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Descriptor preceding frames of 'ADU' MP3 streams (for improved loss-tolerance) 19 | // C++ header 20 | 21 | #ifndef _MP3_ADU_DESCRIPTOR_HH 22 | #define _MP3_ADU_DESCRIPTOR_HH 23 | 24 | // A class for handling the descriptor that begins each ADU frame: 25 | // (Note: We don't yet implement fragmentation) 26 | class ADUdescriptor { 27 | public: 28 | // Operations for generating a new descriptor 29 | static unsigned computeSize(unsigned remainingFrameSize) { 30 | return remainingFrameSize >= 64 ? 2 : 1; 31 | } 32 | static unsigned generateDescriptor(unsigned char*& toPtr, unsigned remainingFrameSize); 33 | // returns descriptor size; increments "toPtr" afterwards 34 | static void generateTwoByteDescriptor(unsigned char*& toPtr, unsigned remainingFrameSize); 35 | // always generates a 2-byte descriptor, even if "remainingFrameSize" is 36 | // small enough for a 1-byte descriptor 37 | 38 | // Operations for reading a descriptor 39 | static unsigned getRemainingFrameSize(unsigned char*& fromPtr); 40 | // increments "fromPtr" afterwards 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/live/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/MPEGVideoStreamParser.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // An abstract parser for MPEG video streams 19 | // Implementation 20 | 21 | #include "MPEGVideoStreamParser.hh" 22 | 23 | MPEGVideoStreamParser 24 | ::MPEGVideoStreamParser(MPEGVideoStreamFramer* usingSource, 25 | FramedSource* inputSource) 26 | : StreamParser(inputSource, FramedSource::handleClosure, usingSource, 27 | &MPEGVideoStreamFramer::continueReadProcessing, usingSource), 28 | fUsingSource(usingSource) { 29 | } 30 | 31 | MPEGVideoStreamParser::~MPEGVideoStreamParser() { 32 | } 33 | 34 | void MPEGVideoStreamParser::restoreSavedParserState() { 35 | StreamParser::restoreSavedParserState(); 36 | fTo = fSavedTo; 37 | fNumTruncatedBytes = fSavedNumTruncatedBytes; 38 | } 39 | 40 | void MPEGVideoStreamParser::registerReadInterest(unsigned char* to, 41 | unsigned maxSize) { 42 | fStartOfFrame = fTo = fSavedTo = to; 43 | fLimit = to + maxSize; 44 | fNumTruncatedBytes = fSavedNumTruncatedBytes = 0; 45 | } 46 | -------------------------------------------------------------------------------- /src/live/liveMedia/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -Iinclude -I../UsageEnvironment/include -I../groupsock/include 2 | PREFIX = /usr/local 3 | LIBDIR = $(PREFIX)/lib 4 | ##### Change the following for your environment: 5 | -------------------------------------------------------------------------------- /src/live/liveMedia/MediaSession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/MediaSession.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/OggDemuxedTrack.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A media track, demultiplexed from an Ogg file 19 | // Implementation 20 | 21 | #include "OggDemuxedTrack.hh" 22 | #include "OggFile.hh" 23 | 24 | OggDemuxedTrack::OggDemuxedTrack(UsageEnvironment& env, unsigned trackNumber, OggDemux& sourceDemux) 25 | : FramedSource(env), 26 | fOurTrackNumber(trackNumber), fOurSourceDemux(sourceDemux), 27 | fCurrentPageIsContinuation(False) { 28 | fNextPresentationTime.tv_sec = 0; fNextPresentationTime.tv_usec = 0; 29 | } 30 | 31 | OggDemuxedTrack::~OggDemuxedTrack() { 32 | fOurSourceDemux.removeTrack(fOurTrackNumber); 33 | } 34 | 35 | void OggDemuxedTrack::doGetNextFrame() { 36 | fOurSourceDemux.continueReading(); 37 | } 38 | 39 | char const* OggDemuxedTrack::MIMEtype() const { 40 | OggTrack* track = fOurSourceDemux.fOurFile.lookup(fOurTrackNumber); 41 | if (track == NULL) return "(unknown)"; // shouldn't happen 42 | return track->mimeType; 43 | } 44 | -------------------------------------------------------------------------------- /src/live/liveMedia/OnDemandServerMediaSubsession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/OnDemandServerMediaSubsession.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/RTPInterface.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/RTPInterface.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/RTSPClient.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/RTSPClient.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/RTSPCommon.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/RTSPCommon.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/RTSPServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/RTSPServer.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/TCPStreamSink.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/TCPStreamSink.cpp -------------------------------------------------------------------------------- /src/live/liveMedia/TextRTPSink.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for text codecs (abstract base class) 19 | // Implementation 20 | 21 | #include "TextRTPSink.hh" 22 | 23 | TextRTPSink::TextRTPSink(UsageEnvironment& env, 24 | Groupsock* rtpgs, unsigned char rtpPayloadType, 25 | unsigned rtpTimestampFrequency, 26 | char const* rtpPayloadFormatName) 27 | : MultiFramedRTPSink(env, rtpgs, rtpPayloadType, rtpTimestampFrequency, 28 | rtpPayloadFormatName) { 29 | } 30 | 31 | TextRTPSink::~TextRTPSink() { 32 | } 33 | 34 | char const* TextRTPSink::sdpMediaType() const { 35 | return "text"; 36 | } 37 | -------------------------------------------------------------------------------- /src/live/liveMedia/VideoRTPSink.cpp: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for video codecs (abstract base class) 19 | // Implementation 20 | 21 | #include "VideoRTPSink.hh" 22 | 23 | VideoRTPSink::VideoRTPSink(UsageEnvironment& env, 24 | Groupsock* rtpgs, unsigned char rtpPayloadType, 25 | unsigned rtpTimestampFrequency, 26 | char const* rtpPayloadFormatName) 27 | : MultiFramedRTPSink(env, rtpgs, rtpPayloadType, rtpTimestampFrequency, 28 | rtpPayloadFormatName) { 29 | } 30 | 31 | VideoRTPSink::~VideoRTPSink() { 32 | } 33 | 34 | char const* VideoRTPSink::sdpMediaType() const { 35 | return "video"; 36 | } 37 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/AC3AudioRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // AC3 Audio RTP Sources 19 | // C++ header 20 | 21 | #ifndef _AC3_AUDIO_RTP_SOURCE_HH 22 | #define _AC3_AUDIO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class AC3AudioRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static AC3AudioRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency); 34 | 35 | protected: 36 | virtual ~AC3AudioRTPSource(); 37 | 38 | private: 39 | AC3AudioRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 40 | unsigned char rtpPayloadFormat, 41 | unsigned rtpTimestampFrequency); 42 | // called only by createNew() 43 | 44 | private: 45 | // redefined virtual functions: 46 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 47 | unsigned& resultSpecialHeaderSize); 48 | virtual char const* MIMEtype() const; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/AMRAudioFileSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // AMR Audio File Sinks 19 | // C++ header 20 | 21 | #ifndef _AMR_AUDIO_FILE_SINK_HH 22 | #define _AMR_AUDIO_FILE_SINK_HH 23 | 24 | #ifndef _FILE_SINK_HH 25 | #include "FileSink.hh" 26 | #endif 27 | 28 | class AMRAudioFileSink: public FileSink { 29 | public: 30 | static AMRAudioFileSink* createNew(UsageEnvironment& env, char const* fileName, 31 | unsigned bufferSize = 10000, 32 | Boolean oneFilePerFrame = False); 33 | // (See "FileSink.hh" for a description of these parameters.) 34 | 35 | protected: 36 | AMRAudioFileSink(UsageEnvironment& env, FILE* fid, unsigned bufferSize, 37 | char const* perFrameFileNamePrefix); 38 | // called only by createNew() 39 | virtual ~AMRAudioFileSink(); 40 | 41 | protected: // redefined virtual functions: 42 | virtual Boolean sourceIsCompatibleWithUs(MediaSource& source); 43 | virtual void afterGettingFrame(unsigned frameSize, 44 | unsigned numTruncatedBytes, 45 | struct timeval presentationTime); 46 | 47 | protected: 48 | Boolean fHaveWrittenHeader; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/AMRAudioFileSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A source object for AMR audio files (as defined in RFC 4867, section 5) 19 | // C++ header 20 | 21 | #ifndef _AMR_AUDIO_FILE_SOURCE_HH 22 | #define _AMR_AUDIO_FILE_SOURCE_HH 23 | 24 | #ifndef _AMR_AUDIO_SOURCE_HH 25 | #include "AMRAudioSource.hh" 26 | #endif 27 | 28 | class AMRAudioFileSource: public AMRAudioSource { 29 | public: 30 | static AMRAudioFileSource* createNew(UsageEnvironment& env, 31 | char const* fileName); 32 | 33 | private: 34 | AMRAudioFileSource(UsageEnvironment& env, FILE* fid, 35 | Boolean isWideband, unsigned numChannels); 36 | // called only by createNew() 37 | 38 | virtual ~AMRAudioFileSource(); 39 | 40 | private: 41 | // redefined virtual functions: 42 | virtual void doGetNextFrame(); 43 | 44 | private: 45 | FILE* fFid; 46 | }; 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/AMRAudioSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A source object for AMR audio sources 19 | // C++ header 20 | 21 | #ifndef _AMR_AUDIO_SOURCE_HH 22 | #define _AMR_AUDIO_SOURCE_HH 23 | 24 | #ifndef _FRAMED_SOURCE_HH 25 | #include "FramedSource.hh" 26 | #endif 27 | 28 | class AMRAudioSource: public FramedSource { 29 | public: 30 | Boolean isWideband() const { return fIsWideband; } 31 | unsigned numChannels() const { return fNumChannels; } 32 | 33 | u_int8_t lastFrameHeader() const { return fLastFrameHeader; } 34 | // The frame header for the most recently read frame (RFC 4867, sec. 5.3) 35 | 36 | protected: 37 | AMRAudioSource(UsageEnvironment& env, Boolean isWideband, unsigned numChannels); 38 | // virtual base class 39 | virtual ~AMRAudioSource(); 40 | 41 | private: 42 | // redefined virtual functions: 43 | virtual char const* MIMEtype() const; 44 | virtual Boolean isAMRAudioSource() const; 45 | 46 | protected: 47 | Boolean fIsWideband; 48 | unsigned fNumChannels; 49 | u_int8_t fLastFrameHeader; 50 | }; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/AudioRTPSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for audio codecs (abstract base class) 19 | // C++ header 20 | 21 | #ifndef _AUDIO_RTP_SINK_HH 22 | #define _AUDIO_RTP_SINK_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SINK_HH 25 | #include "MultiFramedRTPSink.hh" 26 | #endif 27 | 28 | class AudioRTPSink: public MultiFramedRTPSink { 29 | protected: 30 | AudioRTPSink(UsageEnvironment& env, 31 | Groupsock* rtpgs, unsigned char rtpPayloadType, 32 | unsigned rtpTimestampFrequency, 33 | char const* rtpPayloadFormatName, 34 | unsigned numChannels = 1); 35 | // (we're an abstract base class) 36 | virtual ~AudioRTPSink(); 37 | 38 | private: // redefined virtual functions: 39 | virtual char const* sdpMediaType() const; 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/Base64.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Base64 encoding and decoding 19 | // C++ header 20 | 21 | #ifndef _BASE64_HH 22 | #define _BASE64_HH 23 | 24 | #ifndef _BOOLEAN_HH 25 | #include "Boolean.hh" 26 | #endif 27 | 28 | unsigned char* base64Decode(char const* in, unsigned& resultSize, 29 | Boolean trimTrailingZeros = True); 30 | // returns a newly allocated array - of size "resultSize" - that 31 | // the caller is responsible for delete[]ing. 32 | 33 | unsigned char* base64Decode(char const* in, unsigned inSize, 34 | unsigned& resultSize, 35 | Boolean trimTrailingZeros = True); 36 | // As above, but includes the size of the input string (i.e., the number of bytes to decode) as a parameter. 37 | // This saves an extra call to "strlen()" if we already know the length of the input string. 38 | 39 | char* base64Encode(char const* orig, unsigned origLength); 40 | // returns a 0-terminated string that 41 | // the caller is responsible for delete[]ing. 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/BasicUDPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A simple UDP source, where every UDP payload is a complete frame 19 | // C++ header 20 | 21 | #ifndef _BASIC_UDP_SOURCE_HH 22 | #define _BASIC_UDP_SOURCE_HH 23 | 24 | #ifndef _FRAMED_SOURCE_HH 25 | #include "FramedSource.hh" 26 | #endif 27 | #ifndef _GROUPSOCK_HH 28 | #include "Groupsock.hh" 29 | #endif 30 | 31 | class BasicUDPSource: public FramedSource { 32 | public: 33 | static BasicUDPSource* createNew(UsageEnvironment& env, Groupsock* inputGS); 34 | 35 | virtual ~BasicUDPSource(); 36 | 37 | Groupsock* gs() const { return fInputGS; } 38 | 39 | private: 40 | BasicUDPSource(UsageEnvironment& env, Groupsock* inputGS); 41 | // called only by createNew() 42 | 43 | static void incomingPacketHandler(BasicUDPSource* source, int mask); 44 | void incomingPacketHandler1(); 45 | 46 | private: // redefined virtual functions: 47 | virtual void doGetNextFrame(); 48 | virtual void doStopGettingFrames(); 49 | 50 | private: 51 | Groupsock* fInputGS; 52 | Boolean fHaveStartedReading; 53 | }; 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/DVVideoRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // DV Video RTP Sources 19 | // C++ header 20 | 21 | #ifndef _DV_VIDEO_RTP_SOURCE_HH 22 | #define _DV_VIDEO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class DVVideoRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static DVVideoRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency); 34 | 35 | protected: 36 | virtual ~DVVideoRTPSource(); 37 | 38 | private: 39 | DVVideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 40 | unsigned char rtpPayloadFormat, 41 | unsigned rtpTimestampFrequency); 42 | // called only by createNew() 43 | 44 | private: 45 | // redefined virtual functions: 46 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 47 | unsigned& resultSpecialHeaderSize); 48 | virtual char const* MIMEtype() const; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/FileServerMediaSubsession.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A 'ServerMediaSubsession' object that creates new, unicast, "RTPSink"s 19 | // on demand, from a file. 20 | // C++ header 21 | 22 | #ifndef _FILE_SERVER_MEDIA_SUBSESSION_HH 23 | #define _FILE_SERVER_MEDIA_SUBSESSION_HH 24 | 25 | #ifndef _SERVER_MEDIA_SESSION_HH 26 | #include "ServerMediaSession.hh" 27 | #endif 28 | #ifndef _ON_DEMAND_SERVER_MEDIA_SUBSESSION_HH 29 | #include "OnDemandServerMediaSubsession.hh" 30 | #endif 31 | 32 | class FileServerMediaSubsession: public OnDemandServerMediaSubsession { 33 | protected: // we're a virtual base class 34 | FileServerMediaSubsession(UsageEnvironment& env, char const* fileName, 35 | Boolean reuseFirstSource); 36 | virtual ~FileServerMediaSubsession(); 37 | 38 | protected: 39 | char const* fFileName; 40 | u_int64_t fFileSize; // if known 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/FramedFileSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Framed File Sources 19 | // C++ header 20 | 21 | #ifndef _FRAMED_FILE_SOURCE_HH 22 | #define _FRAMED_FILE_SOURCE_HH 23 | 24 | #ifndef _FRAMED_SOURCE_HH 25 | #include "FramedSource.hh" 26 | #endif 27 | 28 | class FramedFileSource: public FramedSource { 29 | protected: 30 | FramedFileSource(UsageEnvironment& env, FILE* fid); // abstract base class 31 | virtual ~FramedFileSource(); 32 | 33 | protected: 34 | FILE* fFid; 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/FramedFilter.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Framed Filters 19 | // C++ header 20 | 21 | #ifndef _FRAMED_FILTER_HH 22 | #define _FRAMED_FILTER_HH 23 | 24 | #ifndef _FRAMED_SOURCE_HH 25 | #include "FramedSource.hh" 26 | #endif 27 | 28 | class FramedFilter: public FramedSource { 29 | public: 30 | FramedSource* inputSource() const { return fInputSource; } 31 | 32 | void reassignInputSource(FramedSource* newInputSource) { fInputSource = newInputSource; } 33 | 34 | // Call before destruction if you want to prevent the destructor from closing the input source 35 | void detachInputSource(); 36 | 37 | protected: 38 | FramedFilter(UsageEnvironment& env, FramedSource* inputSource); 39 | // abstract base class 40 | virtual ~FramedFilter(); 41 | 42 | protected: 43 | // Redefined virtual functions (with default 'null' implementations): 44 | virtual char const* MIMEtype() const; 45 | virtual void getAttributes() const; 46 | virtual void doStopGettingFrames(); 47 | 48 | protected: 49 | FramedSource* fInputSource; 50 | }; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/GSMAudioRTPSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // RTP sink for GSM audio 19 | // C++ header 20 | 21 | #ifndef _GSM_AUDIO_RTP_SINK_HH 22 | #define _GSM_AUDIO_RTP_SINK_HH 23 | 24 | #ifndef _AUDIO_RTP_SINK_HH 25 | #include "AudioRTPSink.hh" 26 | #endif 27 | 28 | class GSMAudioRTPSink: public AudioRTPSink { 29 | public: 30 | static GSMAudioRTPSink* createNew(UsageEnvironment& env, Groupsock* RTPgs); 31 | 32 | protected: 33 | GSMAudioRTPSink(UsageEnvironment& env, Groupsock* RTPgs); 34 | // called only by createNew() 35 | 36 | virtual ~GSMAudioRTPSink(); 37 | 38 | private: // redefined virtual functions: 39 | virtual 40 | Boolean frameCanAppearAfterPacketStart(unsigned char const* frameStart, 41 | unsigned numBytesInFrame) const; 42 | }; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/GenericMediaServer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/include/GenericMediaServer.hh -------------------------------------------------------------------------------- /src/live/liveMedia/include/GenericMediaServer_20191012.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/include/GenericMediaServer_20191012.hh -------------------------------------------------------------------------------- /src/live/liveMedia/include/H264VideoStreamDiscreteFramer.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A simplified version of "H264VideoStreamFramer" that takes only complete, 19 | // discrete frames (rather than an arbitrary byte stream) as input. 20 | // This avoids the parsing and data copying overhead of the full 21 | // "H264VideoStreamFramer". 22 | // C++ header 23 | 24 | #ifndef _H264_VIDEO_STREAM_DISCRETE_FRAMER_HH 25 | #define _H264_VIDEO_STREAM_DISCRETE_FRAMER_HH 26 | 27 | #ifndef _H264_OR_5_VIDEO_STREAM_DISCRETE_FRAMER_HH 28 | #include "H264or5VideoStreamDiscreteFramer.hh" 29 | #endif 30 | 31 | class H264VideoStreamDiscreteFramer: public H264or5VideoStreamDiscreteFramer { 32 | public: 33 | static H264VideoStreamDiscreteFramer* 34 | createNew(UsageEnvironment& env, FramedSource* inputSource); 35 | 36 | protected: 37 | H264VideoStreamDiscreteFramer(UsageEnvironment& env, FramedSource* inputSource); 38 | // called only by createNew() 39 | virtual ~H264VideoStreamDiscreteFramer(); 40 | 41 | private: 42 | // redefined virtual functions: 43 | virtual Boolean isH264VideoStreamFramer() const; 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/H264VideoStreamFramer.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A filter that breaks up a H.264 Video Elementary Stream into NAL units. 19 | // C++ header 20 | 21 | #ifndef _H264_VIDEO_STREAM_FRAMER_HH 22 | #define _H264_VIDEO_STREAM_FRAMER_HH 23 | 24 | #ifndef _H264_OR_5_VIDEO_STREAM_FRAMER_HH 25 | #include "H264or5VideoStreamFramer.hh" 26 | #endif 27 | 28 | class H264VideoStreamFramer: public H264or5VideoStreamFramer { 29 | public: 30 | static H264VideoStreamFramer* createNew(UsageEnvironment& env, FramedSource* inputSource, 31 | Boolean includeStartCodeInOutput = False); 32 | 33 | protected: 34 | H264VideoStreamFramer(UsageEnvironment& env, FramedSource* inputSource, 35 | Boolean createParser, Boolean includeStartCodeInOutput); 36 | // called only by "createNew()" 37 | virtual ~H264VideoStreamFramer(); 38 | 39 | // redefined virtual functions: 40 | virtual Boolean isH264VideoStreamFramer() const; 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/H264or5VideoFileSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // H.264 or H.265 Video File Sinks 19 | // C++ header 20 | 21 | #ifndef _H264_OR_5_VIDEO_FILE_SINK_HH 22 | #define _H264_OR_5_VIDEO_FILE_SINK_HH 23 | 24 | #ifndef _FILE_SINK_HH 25 | #include "FileSink.hh" 26 | #endif 27 | 28 | class H264or5VideoFileSink: public FileSink { 29 | protected: 30 | H264or5VideoFileSink(UsageEnvironment& env, FILE* fid, 31 | unsigned bufferSize, char const* perFrameFileNamePrefix, 32 | char const* sPropParameterSetsStr1, 33 | char const* sPropParameterSetsStr2 = NULL, 34 | char const* sPropParameterSetsStr3 = NULL); 35 | // we're an abstract base class 36 | virtual ~H264or5VideoFileSink(); 37 | 38 | protected: // redefined virtual functions: 39 | virtual void afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime); 40 | 41 | private: 42 | char const* fSPropParameterSetsStr[3]; 43 | Boolean fHaveWrittenFirstFrame; 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/H265VideoStreamDiscreteFramer.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A simplified version of "H265VideoStreamFramer" that takes only complete, 19 | // discrete frames (rather than an arbitrary byte stream) as input. 20 | // This avoids the parsing and data copying overhead of the full 21 | // "H265VideoStreamFramer". 22 | // C++ header 23 | 24 | #ifndef _H265_VIDEO_STREAM_DISCRETE_FRAMER_HH 25 | #define _H265_VIDEO_STREAM_DISCRETE_FRAMER_HH 26 | 27 | #ifndef _H264_OR_5_VIDEO_STREAM_DISCRETE_FRAMER_HH 28 | #include "H264or5VideoStreamDiscreteFramer.hh" 29 | #endif 30 | 31 | class H265VideoStreamDiscreteFramer: public H264or5VideoStreamDiscreteFramer { 32 | public: 33 | static H265VideoStreamDiscreteFramer* 34 | createNew(UsageEnvironment& env, FramedSource* inputSource); 35 | 36 | protected: 37 | H265VideoStreamDiscreteFramer(UsageEnvironment& env, FramedSource* inputSource); 38 | // called only by createNew() 39 | virtual ~H265VideoStreamDiscreteFramer(); 40 | 41 | private: 42 | // redefined virtual functions: 43 | virtual Boolean isH265VideoStreamFramer() const; 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/H265VideoStreamFramer.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A filter that breaks up a H.265 Video Elementary Stream into NAL units. 19 | // C++ header 20 | 21 | #ifndef _H265_VIDEO_STREAM_FRAMER_HH 22 | #define _H265_VIDEO_STREAM_FRAMER_HH 23 | 24 | #ifndef _H264_OR_5_VIDEO_STREAM_FRAMER_HH 25 | #include "H264or5VideoStreamFramer.hh" 26 | #endif 27 | 28 | class H265VideoStreamFramer: public H264or5VideoStreamFramer { 29 | public: 30 | static H265VideoStreamFramer* createNew(UsageEnvironment& env, FramedSource* inputSource, 31 | Boolean includeStartCodeInOutput = False); 32 | 33 | protected: 34 | H265VideoStreamFramer(UsageEnvironment& env, FramedSource* inputSource, Boolean createParser, Boolean includeStartCodeInOutput); 35 | // called only by "createNew()" 36 | virtual ~H265VideoStreamFramer(); 37 | 38 | // redefined virtual functions: 39 | virtual Boolean isH265VideoStreamFramer() const; 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/MP3ADURTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // RTP source for 'ADUized' MP3 frames ("mpa-robust") 19 | // C++ header 20 | 21 | #ifndef _MP3_ADU_SOURCE_HH 22 | #define _MP3_ADU_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class MP3ADURTPSource: public MultiFramedRTPSource { 29 | public: 30 | static MP3ADURTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency = 90000); 34 | 35 | protected: 36 | virtual ~MP3ADURTPSource(); 37 | 38 | private: 39 | MP3ADURTPSource(UsageEnvironment& env, Groupsock* RTPgs, 40 | unsigned char rtpPayloadFormat, 41 | unsigned rtpTimestampFrequency); 42 | // called only by createNew() 43 | 44 | private: 45 | // redefined virtual functions: 46 | virtual char const* MIMEtype() const; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/MP3Transcoder.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // MP3 Transcoder 19 | // C++ header 20 | 21 | #ifndef _MP3_TRANSCODER_HH 22 | #define _MP3_TRANSCODER_HH 23 | 24 | #ifndef _MP3_ADU_HH 25 | #include "MP3ADU.hh" 26 | #endif 27 | #ifndef _MP3_ADU_TRANSCODER_HH 28 | #include "MP3ADUTranscoder.hh" 29 | #endif 30 | 31 | class MP3Transcoder: public MP3FromADUSource { 32 | public: 33 | static MP3Transcoder* createNew(UsageEnvironment& env, 34 | unsigned outBitrate /* in kbps */, 35 | FramedSource* inputSource); 36 | 37 | protected: 38 | MP3Transcoder(UsageEnvironment& env, 39 | MP3ADUTranscoder* aduTranscoder); 40 | // called only by createNew() 41 | virtual ~MP3Transcoder(); 42 | }; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/MPEG1or2AudioRTPSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // RTP sink for MPEG audio (RFC 2250) 19 | // C++ header 20 | 21 | #ifndef _MPEG_1OR2_AUDIO_RTP_SINK_HH 22 | #define _MPEG_1OR2_AUDIO_RTP_SINK_HH 23 | 24 | #ifndef _AUDIO_RTP_SINK_HH 25 | #include "AudioRTPSink.hh" 26 | #endif 27 | 28 | class MPEG1or2AudioRTPSink: public AudioRTPSink { 29 | public: 30 | static MPEG1or2AudioRTPSink* createNew(UsageEnvironment& env, 31 | Groupsock* RTPgs); 32 | 33 | protected: 34 | MPEG1or2AudioRTPSink(UsageEnvironment& env, Groupsock* RTPgs); 35 | // called only by createNew() 36 | 37 | virtual ~MPEG1or2AudioRTPSink(); 38 | 39 | private: // redefined virtual functions: 40 | virtual void doSpecialFrameHandling(unsigned fragmentationOffset, 41 | unsigned char* frameStart, 42 | unsigned numBytesInFrame, 43 | struct timeval framePresentationTime, 44 | unsigned numRemainingBytes); 45 | virtual unsigned specialHeaderSize() const; 46 | }; 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/MPEG1or2AudioRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // MPEG-1 or MPEG-2 Audio RTP Sources 19 | // C++ header 20 | 21 | #ifndef _MPEG_1OR2_AUDIO_RTP_SOURCE_HH 22 | #define _MPEG_1OR2_AUDIO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class MPEG1or2AudioRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static MPEG1or2AudioRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat = 14, 33 | unsigned rtpTimestampFrequency = 90000); 34 | 35 | protected: 36 | virtual ~MPEG1or2AudioRTPSource(); 37 | 38 | private: 39 | MPEG1or2AudioRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 40 | unsigned char rtpPayloadFormat, 41 | unsigned rtpTimestampFrequency); 42 | // called only by createNew() 43 | 44 | private: 45 | // redefined virtual functions: 46 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 47 | unsigned& resultSpecialHeaderSize); 48 | virtual char const* MIMEtype() const; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/MPEG4ESVideoRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // MP4V-ES video RTP stream sources 19 | // C++ header 20 | 21 | #ifndef _MPEG4_ES_VIDEO_RTP_SOURCE_HH 22 | #define _MPEG4_ES_VIDEO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class MPEG4ESVideoRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static MPEG4ESVideoRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency); 34 | 35 | protected: 36 | virtual ~MPEG4ESVideoRTPSource(); 37 | 38 | private: 39 | MPEG4ESVideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 40 | unsigned char rtpPayloadFormat, 41 | unsigned rtpTimestampFrequency); 42 | // called only by createNew() 43 | 44 | private: 45 | // redefined virtual functions: 46 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 47 | unsigned& resultSpecialHeaderSize); 48 | virtual char const* MIMEtype() const; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/OutputFile.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Common routines for opening/closing named output files 19 | // C++ header 20 | 21 | #ifndef _OUTPUT_FILE_HH 22 | #define _OUTPUT_FILE_HH 23 | 24 | #include 25 | #include 26 | 27 | FILE* OpenOutputFile(UsageEnvironment& env, char const* fileName); 28 | 29 | void CloseOutputFile(FILE* fid); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/QCELPAudioRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // Qualcomm "PureVoice" (aka. "QCELP") Audio RTP Sources 19 | // C++ header 20 | 21 | #ifndef _QCELP_AUDIO_RTP_SOURCE_HH 22 | #define _QCELP_AUDIO_RTP_SOURCE_HH 23 | 24 | #ifndef _RTP_SOURCE_HH 25 | #include "RTPSource.hh" 26 | #endif 27 | 28 | class QCELPAudioRTPSource { 29 | public: 30 | static FramedSource* createNew(UsageEnvironment& env, 31 | Groupsock* RTPgs, 32 | RTPSource*& resultRTPSource, 33 | unsigned char rtpPayloadFormat = 12, 34 | unsigned rtpTimestampFrequency = 8000); 35 | // This returns a source to read from, but "resultRTPSource" will 36 | // point to RTP-related state. 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/RTSPServer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/include/RTSPServer.hh -------------------------------------------------------------------------------- /src/live/liveMedia/include/TextRTPSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for text codecs (abstract base class) 19 | // C++ header 20 | 21 | #ifndef _TEXT_RTP_SINK_HH 22 | #define _TEXT_RTP_SINK_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SINK_HH 25 | #include "MultiFramedRTPSink.hh" 26 | #endif 27 | 28 | class TextRTPSink: public MultiFramedRTPSink { 29 | protected: 30 | TextRTPSink(UsageEnvironment& env, 31 | Groupsock* rtpgs, unsigned char rtpPayloadType, 32 | unsigned rtpTimestampFrequency, 33 | char const* rtpPayloadFormatName); 34 | // (we're an abstract base class) 35 | virtual ~TextRTPSink(); 36 | 37 | private: // redefined virtual functions: 38 | virtual char const* sdpMediaType() const; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/VP8VideoRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // VP8 Video RTP Sources 19 | // C++ header 20 | 21 | #ifndef _VP8_VIDEO_RTP_SOURCE_HH 22 | #define _VP8_VIDEO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class VP8VideoRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static VP8VideoRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency = 90000); 34 | 35 | protected: 36 | VP8VideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 37 | unsigned char rtpPayloadFormat, 38 | unsigned rtpTimestampFrequency); 39 | // called only by createNew() 40 | 41 | virtual ~VP8VideoRTPSource(); 42 | 43 | protected: 44 | // redefined virtual functions: 45 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 46 | unsigned& resultSpecialHeaderSize); 47 | virtual char const* MIMEtype() const; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/VP9VideoRTPSource.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // VP9 Video RTP Sources 19 | // C++ header 20 | 21 | #ifndef _VP9_VIDEO_RTP_SOURCE_HH 22 | #define _VP9_VIDEO_RTP_SOURCE_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SOURCE_HH 25 | #include "MultiFramedRTPSource.hh" 26 | #endif 27 | 28 | class VP9VideoRTPSource: public MultiFramedRTPSource { 29 | public: 30 | static VP9VideoRTPSource* 31 | createNew(UsageEnvironment& env, Groupsock* RTPgs, 32 | unsigned char rtpPayloadFormat, 33 | unsigned rtpTimestampFrequency = 90000); 34 | 35 | protected: 36 | VP9VideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs, 37 | unsigned char rtpPayloadFormat, 38 | unsigned rtpTimestampFrequency); 39 | // called only by createNew() 40 | 41 | virtual ~VP9VideoRTPSource(); 42 | 43 | protected: 44 | // redefined virtual functions: 45 | virtual Boolean processSpecialHeader(BufferedPacket* packet, 46 | unsigned& resultSpecialHeaderSize); 47 | virtual char const* MIMEtype() const; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/VideoRTPSink.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // "liveMedia" 17 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 18 | // A generic RTP sink for video codecs (abstract base class) 19 | // C++ header 20 | 21 | #ifndef _VIDEO_RTP_SINK_HH 22 | #define _VIDEO_RTP_SINK_HH 23 | 24 | #ifndef _MULTI_FRAMED_RTP_SINK_HH 25 | #include "MultiFramedRTPSink.hh" 26 | #endif 27 | 28 | class VideoRTPSink: public MultiFramedRTPSink { 29 | protected: 30 | VideoRTPSink(UsageEnvironment& env, 31 | Groupsock* rtpgs, unsigned char rtpPayloadType, 32 | unsigned rtpTimestampFrequency, 33 | char const* rtpPayloadFormatName); 34 | // (we're an abstract base class) 35 | virtual ~VideoRTPSink(); 36 | 37 | private: // redefined virtual functions: 38 | virtual char const* sdpMediaType() const; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/live/liveMedia/include/liveMedia_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "liveMedia" library 2 | // Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _LIVEMEDIA_VERSION_HH 5 | #define _LIVEMEDIA_VERSION_HH 6 | 7 | #define LIVEMEDIA_LIBRARY_VERSION_STRING "2018.02.18" 8 | #define LIVEMEDIA_LIBRARY_VERSION_INT 1518912000 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/live/liveMedia/stDjgzxL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/live/liveMedia/stDjgzxL -------------------------------------------------------------------------------- /src/live/mediaServer/DynamicRTSPServer.hh: -------------------------------------------------------------------------------- 1 | /********** 2 | This library is free software; you can redistribute it and/or modify it under 3 | the terms of the GNU Lesser General Public License as published by the 4 | Free Software Foundation; either version 3 of the License, or (at your 5 | option) any later version. (See .) 6 | 7 | This library is distributed in the hope that it will be useful, but WITHOUT 8 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 9 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 10 | more details. 11 | 12 | You should have received a copy of the GNU Lesser General Public License 13 | along with this library; if not, write to the Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | **********/ 16 | // Copyright (c) 1996-2018, Live Networks, Inc. All rights reserved 17 | // A subclass of "RTSPServer" that creates "ServerMediaSession"s on demand, 18 | // based on whether or not the specified stream name exists as a file 19 | // Header file 20 | 21 | #ifndef _DYNAMIC_RTSP_SERVER_HH 22 | #define _DYNAMIC_RTSP_SERVER_HH 23 | 24 | #ifndef _RTSP_SERVER_SUPPORTING_HTTP_STREAMING_HH 25 | #include "RTSPServerSupportingHTTPStreaming.hh" 26 | #endif 27 | 28 | class DynamicRTSPServer: public RTSPServerSupportingHTTPStreaming { 29 | public: 30 | static DynamicRTSPServer* createNew(UsageEnvironment& env, Port ourPort, 31 | UserAuthenticationDatabase* authDatabase, 32 | unsigned reclamationTestSeconds = 65); 33 | 34 | protected: 35 | DynamicRTSPServer(UsageEnvironment& env, int ourSocket, Port ourPort, 36 | UserAuthenticationDatabase* authDatabase, unsigned reclamationTestSeconds); 37 | // called only by createNew(); 38 | virtual ~DynamicRTSPServer(); 39 | 40 | protected: // redefined virtual functions 41 | virtual ServerMediaSession* 42 | lookupServerMediaSession(char const* streamName, Boolean isFirstLookupInSession); 43 | }; 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /src/live/mediaServer/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include 2 | # Default library filename suffixes for each library that we link with. The "config.*" file might redefine these later. 3 | libliveMedia_LIB_SUFFIX = $(LIB_SUFFIX) 4 | libBasicUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 5 | libUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 6 | libgroupsock_LIB_SUFFIX = $(LIB_SUFFIX) 7 | ##### Change the following for your environment: 8 | -------------------------------------------------------------------------------- /src/live/mediaServer/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | MEDIA_SERVER = live555MediaServer$(EXE) 4 | 5 | PREFIX = /usr/local 6 | ALL = $(MEDIA_SERVER) 7 | all: $(ALL) 8 | 9 | .$(C).$(OBJ): 10 | $(C_COMPILER) -c $(C_FLAGS) $< 11 | .$(CPP).$(OBJ): 12 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 13 | 14 | MEDIA_SERVER_OBJS = live555MediaServer.$(OBJ) DynamicRTSPServer.$(OBJ) 15 | 16 | live555MediaServer.$(CPP): DynamicRTSPServer.hh version.hh 17 | DynamicRTSPServer.$(CPP): DynamicRTSPServer.hh 18 | 19 | USAGE_ENVIRONMENT_DIR = ../UsageEnvironment 20 | USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX) 21 | BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment 22 | BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX) 23 | LIVEMEDIA_DIR = ../liveMedia 24 | LIVEMEDIA_LIB = $(LIVEMEDIA_DIR)/libliveMedia.$(libliveMedia_LIB_SUFFIX) 25 | GROUPSOCK_DIR = ../groupsock 26 | GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX) 27 | LOCAL_LIBS = $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \ 28 | $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) 29 | LIBS = $(LOCAL_LIBS) $(LIBS_FOR_CONSOLE_APPLICATION) 30 | 31 | live555MediaServer$(EXE): $(MEDIA_SERVER_OBJS) $(LOCAL_LIBS) 32 | $(LINK)$@ $(CONSOLE_LINK_OPTS) $(MEDIA_SERVER_OBJS) $(LIBS) 33 | 34 | clean: 35 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 36 | 37 | install: $(MEDIA_SERVER) 38 | install -d $(DESTDIR)$(PREFIX)/bin 39 | install -m 755 $(MEDIA_SERVER) $(DESTDIR)$(PREFIX)/bin 40 | 41 | ##### Any additional, platform-specific rules come here: 42 | -------------------------------------------------------------------------------- /src/live/mediaServer/version.hh: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1996-2018, Live Networks, Inc. All rights reserved 2 | // Version information for the LIVE555 Media Server application 3 | // Header file 4 | 5 | #ifndef _MEDIA_SERVER_VERSION_HH 6 | #define _MEDIA_SERVER_VERSION_HH 7 | 8 | #define MEDIA_SERVER_VERSION_STRING "0.91" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/live/proxyServer/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include 2 | # Default library filename suffixes for each library that we link with. The "config.*" file might redefine these later. 3 | libliveMedia_LIB_SUFFIX = $(LIB_SUFFIX) 4 | libBasicUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 5 | libUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 6 | libgroupsock_LIB_SUFFIX = $(LIB_SUFFIX) 7 | ##### Change the following for your environment: 8 | -------------------------------------------------------------------------------- /src/live/proxyServer/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | PROXY_SERVER = live555ProxyServer$(EXE) 4 | 5 | PREFIX = /usr/local 6 | ALL = $(PROXY_SERVER) 7 | all: $(ALL) 8 | 9 | .$(C).$(OBJ): 10 | $(C_COMPILER) -c $(C_FLAGS) $< 11 | .$(CPP).$(OBJ): 12 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 13 | 14 | PROXY_SERVER_OBJS = live555ProxyServer.$(OBJ) 15 | 16 | USAGE_ENVIRONMENT_DIR = ../UsageEnvironment 17 | USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX) 18 | BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment 19 | BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX) 20 | LIVEMEDIA_DIR = ../liveMedia 21 | LIVEMEDIA_LIB = $(LIVEMEDIA_DIR)/libliveMedia.$(libliveMedia_LIB_SUFFIX) 22 | GROUPSOCK_DIR = ../groupsock 23 | GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX) 24 | LOCAL_LIBS = $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \ 25 | $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) 26 | LIBS = $(LOCAL_LIBS) $(LIBS_FOR_CONSOLE_APPLICATION) 27 | 28 | live555ProxyServer$(EXE): $(PROXY_SERVER_OBJS) $(LOCAL_LIBS) 29 | $(LINK)$@ $(CONSOLE_LINK_OPTS) $(PROXY_SERVER_OBJS) $(LIBS) 30 | 31 | clean: 32 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 33 | 34 | install: $(PROXY_SERVER) 35 | install -d $(DESTDIR)$(PREFIX)/bin 36 | install -m 755 $(PROXY_SERVER) $(DESTDIR)$(PREFIX)/bin 37 | 38 | ##### Any additional, platform-specific rules come here: 39 | -------------------------------------------------------------------------------- /src/live/testProgs/Makefile.head: -------------------------------------------------------------------------------- 1 | INCLUDES = -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include 2 | # Default library filename suffixes for each library that we link with. The "config.*" file might redefine these later. 3 | libliveMedia_LIB_SUFFIX = $(LIB_SUFFIX) 4 | libBasicUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 5 | libUsageEnvironment_LIB_SUFFIX = $(LIB_SUFFIX) 6 | libgroupsock_LIB_SUFFIX = $(LIB_SUFFIX) 7 | ##### Change the following for your environment: 8 | -------------------------------------------------------------------------------- /src/live/testProgs/testMP3-using-ADUs.sdp: -------------------------------------------------------------------------------- 1 | v=0 2 | o=- 49452 4 IN IP4 127.0.0.1 3 | s=Test MP3 session 4 | i=Parameters for the session streamed by "testMP3Streamer" 5 | t=0 0 6 | a=tool:testMP3Streamer 7 | a=type:broadcast 8 | m=audio 6666 RTP/AVP 96 9 | c=IN IP4 239.255.42.42/127 10 | a=rtpmap:96 mpa-robust/90000 11 | -------------------------------------------------------------------------------- /src/live/testProgs/testMP3.sdp: -------------------------------------------------------------------------------- 1 | v=0 2 | o=- 49452 4 IN IP4 127.0.0.1 3 | s=Test MP3 session 4 | i=Parameters for the session streamed by "testMP3Streamer" 5 | t=0 0 6 | a=tool:testMP3Streamer 7 | a=type:broadcast 8 | m=audio 6666 RTP/AVP 14 9 | c=IN IP4 239.255.42.42/127 10 | -------------------------------------------------------------------------------- /src/live/testProgs/testMPEG1or2AudioVideo.sdp: -------------------------------------------------------------------------------- 1 | v=0 2 | o=- 49451 3 IN IP4 127.0.0.1 3 | s=Test MPEG Audio+Video session 4 | i=Parameters for the session streamed by "testMPEG1or2AudioVideoStreamer" 5 | t=0 0 6 | a=tool:testMPEG1or2AudioVideoStreamer 7 | a=type:broadcast 8 | m=audio 6666 RTP/AVP 14 9 | c=IN IP4 239.255.42.42/127 10 | m=video 8888 RTP/AVP 32 11 | c=IN IP4 239.255.42.42/127 12 | -------------------------------------------------------------------------------- /src/live/testProgs/testMPEG1or2Video.sdp: -------------------------------------------------------------------------------- 1 | v=0 2 | o=- 49451 3 IN IP4 127.0.0.1 3 | s=Test MPEG Video session 4 | i=Parameters for the session streamed by "testMPEG1or2VideoStreamer" 5 | t=0 0 6 | a=tool:testMPEG1or2VideoStreamer 7 | a=type:broadcast 8 | m=video 8888 RTP/AVP 32 9 | c=IN IP4 239.255.42.42/127 10 | -------------------------------------------------------------------------------- /src/live/testProgs/testMPEG2Transport.sdp: -------------------------------------------------------------------------------- 1 | v=0 2 | o=- 49451 3 IN IP4 127.0.0.1 3 | s=Test MPEG-2 Transport Stream session 4 | i=Parameters for the session streamed by "testMPEG2TransportStreamer" 5 | t=0 0 6 | a=tool:testMPEG2TransportStreamer 7 | a=type:broadcast 8 | m=video 1234 RTP/AVP 33 9 | c=IN IP4 239.255.42.42/127 10 | -------------------------------------------------------------------------------- /src/live/win32config: -------------------------------------------------------------------------------- 1 | # Comment out the following line to produce Makefiles that generate debuggable code: 2 | NODEBUG=1 3 | 4 | # The following definition ensures that we are properly matching 5 | # the WinSock2 library file with the correct header files. 6 | # (will link with "ws2_32.lib" and include "winsock2.h" & "Ws2tcpip.h") 7 | TARGETOS = WINNT 8 | 9 | # If for some reason you wish to use WinSock1 instead, uncomment the 10 | # following two definitions. 11 | # (will link with "wsock32.lib" and include "winsock.h") 12 | #TARGETOS = WIN95 13 | #APPVER = 4.0 14 | 15 | !include 16 | 17 | UI_OPTS = $(guilflags) $(guilibsdll) 18 | # Use the following to get a console (e.g., for debugging): 19 | CONSOLE_UI_OPTS = $(conlflags) $(conlibsdll) 20 | CPU=i386 21 | 22 | TOOLS32 = c:\Program Files\DevStudio\Vc 23 | COMPILE_OPTS = $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. -I"$(TOOLS32)\include" 24 | C = c 25 | C_COMPILER = "$(TOOLS32)\bin\cl" 26 | C_FLAGS = $(COMPILE_OPTS) 27 | CPP = cpp 28 | CPLUSPLUS_COMPILER = $(C_COMPILER) 29 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) 30 | OBJ = obj 31 | LINK = $(link) -out: 32 | LIBRARY_LINK = lib -out: 33 | LINK_OPTS_0 = $(linkdebug) msvcirt.lib 34 | LIBRARY_LINK_OPTS = 35 | LINK_OPTS = $(LINK_OPTS_0) $(UI_OPTS) 36 | CONSOLE_LINK_OPTS = $(LINK_OPTS_0) $(CONSOLE_UI_OPTS) 37 | SERVICE_LINK_OPTS = kernel32.lib advapi32.lib shell32.lib -subsystem:console,$(APPVER) 38 | LIB_SUFFIX = lib 39 | LIBS_FOR_CONSOLE_APPLICATION = 40 | LIBS_FOR_GUI_APPLICATION = 41 | MULTIMEDIA_LIBS = winmm.lib 42 | EXE = .exe 43 | PLATFORM = Windows 44 | 45 | rc32 = "$(TOOLS32)\bin\rc" 46 | .rc.res: 47 | $(rc32) $< 48 | -------------------------------------------------------------------------------- /src/live/win32config.Borland: -------------------------------------------------------------------------------- 1 | # Comment out the following line to produce Makefiles that generate debuggable code: 2 | NODEBUG=1 3 | 4 | # The following definition ensures that we are properly matching 5 | # the WinSock2 library file with the correct header files. 6 | # (will link with "ws2_32.lib" and include "winsock2.h" & "Ws2tcpip.h") 7 | TARGETOS = WINNT 8 | 9 | # If for some reason you wish to use WinSock1 instead, uncomment the 10 | # following two definitions. 11 | # (will link with "wsock32.lib" and include "winsock.h") 12 | #TARGETOS = WIN95 13 | #APPVER = 4.0 14 | 15 | #!include 16 | 17 | UI_OPTS = $(guilflags) $(guilibsdll) 18 | # Use the following to get a console (e.g., for debugging): 19 | CONSOLE_UI_OPTS = $(conlflags) $(conlibsdll) 20 | CPU=i386 21 | 22 | TOOLS32 = C:\Progra~1\Borland\CBuilder5 23 | COMPILE_OPTS = $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. -I$(TOOLS32)\include 24 | C = c 25 | C_COMPILER = $(TOOLS32)\bin\bcc32 26 | C_FLAGS = $(COMPILE_OPTS) 27 | CPP = cpp 28 | CPLUSPLUS_COMPILER = $(C_COMPILER) 29 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) 30 | OBJ = obj 31 | LINK = $(TOOLS32)\bin\ilink32 32 | LIBRARY_LINK = $(TOOLS32)\bin\tlib 33 | LINK_OPTS_0 = $(linkdebug) msvcirt.lib 34 | LIBRARY_LINK_OPTS = /u 35 | LINK_OPTS = $(LINK_OPTS_0) $(UI_OPTS) 36 | CONSOLE_LINK_OPTS = c0x32 37 | 38 | SERVICE_LINK_OPTS = kernel32.lib advapi32.lib shell32.lib -subsystem:console,$(APPVER) 39 | LIB_SUFFIX = lib 40 | LIBS_FOR_CONSOLE_APPLICATION = cw32.lib import32.lib 41 | LIBS_FOR_GUI_APPLICATION = ,,cw32 42 | EXE = 43 | 44 | rc32 = $(TOOLS32)\bin\brc32" 45 | .rc.res: 46 | $(rc32) $< 47 | -------------------------------------------------------------------------------- /src/live_ipv4_ipv6.cpp: -------------------------------------------------------------------------------- 1 | #include "live_ipv4_ipv6.h" 2 | 3 | LIVE_IP_VER_ENUM live_ip_ver = LIVE_IP_VER_6; -------------------------------------------------------------------------------- /src/live_ipv4_ipv6.h: -------------------------------------------------------------------------------- 1 | #ifndef __LIVE_IPV4_IPV6 2 | #define __LIVE_IPV4_IPV6 3 | 4 | #ifndef _WIN32 5 | #define Sleep(x) {usleep(x*1000);} 6 | #endif 7 | 8 | 9 | #define LIVE_FLAG 0xFFFFFFFF 10 | 11 | typedef enum LIVE_IPVER_ENUM 12 | { 13 | LIVE_IP_VER_4 = 0, 14 | LIVE_IP_VER_6 15 | }LIVE_IP_VER_ENUM; 16 | 17 | extern LIVE_IP_VER_ENUM live_ip_ver; 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/livebase64.h: -------------------------------------------------------------------------------- 1 | #ifndef __LIVE_BASE64_H__ 2 | #define __LIVE_BASE64_H__ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | void live_base64_decode(char *src, int src_len, char *dst, int *dstlen); 9 | 10 | long live_base64_encode (char *to, char *from, unsigned int len); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /src/livebufferqueue.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/livebufferqueue.cpp -------------------------------------------------------------------------------- /src/livebufferqueue.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/livebufferqueue.h -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/main.cpp -------------------------------------------------------------------------------- /src/nbproject/Package-Debug.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=GNU-Linux 10 | CND_CONF=Debug 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libEasyRTSPServer.${CND_DLIB_EXT} 17 | OUTPUT_BASENAME=libEasyRTSPServer.${CND_DLIB_EXT} 18 | PACKAGE_TOP_DIR=liblibRTSPServer.so/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/liblibRTSPServer.so/lib" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /src/nbproject/Package-Release.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=GNU-Linux 10 | CND_CONF=Release 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libEasyRTSPServer.${CND_DLIB_EXT} 17 | OUTPUT_BASENAME=libEasyRTSPServer.${CND_DLIB_EXT} 18 | PACKAGE_TOP_DIR=liblibRTSPServer.so/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/liblibRTSPServer.so/lib" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /src/nbproject/Package-himix200.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=himix200-Linux 10 | CND_CONF=himix200 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libRTSPServer.${CND_DLIB_EXT} 17 | OUTPUT_BASENAME=libRTSPServer.${CND_DLIB_EXT} 18 | PACKAGE_TOP_DIR=liblibRTSPServer.so/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/liblibRTSPServer.so/lib" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /src/nbproject/Package-hisiv500.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # 4 | # Generated - do not edit! 5 | # 6 | 7 | # Macros 8 | TOP=`pwd` 9 | CND_PLATFORM=GNU-Linux 10 | CND_CONF=hisiv500 11 | CND_DISTDIR=dist 12 | CND_BUILDDIR=build 13 | CND_DLIB_EXT=so 14 | NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15 | TMPDIRNAME=tmp-packaging 16 | OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libEasyIPCamera.${CND_DLIB_EXT} 17 | OUTPUT_BASENAME=libEasyIPCamera.${CND_DLIB_EXT} 18 | PACKAGE_TOP_DIR=liblibRTSPServer.so/ 19 | 20 | # Functions 21 | function checkReturnCode 22 | { 23 | rc=$? 24 | if [ $rc != 0 ] 25 | then 26 | exit $rc 27 | fi 28 | } 29 | function makeDirectory 30 | # $1 directory path 31 | # $2 permission (optional) 32 | { 33 | mkdir -p "$1" 34 | checkReturnCode 35 | if [ "$2" != "" ] 36 | then 37 | chmod $2 "$1" 38 | checkReturnCode 39 | fi 40 | } 41 | function copyFileToTmpDir 42 | # $1 from-file path 43 | # $2 to-file path 44 | # $3 permission 45 | { 46 | cp "$1" "$2" 47 | checkReturnCode 48 | if [ "$3" != "" ] 49 | then 50 | chmod $3 "$2" 51 | checkReturnCode 52 | fi 53 | } 54 | 55 | # Setup 56 | cd "${TOP}" 57 | mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package 58 | rm -rf ${NBTMPDIR} 59 | mkdir -p ${NBTMPDIR} 60 | 61 | # Copy files and create directories and links 62 | cd "${TOP}" 63 | makeDirectory "${NBTMPDIR}/liblibRTSPServer.so/lib" 64 | copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}lib/${OUTPUT_BASENAME}" 0644 65 | 66 | 67 | # Generate tar file 68 | cd "${TOP}" 69 | rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar 70 | cd ${NBTMPDIR} 71 | tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/liblibRTSPServer.so.tar * 72 | checkReturnCode 73 | 74 | # Cleanup 75 | cd "${TOP}" 76 | rm -rf ${NBTMPDIR} 77 | -------------------------------------------------------------------------------- /src/nbproject/private/Makefile-variables.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Generated - do not edit! 3 | # 4 | # NOCDDL 5 | # 6 | # Debug configuration 7 | # Release configuration 8 | # hisiv500 configuration 9 | # himix200 configuration 10 | -------------------------------------------------------------------------------- /src/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2 5 | 3 6 | 7 | 8 | 9 | 10 | file:/home/gavin/workspace/source_code/EasySeries/libRTSPServer/EasyRtspServerAPI.h 11 | file:/home/gavin/workspace/source_code/EasySeries/libRTSPServer/EasyTypes.h 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.cnd.makeproject 4 | 5 | 6 | libRTSPServer 7 | c 8 | cpp 9 | h,hh 10 | UTF-8 11 | 12 | 13 | live 14 | 15 | 16 | 17 | Debug 18 | 2 19 | 20 | 21 | Release 22 | 2 23 | 24 | 25 | hisiv500 26 | 2 27 | 28 | 29 | himix200 30 | 2 31 | 32 | 33 | 34 | false 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/osmutex.cpp: -------------------------------------------------------------------------------- 1 | #include "osmutex.h" 2 | 3 | 4 | 5 | int InitMutex(OSMutex *mutex) 6 | { 7 | #ifdef _WIN32 8 | InitializeCriticalSection(mutex); 9 | #else 10 | pthread_mutex_init(mutex, NULL); 11 | #endif 12 | return 0; 13 | } 14 | 15 | int LockMutex(OSMutex *mutex) 16 | { 17 | #ifdef _WIN32 18 | EnterCriticalSection(mutex); 19 | #else 20 | (void)pthread_mutex_lock(mutex); 21 | #endif 22 | return 0; 23 | } 24 | 25 | int UnlockMutex(OSMutex *mutex) 26 | { 27 | #ifdef _WIN32 28 | LeaveCriticalSection(mutex); 29 | #else 30 | pthread_mutex_unlock(mutex); 31 | #endif 32 | return 0; 33 | } 34 | 35 | int DeinitMutex(OSMutex *mutex) 36 | { 37 | #ifdef _WIN32 38 | DeleteCriticalSection(mutex); 39 | #else 40 | pthread_mutex_destroy(mutex); 41 | #endif 42 | return 0; 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/osmutex.h: -------------------------------------------------------------------------------- 1 | #ifndef __OS_MUTEX_H__ 2 | #define __OS_MUTEX_H__ 3 | 4 | #ifdef _WIN32 5 | #include 6 | #else 7 | #include 8 | #endif 9 | 10 | #ifdef _WIN32 11 | typedef CRITICAL_SECTION OSMutex; 12 | #else 13 | typedef pthread_mutex_t OSMutex; 14 | #endif 15 | 16 | 17 | int InitMutex(OSMutex *mutex); 18 | int LockMutex(OSMutex *mutex); 19 | int UnlockMutex(OSMutex *mutex); 20 | int DeinitMutex(OSMutex *mutex); 21 | 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /src/osthread.h: -------------------------------------------------------------------------------- 1 | #ifndef __OS_THREAD_H__ 2 | #define __OS_THREAD_H__ 3 | 4 | 5 | #ifdef _WIN32 6 | #include 7 | #else 8 | #include 9 | #endif 10 | 11 | 12 | #ifdef _WIN32 13 | typedef HANDLE OSThreadHandle; 14 | #else 15 | typedef pthread_t OSThreadHandle; 16 | #endif 17 | 18 | 19 | typedef struct OSTHREAD_OBJ_T 20 | { 21 | int threadId; 22 | OSThreadHandle hHandle; 23 | int flag; 24 | void *userPtr; 25 | void *pEx; 26 | }OSTHREAD_OBJ_T; 27 | 28 | 29 | #ifdef _WIN32 30 | int CreateOSThread(OSTHREAD_OBJ_T **handle, void *procFunc, void *userPtr); 31 | #else 32 | int CreateOSThread(OSTHREAD_OBJ_T **handle, void *(*procFunc)(void *), void *userPtr); 33 | #endif 34 | int DeleteOSThread(OSTHREAD_OBJ_T **handle); 35 | 36 | 37 | 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /src/sync_shm.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved. 3 | Github: https://github.com/EasyDarwin 4 | WEChat: EasyDarwin 5 | Website: http://www.easydarwin.org 6 | */ 7 | #ifndef ANDROID 8 | #include "sync_shm.h" 9 | 10 | #ifndef _WIN32 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | 22 | int shm_create(int _shmkey, int *_shmid, int bufsize, char **pbuf) 23 | { 24 | if (NULL == _shmid) return -1; 25 | *_shmid = -1; 26 | 27 | printf("shmget..\n"); 28 | int shmid = shmget(_shmkey, bufsize, IPC_CREAT|0666); 29 | if (shmid < 0) 30 | { 31 | printf("shmget fail[%d][%d]. %d\n", _shmkey, shmid, errno); 32 | return -1; 33 | } 34 | 35 | *pbuf = (char *)shmat(shmid, 0, 0); 36 | if ( *pbuf == (char*)-1) 37 | { 38 | printf("shmat fail. %d\n", errno); 39 | 40 | shm_delete(&shmid, *pbuf); 41 | return -1; 42 | } 43 | 44 | *_shmid = shmid; 45 | return 0; 46 | } 47 | 48 | int shm_mdt(int shmid, char *pbuf) 49 | { 50 | if (shmid < 0) return -1; 51 | 52 | if (NULL != pbuf) 53 | { 54 | shmdt(pbuf); 55 | pbuf = NULL; 56 | } 57 | 58 | return 0; 59 | } 60 | 61 | int shm_delete(int *shmid, char *pbuf) 62 | { 63 | if (NULL == shmid) return -1; 64 | if (*shmid < 0) return -1; 65 | 66 | shm_mdt(*shmid, pbuf); 67 | 68 | shmctl(*shmid, IPC_RMID, 0); 69 | *shmid = -1; 70 | 71 | return 0; 72 | } 73 | 74 | 75 | 76 | #endif 77 | #endif -------------------------------------------------------------------------------- /src/sync_shm.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved. 3 | Github: https://github.com/EasyDarwin 4 | WEChat: EasyDarwin 5 | Website: http://www.easydarwin.org 6 | */ 7 | #ifndef __SYNC_SHM_H__ 8 | #define __SYNC_SHM_H__ 9 | 10 | #ifndef ANDROID 11 | 12 | #ifndef _WIN32 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | int shm_create(int _shmkey, int *_shmid, int bufsize, char **pbuf); 25 | int shm_mdt(int shmid, char *pbuf); 26 | int shm_delete(int *shmid, char *pbuf); 27 | 28 | #endif 29 | 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/trace.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EasyDarwin/EasyRTSPServer/718363158ac09ddca15a92bd1995cb6233453b4b/src/trace.cpp -------------------------------------------------------------------------------- /src/trace.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __TRACE_H__ 3 | #define __TRACE_H__ 4 | 5 | #ifdef _WIN32 6 | #include 7 | #else 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #define MAX_PATH 260 16 | #endif 17 | 18 | 19 | typedef enum __TRACE_LOG_LEVEL_ENUM 20 | { 21 | TRACE_LOG_INFO = 0, 22 | TRACE_LOG_WARNING, 23 | TRACE_LOG_DEBUG, 24 | TRACE_LOG_ERROR, 25 | }TRACE_LOG_LEVEL_ENUM; 26 | 27 | 28 | void _TRACE_Init(); 29 | void _TRACE_Deinit(); 30 | 31 | void _TRACE_OpenLogFile(char *filenameprefix); 32 | void _TRACE_CloseLogFile(); 33 | 34 | void __TRACE_TO_FILE(char *filename, char *pbuf, int bufsize); 35 | 36 | void _TRACE(TRACE_LOG_LEVEL_ENUM level, char* szFormat, ...); 37 | 38 | 39 | #ifdef ANDROID 40 | #include 41 | #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "EASYDARWIN", __VA_ARGS__) 42 | #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "EASYDARWIN", __VA_ARGS__) 43 | #define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "EASYDARWIN", __VA_ARGS__) 44 | #define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "EASYDARWIN", __VA_ARGS__) 45 | #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "EASYDARWIN", __VA_ARGS__) 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/version.hh: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1996-2016, Live Networks, Inc. All rights reserved 2 | // Version information for the LIVE555 Media Server application 3 | // Header file 4 | 5 | #ifndef _MEDIA_SERVER_VERSION_HH 6 | #define _MEDIA_SERVER_VERSION_HH 7 | 8 | #define MEDIA_SERVER_VERSION_STRING "0.88" 9 | 10 | #endif 11 | --------------------------------------------------------------------------------