├── .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 |
--------------------------------------------------------------------------------