├── ipcam ├── src │ └── config │ │ ├── __init__.py │ │ ├── setting.py │ │ ├── mongosession.py │ │ └── url.py ├── templates │ ├── kam │ │ ├── handshake.html │ │ └── conf.html │ ├── visitor │ │ ├── logout.html │ │ ├── login_error.html │ │ ├── info.html │ │ ├── sign_in.html │ │ ├── sign_up.html │ │ ├── login.html │ │ ├── article_faq.html │ │ └── layout.html │ ├── admin │ │ ├── portal.html │ │ ├── info.html │ │ ├── user.html │ │ ├── sys_setting.html │ │ ├── user_new.html │ │ ├── self_setting.html │ │ ├── order_new.html │ │ ├── kam.html │ │ ├── user_setting.html │ │ ├── order.html │ │ ├── kam_setting.html │ │ ├── order_setting.html │ │ ├── status.html │ │ └── layout.html │ └── user │ │ ├── info.html │ │ ├── download2.html │ │ ├── alert_info.html │ │ ├── alert_log.html │ │ ├── settings_add_kam.html │ │ ├── settings_cams_list.html │ │ ├── shadow_setting.html │ │ ├── settings_user.html │ │ ├── portal.html │ │ ├── status.html │ │ └── layout.html ├── static │ ├── logo.png │ ├── ipcam.png │ ├── f8_logo3_s.png │ ├── images │ │ ├── 111.png │ │ ├── 112.png │ │ ├── 113.png │ │ ├── ptz1.gif │ │ ├── ptz2.gif │ │ ├── ptz3.gif │ │ ├── center.gif │ │ ├── down_up.gif │ │ ├── left_up.gif │ │ ├── loader.gif │ │ ├── player.png │ │ ├── up_down.gif │ │ ├── up_up.gif │ │ ├── down_down.gif │ │ ├── left_down.gif │ │ ├── leftup_up.gif │ │ ├── public │ │ │ ├── 3D.png │ │ │ ├── fixed.png │ │ │ ├── speak.png │ │ │ ├── 3D_sel.png │ │ │ ├── ptzhide.png │ │ │ ├── ptzshow.png │ │ │ ├── button │ │ │ │ ├── mid.png │ │ │ │ ├── left.png │ │ │ │ ├── right.png │ │ │ │ └── Button.png │ │ │ ├── fixed_sel.png │ │ │ ├── mainstream.png │ │ │ ├── original.png │ │ │ ├── recordDis.png │ │ │ ├── size16to9.png │ │ │ ├── sizeauto.png │ │ │ ├── speakDis.png │ │ │ ├── speakSel.png │ │ │ ├── stopRecord.png │ │ │ ├── substream.png │ │ │ ├── original_sel.png │ │ │ ├── ptzhide_sel.png │ │ │ ├── ptzshow_sel.png │ │ │ ├── sizeauto_sel.png │ │ │ ├── startRecord.png │ │ │ ├── mainstream_sel.png │ │ │ ├── size16to9_sel.png │ │ │ ├── substream_sel.png │ │ │ └── PatrolFrame │ │ │ │ ├── midleft.png │ │ │ │ ├── midright.png │ │ │ │ ├── topleft.png │ │ │ │ ├── topmid.png │ │ │ │ ├── topright.png │ │ │ │ ├── bottomleft.png │ │ │ │ ├── bottommid.png │ │ │ │ └── bottomright.png │ │ ├── right_up.gif │ │ ├── ajax-loader.gif │ │ ├── config │ │ │ ├── alarm.png │ │ │ ├── error.png │ │ │ ├── smile.png │ │ │ ├── tips.png │ │ │ ├── wait.gif │ │ │ ├── Button.png │ │ │ ├── Scrollvol1.png │ │ │ ├── scrollvol.png │ │ │ ├── timeIcon.png │ │ │ ├── timeInputWindowleft.png │ │ │ ├── timeInputWindowmid.png │ │ │ └── timeInputWindowright.png │ │ ├── leftdown_up.gif │ │ ├── leftup_down.gif │ │ ├── right_down.gif │ │ ├── rightdown_up.gif │ │ ├── rightup_down.gif │ │ ├── rightup_up.gif │ │ ├── fisheye │ │ │ ├── wndcut.png │ │ │ ├── prickline.png │ │ │ ├── wndMode1.png │ │ │ ├── wndMode10.png │ │ │ ├── wndMode11.png │ │ │ ├── wndMode2.png │ │ │ ├── wndMode3.png │ │ │ ├── wndMode4.png │ │ │ ├── wndMode5.png │ │ │ ├── wndMode6.png │ │ │ ├── wndMode7.png │ │ │ ├── wndMode8.png │ │ │ ├── wndMode9.png │ │ │ ├── wndcutbtn.png │ │ │ ├── wndcutbtnon.png │ │ │ ├── fisheyeOSDbg.png │ │ │ ├── wndMode10_sel.png │ │ │ ├── wndMode11_sel.png │ │ │ ├── wndMode1_sel.png │ │ │ ├── wndMode2_sel.png │ │ │ ├── wndMode3_sel.png │ │ │ ├── wndMode4_sel.png │ │ │ ├── wndMode5_sel.png │ │ │ ├── wndMode6_sel.png │ │ │ ├── wndMode7_sel.png │ │ │ ├── wndMode8_sel.png │ │ │ └── wndMode9_sel.png │ │ ├── icons-18-black.png │ │ ├── icons-18-white.png │ │ ├── icons-36-black.png │ │ ├── icons-36-white.png │ │ ├── leftdown_down.gif │ │ ├── playback │ │ │ ├── fast.png │ │ │ ├── goto.gif │ │ │ ├── pause.png │ │ │ ├── play.png │ │ │ ├── slow.png │ │ │ ├── stop.png │ │ │ ├── H_point.cur │ │ │ ├── H_point1.cur │ │ │ ├── buttonbg.png │ │ │ ├── capture.png │ │ │ ├── download.png │ │ │ ├── fastDis.png │ │ │ ├── savefile.png │ │ │ ├── slowDis.png │ │ │ ├── soundDis.png │ │ │ ├── speedvol.png │ │ │ ├── stopDis.png │ │ │ ├── toolbar.png │ │ │ ├── volumebg.png │ │ │ ├── buttonbgon.png │ │ │ ├── captureDis.png │ │ │ ├── closesound.png │ │ │ ├── opensound.png │ │ │ ├── playbck_02.gif │ │ │ ├── playbck_03.gif │ │ │ ├── playbck_05.gif │ │ │ ├── playbck_07.gif │ │ │ ├── savingfile.png │ │ │ ├── scrollvol.png │ │ │ ├── search_btn.png │ │ │ ├── timeExpand.png │ │ │ ├── timeNarrow.png │ │ │ ├── volumebgon.png │ │ │ ├── downloadDis.png │ │ │ ├── localizerLeft.png │ │ │ ├── localizerMid.png │ │ │ ├── savefileDis.png │ │ │ ├── search_icon.gif │ │ │ ├── singleframe.png │ │ │ ├── localizerRight.png │ │ │ ├── picturedownload.png │ │ │ ├── singleframeDis.png │ │ │ ├── timeExpand_sel.png │ │ │ └── timeNarrow_sel.png │ │ └── rightdown_down.gif │ ├── ipcam_small.png │ ├── tmp │ │ ├── _blank.jpg │ │ └── _digits.jpg │ ├── My97DatePicker │ │ ├── skin │ │ │ ├── datePicker.gif │ │ │ ├── playback │ │ │ │ ├── qs.gif │ │ │ │ ├── up.jpg │ │ │ │ ├── down.jpg │ │ │ │ ├── left.gif │ │ │ │ ├── right.gif │ │ │ │ ├── header.gif │ │ │ │ ├── navLeft.gif │ │ │ │ └── navRight.gif │ │ │ └── WdatePicker.css │ │ ├── config.js │ │ ├── lang │ │ │ ├── en.js │ │ │ ├── zh-cn.js │ │ │ └── zh-tw.js │ │ └── My97DatePicker.htm │ ├── error.html │ ├── layout_html5.css │ ├── xml │ │ └── version.xml │ ├── css │ │ └── base.css │ └── jquery.waitforimages.min.js ├── log_cut.sh ├── Makefile ├── bar2.js ├── root@hf.f8kam.com └── test_snap.py ├── TO-DO.txt ├── 后台管理v5.docx ├── docs ├── RTSP.pdf ├── RTSP.ppt └── RTSP-RTP.pdf ├── live555 ├── Makefile.head ├── rec │ ├── rec.cpp │ ├── Makefile.head │ ├── kam.h │ └── Makefile.tail ├── groupsock │ ├── COPYING │ ├── Makefile.head │ └── include │ │ ├── groupsock_version.hh │ │ └── IOHandlers.hh ├── liveMedia │ ├── COPYING │ ├── Makefile.head │ ├── include │ │ ├── liveMedia_version.hh │ │ ├── OutputFile.hh │ │ ├── FramedFileSource.hh │ │ ├── QCELPAudioRTPSource.hh │ │ ├── MP3Transcoder.hh │ │ ├── TextRTPSink.hh │ │ ├── VideoRTPSink.hh │ │ ├── GSMAudioRTPSink.hh │ │ ├── AudioRTPSink.hh │ │ ├── FileServerMediaSubsession.hh │ │ ├── AMRAudioFileSource.hh │ │ ├── MP3ADURTPSource.hh │ │ ├── H265VideoStreamFramer.hh │ │ ├── H264VideoStreamFramer.hh │ │ ├── Base64.hh │ │ ├── H264or5VideoFileSink.hh │ │ ├── AMRAudioSource.hh │ │ ├── DVVideoRTPSource.hh │ │ ├── FramedFilter.hh │ │ ├── VP8VideoRTPSource.hh │ │ ├── AC3AudioRTPSource.hh │ │ ├── BasicUDPSource.hh │ │ ├── MPEG4ESVideoRTPSource.hh │ │ ├── H264VideoStreamDiscreteFramer.hh │ │ ├── H265VideoStreamDiscreteFramer.hh │ │ └── MPEG1or2AudioRTPSink.hh │ ├── FramedFileSource.cpp │ ├── AMRAudioSource.cpp │ ├── TextRTPSink.cpp │ ├── FileServerMediaSubsession.cpp │ ├── VideoRTPSink.cpp │ ├── AudioRTPSink.cpp │ ├── JPEGVideoSource.cpp │ ├── GSMAudioRTPSink.cpp │ ├── H264VideoStreamFramer.cpp │ ├── H265VideoStreamFramer.cpp │ ├── OggDemuxedTrack.cpp │ ├── AudioInputDevice.cpp │ ├── H264VideoStreamDiscreteFramer.cpp │ ├── H265VideoStreamDiscreteFramer.cpp │ └── MPEGVideoStreamParser.cpp ├── UsageEnvironment │ ├── COPYING │ ├── Makefile.head │ ├── include │ │ ├── UsageEnvironment_version.hh │ │ ├── strDup.hh │ │ └── Boolean.hh │ ├── Makefile.tail │ ├── strDup.cpp │ └── HashTable.cpp ├── BasicUsageEnvironment │ ├── COPYING │ ├── Makefile.head │ ├── include │ │ └── BasicUsageEnvironment_version.hh │ └── Makefile.tail ├── README ├── configure ├── streaming │ ├── Makefile.head │ ├── DynamicRTSPServer.hh │ └── Makefile.tail ├── config.linux-gdb ├── config.macosx-before-version-10.4 ├── config.linux-64bit ├── config.macosx ├── config.cygwin ├── config.macosx-32bit ├── config.linux ├── config.cygwin-for-vlc ├── config.armlinux ├── fix-makefile ├── config.mingw ├── config.bfin-uclinux ├── config.bfin-linux-uclibc ├── config.avr32-linux ├── config.armeb-uclibc ├── config.bsplinux ├── config.uClinux ├── diff.BasicUsageEnvironment.0702 ├── genMakefiles ├── Makefile.tail ├── config.iphoneos ├── config.iphone-simulator └── Makefile ├── README ├── streaming ├── streaming.h ├── Makefile └── passiveTCP.c ├── .gitignore ├── sync ├── sync.h └── Makefile ├── rec ├── kam.h └── Makefile ├── mongo_server ├── LICENSE ├── test.py └── nginx.conf /ipcam/src/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TO-DO.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/TO-DO.txt -------------------------------------------------------------------------------- /后台管理v5.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/后台管理v5.docx -------------------------------------------------------------------------------- /docs/RTSP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/docs/RTSP.pdf -------------------------------------------------------------------------------- /docs/RTSP.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/docs/RTSP.ppt -------------------------------------------------------------------------------- /ipcam/templates/kam/handshake.html: -------------------------------------------------------------------------------- 1 | $def with (ret) 2 | login=$ret 3 | -------------------------------------------------------------------------------- /live555/Makefile.head: -------------------------------------------------------------------------------- 1 | ##### Change the following for your environment: 2 | -------------------------------------------------------------------------------- /docs/RTSP-RTP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/docs/RTSP-RTP.pdf -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 一个完整的视频监控案例,包括录像、存储、回放、远程同步等功能,使用海康摄像头,相当于自建一个视频录像机。 2 | 在某影院实际部署过,已稳定运行了3年。 3 | -------------------------------------------------------------------------------- /ipcam/static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/logo.png -------------------------------------------------------------------------------- /live555/rec/rec.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/live555/rec/rec.cpp -------------------------------------------------------------------------------- /ipcam/static/ipcam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/ipcam.png -------------------------------------------------------------------------------- /live555/groupsock/COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/live555/groupsock/COPYING -------------------------------------------------------------------------------- /live555/liveMedia/COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/live555/liveMedia/COPYING -------------------------------------------------------------------------------- /ipcam/src/config/setting.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/src/config/setting.py -------------------------------------------------------------------------------- /ipcam/static/f8_logo3_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/f8_logo3_s.png -------------------------------------------------------------------------------- /ipcam/static/images/111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/111.png -------------------------------------------------------------------------------- /ipcam/static/images/112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/112.png -------------------------------------------------------------------------------- /ipcam/static/images/113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/113.png -------------------------------------------------------------------------------- /ipcam/static/images/ptz1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/ptz1.gif -------------------------------------------------------------------------------- /ipcam/static/images/ptz2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/ptz2.gif -------------------------------------------------------------------------------- /ipcam/static/images/ptz3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/ptz3.gif -------------------------------------------------------------------------------- /ipcam/static/ipcam_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/ipcam_small.png -------------------------------------------------------------------------------- /ipcam/static/tmp/_blank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/tmp/_blank.jpg -------------------------------------------------------------------------------- /ipcam/static/tmp/_digits.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/tmp/_digits.jpg -------------------------------------------------------------------------------- /ipcam/static/images/center.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/center.gif -------------------------------------------------------------------------------- /ipcam/static/images/down_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/down_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/left_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/left_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/loader.gif -------------------------------------------------------------------------------- /ipcam/static/images/player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/player.png -------------------------------------------------------------------------------- /ipcam/static/images/up_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/up_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/up_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/up_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/down_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/down_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/left_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/left_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/leftup_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/leftup_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/public/3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/3D.png -------------------------------------------------------------------------------- /ipcam/static/images/right_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/right_up.gif -------------------------------------------------------------------------------- /live555/UsageEnvironment/COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/live555/UsageEnvironment/COPYING -------------------------------------------------------------------------------- /ipcam/static/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/ajax-loader.gif -------------------------------------------------------------------------------- /ipcam/static/images/config/alarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/alarm.png -------------------------------------------------------------------------------- /ipcam/static/images/config/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/error.png -------------------------------------------------------------------------------- /ipcam/static/images/config/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/smile.png -------------------------------------------------------------------------------- /ipcam/static/images/config/tips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/tips.png -------------------------------------------------------------------------------- /ipcam/static/images/config/wait.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/wait.gif -------------------------------------------------------------------------------- /ipcam/static/images/leftdown_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/leftdown_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/leftup_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/leftup_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/public/fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/fixed.png -------------------------------------------------------------------------------- /ipcam/static/images/public/speak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/speak.png -------------------------------------------------------------------------------- /ipcam/static/images/right_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/right_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/rightdown_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/rightdown_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/rightup_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/rightup_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/rightup_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/rightup_up.gif -------------------------------------------------------------------------------- /ipcam/static/images/config/Button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/Button.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndcut.png -------------------------------------------------------------------------------- /ipcam/static/images/icons-18-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/icons-18-black.png -------------------------------------------------------------------------------- /ipcam/static/images/icons-18-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/icons-18-white.png -------------------------------------------------------------------------------- /ipcam/static/images/icons-36-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/icons-36-black.png -------------------------------------------------------------------------------- /ipcam/static/images/icons-36-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/icons-36-white.png -------------------------------------------------------------------------------- /ipcam/static/images/leftdown_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/leftdown_down.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/fast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/fast.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/goto.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/goto.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/pause.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/play.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/slow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/slow.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/stop.png -------------------------------------------------------------------------------- /ipcam/static/images/public/3D_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/3D_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/ptzhide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/ptzhide.png -------------------------------------------------------------------------------- /ipcam/static/images/public/ptzshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/ptzshow.png -------------------------------------------------------------------------------- /ipcam/static/images/rightdown_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/rightdown_down.gif -------------------------------------------------------------------------------- /live555/BasicUsageEnvironment/COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/live555/BasicUsageEnvironment/COPYING -------------------------------------------------------------------------------- /ipcam/static/images/config/Scrollvol1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/Scrollvol1.png -------------------------------------------------------------------------------- /ipcam/static/images/config/scrollvol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/scrollvol.png -------------------------------------------------------------------------------- /ipcam/static/images/config/timeIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/timeIcon.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/prickline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/prickline.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode1.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode10.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode11.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode2.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode3.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode4.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode5.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode6.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode7.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode8.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode9.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndcutbtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndcutbtn.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/H_point.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/H_point.cur -------------------------------------------------------------------------------- /ipcam/static/images/playback/H_point1.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/H_point1.cur -------------------------------------------------------------------------------- /ipcam/static/images/playback/buttonbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/buttonbg.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/capture.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/download.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/fastDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/fastDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/savefile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/savefile.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/slowDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/slowDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/soundDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/soundDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/speedvol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/speedvol.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/stopDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/stopDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/toolbar.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/volumebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/volumebg.png -------------------------------------------------------------------------------- /ipcam/static/images/public/button/mid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/button/mid.png -------------------------------------------------------------------------------- /ipcam/static/images/public/fixed_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/fixed_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/mainstream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/mainstream.png -------------------------------------------------------------------------------- /ipcam/static/images/public/original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/original.png -------------------------------------------------------------------------------- /ipcam/static/images/public/recordDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/recordDis.png -------------------------------------------------------------------------------- /ipcam/static/images/public/size16to9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/size16to9.png -------------------------------------------------------------------------------- /ipcam/static/images/public/sizeauto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/sizeauto.png -------------------------------------------------------------------------------- /ipcam/static/images/public/speakDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/speakDis.png -------------------------------------------------------------------------------- /ipcam/static/images/public/speakSel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/speakSel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/stopRecord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/stopRecord.png -------------------------------------------------------------------------------- /ipcam/static/images/public/substream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/substream.png -------------------------------------------------------------------------------- /ipcam/templates/visitor/logout.html: -------------------------------------------------------------------------------- 1 | $var title: 退出 2 | $var css: 3 | $var js: 4 | 5 | 已退出.... 重新登录 6 | -------------------------------------------------------------------------------- /live555/README: -------------------------------------------------------------------------------- 1 | For documentation and instructions for building this software, 2 | see 3 | -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndcutbtnon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndcutbtnon.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/buttonbgon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/buttonbgon.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/captureDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/captureDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/closesound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/closesound.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/opensound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/opensound.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/playbck_02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/playbck_02.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/playbck_03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/playbck_03.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/playbck_05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/playbck_05.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/playbck_07.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/playbck_07.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/savingfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/savingfile.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/scrollvol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/scrollvol.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/search_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/search_btn.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/timeExpand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/timeExpand.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/timeNarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/timeNarrow.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/volumebgon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/volumebgon.png -------------------------------------------------------------------------------- /ipcam/static/images/public/button/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/button/left.png -------------------------------------------------------------------------------- /ipcam/static/images/public/button/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/button/right.png -------------------------------------------------------------------------------- /ipcam/static/images/public/original_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/original_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/ptzhide_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/ptzhide_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/ptzshow_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/ptzshow_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/sizeauto_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/sizeauto_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/startRecord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/startRecord.png -------------------------------------------------------------------------------- /ipcam/templates/visitor/login_error.html: -------------------------------------------------------------------------------- 1 | $var title: 登录失败 2 | $var css: 3 | $var js: 4 | 5 | 登录失败!请 重新登录 6 | -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/fisheyeOSDbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/fisheyeOSDbg.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode10_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode10_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode11_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode11_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode1_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode1_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode2_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode2_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode3_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode3_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode4_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode4_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode5_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode5_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode6_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode6_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode7_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode7_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode8_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode8_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/fisheye/wndMode9_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/fisheye/wndMode9_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/downloadDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/downloadDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/localizerLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/localizerLeft.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/localizerMid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/localizerMid.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/savefileDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/savefileDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/search_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/search_icon.gif -------------------------------------------------------------------------------- /ipcam/static/images/playback/singleframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/singleframe.png -------------------------------------------------------------------------------- /ipcam/static/images/public/button/Button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/button/Button.png -------------------------------------------------------------------------------- /ipcam/static/images/public/mainstream_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/mainstream_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/size16to9_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/size16to9_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/public/substream_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/substream_sel.png -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/datePicker.gif -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/qs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/qs.gif -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/up.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/up.jpg -------------------------------------------------------------------------------- /ipcam/static/images/playback/localizerRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/localizerRight.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/picturedownload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/picturedownload.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/singleframeDis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/singleframeDis.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/timeExpand_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/timeExpand_sel.png -------------------------------------------------------------------------------- /ipcam/static/images/playback/timeNarrow_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/playback/timeNarrow_sel.png -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/down.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/down.jpg -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/left.gif -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/right.gif -------------------------------------------------------------------------------- /ipcam/static/images/config/timeInputWindowleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/timeInputWindowleft.png -------------------------------------------------------------------------------- /ipcam/static/images/config/timeInputWindowmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/timeInputWindowmid.png -------------------------------------------------------------------------------- /ipcam/static/images/config/timeInputWindowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/config/timeInputWindowright.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/midleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/midleft.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/midright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/midright.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/topleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/topleft.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/topmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/topmid.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/topright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/topright.png -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/header.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/header.gif -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/navLeft.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/navLeft.gif -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/bottomleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/bottomleft.png -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/bottommid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/bottommid.png -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/playback/navRight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/My97DatePicker/skin/playback/navRight.gif -------------------------------------------------------------------------------- /ipcam/static/images/public/PatrolFrame/bottomright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jack139/HF/HEAD/ipcam/static/images/public/PatrolFrame/bottomright.png -------------------------------------------------------------------------------- /streaming/streaming.h: -------------------------------------------------------------------------------- 1 | 2 | #define QLEN 5 3 | 4 | int passiveTCP(const char *service, int qlen); 5 | int connectTCP(const char *host, const char *service); 6 | 7 | 8 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/templates/admin/portal.html: -------------------------------------------------------------------------------- 1 | $def with (name, str) 2 | 3 | $var title: 首页 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

欢迎使用 Kam Cloud 监控云管理界面!

9 | 10 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/templates/kam/conf.html: -------------------------------------------------------------------------------- 1 | $def with (ret, conf) 2 | ret=$ret 3 | $if len(conf)>0: 4 | delay=$conf[0] 5 | motion=$conf[1] 6 | camid=$conf[2] 7 | auth=$conf[3] 8 | kamip=$conf[4] 9 | path=$conf[5] 10 | -------------------------------------------------------------------------------- /ipcam/templates/visitor/info.html: -------------------------------------------------------------------------------- 1 | $def with (info, goto="javascript:history.go(-1);", text2="返回") 2 | 3 | $var title: 提示信息 4 | $var css: 5 | $var js: 6 | 7 |

$info

8 | 9 |

$text2

-------------------------------------------------------------------------------- /ipcam/templates/admin/info.html: -------------------------------------------------------------------------------- 1 | $def with (info, goto="javascript:history.go(-1);", text2="返回") 2 | 3 | $var title: 提示信息 4 | $var css: 5 | $var js: 6 | $var name: 7 | 8 |

$info

9 | 10 |

$text2

-------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/config.js: -------------------------------------------------------------------------------- 1 | var langList = 2 | [ 3 | {name:'en', charset:'UTF-8'}, 4 | {name:'zh-cn', charset:'UTF-8'}, 5 | {name:'zh-tw', charset:'UTF-8'} 6 | ]; 7 | 8 | var skinList = 9 | [ 10 | {name:'playback', charset:'UTF-8'} 11 | ]; -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/skin/WdatePicker.css: -------------------------------------------------------------------------------- 1 | .Wdate{ 2 | border:#999 1px solid; 3 | height:20px; 4 | background:#fff url(datePicker.gif) no-repeat right; 5 | cursor:pointer; 6 | } 7 | 8 | .WdateFmtErr{ 9 | font-weight:bold; 10 | color:red; 11 | } -------------------------------------------------------------------------------- /ipcam/static/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 出错了 5 | 6 | 7 | 8 | 看到这个页面一定是你进行了不应该操作。 9 | 10 | 11 | -------------------------------------------------------------------------------- /ipcam/static/layout_html5.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | .dotb { 3 | border: 1px dotted #BBBBBB; 4 | text-align: center; 5 | padding: 5px; 6 | } 7 | 8 | .dotbt { 9 | border: 1px dotted #BBBBBB; 10 | text-align: center; 11 | padding: 5px; 12 | background-color: #DDDDDD; 13 | } 14 | -------------------------------------------------------------------------------- /ipcam/templates/admin/user.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, users) 2 | 3 | $var title: 用户管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

用户管理

9 | 10 |

添加新用户

11 | 12 | $for u in users: 13 |

$u[0]

14 | 15 | -------------------------------------------------------------------------------- /ipcam/templates/user/info.html: -------------------------------------------------------------------------------- 1 | $def with (info, goto="javascript:history.go(-1);", text2="返回", guide='0') 2 | 3 | $var title: 信息提示 4 | $var css: 5 | $var js: 6 | $var name: 7 | $var load: 8 | 9 | $if guide=='1': 10 |

相机添加向导:添加相机 >>> 设置相机参数 >>> 完成

11 | 12 |

$info

13 | 14 |

$text2

-------------------------------------------------------------------------------- /live555/groupsock/include/groupsock_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "groupsock" library 2 | // Copyright (c) 1996-2014 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _GROUPSOCK_VERSION_HH 5 | #define _GROUPSOCK_VERSION_HH 6 | 7 | #define GROUPSOCK_LIBRARY_VERSION_STRING "2014.05.27" 8 | #define GROUPSOCK_LIBRARY_VERSION_INT 1401148800 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /live555/liveMedia/include/liveMedia_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "liveMedia" library 2 | // Copyright (c) 1996-2014 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _LIVEMEDIA_VERSION_HH 5 | #define _LIVEMEDIA_VERSION_HH 6 | 7 | #define LIVEMEDIA_LIBRARY_VERSION_STRING "2014.05.27" 8 | #define LIVEMEDIA_LIBRARY_VERSION_INT 1401148800 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /live555/UsageEnvironment/include/UsageEnvironment_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "UsageEnvironment" library 2 | // Copyright (c) 1996-2014 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _USAGEENVIRONMENT_VERSION_HH 5 | #define _USAGEENVIRONMENT_VERSION_HH 6 | 7 | #define USAGEENVIRONMENT_LIBRARY_VERSION_STRING "2014.05.27" 8 | #define USAGEENVIRONMENT_LIBRARY_VERSION_INT 1401148800 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /ipcam/log_cut.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LOG_PATH="/usr/local/nginx/logs/" 4 | LOG_PATH_B="/usr/local/nginx/logs/backup/" 5 | TMP_PATH="/usr/local/nginx/html/static/tmp/" 6 | 7 | LOG_FILES=`ls $LOG_PATH*.log` 8 | 9 | TO_DATE=`date +%Y%m%d` 10 | 11 | rm -f $LOG_PATH_B/* 12 | 13 | for file in $LOG_FILES 14 | do 15 | cp $file $LOG_PATH_B`basename $file`.$TO_DATE 16 | cat /dev/null > $file 17 | done 18 | 19 | rm -f $TMP_PATH/download_* 20 | -------------------------------------------------------------------------------- /live555/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh: -------------------------------------------------------------------------------- 1 | // Version information for the "BasicUsageEnvironment" library 2 | // Copyright (c) 1996-2014 Live Networks, Inc. All rights reserved. 3 | 4 | #ifndef _BASICUSAGEENVIRONMENT_VERSION_HH 5 | #define _BASICUSAGEENVIRONMENT_VERSION_HH 6 | 7 | #define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_STRING "2014.05.27" 8 | #define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_INT 1401148800 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /ipcam/Makefile: -------------------------------------------------------------------------------- 1 | PY = python -m compileall -f 2 | 3 | CONFIG = config 4 | 5 | SRC = src 6 | SRC_CONF = $(SRC)/$(CONFIG) 7 | 8 | TARGETS = ipcam_hf 9 | TARGET_CONF = $(TARGETS)/$(CONFIG) 10 | 11 | all: clean $(TARGETS) 12 | 13 | $(TARGETS): 14 | $(PY) $(SRC) 15 | mkdir -p $(TARGET_CONF) 16 | mv $(SRC)/*.pyc $(TARGETS) 17 | mv $(SRC_CONF)/*.pyc $(TARGET_CONF) 18 | rm $(TARGET_CONF)/setting.pyc 19 | cp $(SRC_CONF)/setting.py $(TARGET_CONF) 20 | 21 | clean: 22 | rm -rf $(TARGETS) 23 | -------------------------------------------------------------------------------- /ipcam/static/xml/version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 3,0,3,18 5 | 3,0,3,18 6 | 6,3,2,8 7 | 1,1,1,9 8 | 2,1,11,0 9 | 1,0,2,11 10 | 11 | 12 | -------------------------------------------------------------------------------- /live555/rec/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 | -------------------------------------------------------------------------------- /live555/streaming/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 | -------------------------------------------------------------------------------- /ipcam/templates/user/download2.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, url) 2 | 3 | $var title: 下载录像 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

下载录像

10 | 11 |

您可以:

12 |

1. 在录像文件链接上点鼠标右键,选“另存为”保存文件;或者,

13 |

2. 直接点击录像连接观看(需要浏览器支持此功能)

14 |

录像文件下载链接

15 |

16 |

说明:下载的录像文件可以使用Windows自带的Media player播放,也可以下载专用播放软件播放。 17 | 点这里下载播放软件(K-Lite Codec Pack)。

18 | 19 | 20 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/config.macosx: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(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. 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 | -------------------------------------------------------------------------------- /sync/sync.h: -------------------------------------------------------------------------------- 1 | /* 2 | * RTSP recorder 3 | * 4 | * F8 Network (c) 2014, jack139 5 | * 6 | * Version: 1.0 7 | * 8 | */ 9 | #define MAXBUF 512 10 | #define HEADER_SIZE 2048 11 | #define JPG_BUF_SIZE 1024 12 | 13 | #define CACHE_SIZE 20 14 | #define CACHE_BUF_SIZE (1024*1024) 15 | 16 | #define P_MAIN 0 17 | #define P_SNAP 1 18 | 19 | extern char *cache_buf; 20 | 21 | extern char *http_req[2]; 22 | extern char k_kamip[20]; 23 | extern char k_camid[30]; 24 | extern char k_auth[30]; 25 | extern long k_delay; 26 | 27 | long long milli_time(void); 28 | -------------------------------------------------------------------------------- /live555/config.cygwin: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -DXLOCALE_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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/bar2.js: -------------------------------------------------------------------------------- 1 | print((new Date()).toString()) 2 | 3 | db = db.getSiblingDB('hf_db') 4 | db.auth('ipcam','ipcam'); 5 | 6 | var overall = db.stats() 7 | 8 | print('db: ' + tojson(overall["db"])); 9 | print('collections: ' + tojson(overall["collections"])); 10 | print('objects: ' + tojson(overall["objects"])); 11 | print('data size: ' + tojson(overall["dataSize"])); 12 | print('storage size: ' + tojson(overall["storageSize"])); 13 | print('indexes: ' + tojson(overall["indexes"])); 14 | print('index size: ' + tojson(overall["indexSize"])); 15 | print('file size: ' + tojson(overall["fileSize"])); 16 | 17 | -------------------------------------------------------------------------------- /ipcam/templates/visitor/sign_in.html: -------------------------------------------------------------------------------- 1 | $def with (uname, hash) 2 | 3 | $var title: 会员注册 4 | $var css: 5 | $var js: 6 | 7 |

会员注册

8 | 9 |
10 | 11 |

会员登录名:$uname

12 |

新登录密码:

13 |

再一次输入:

14 |

15 |

16 | 17 |

18 | 19 | -------------------------------------------------------------------------------- /live555/config.cygwin-for-vlc: -------------------------------------------------------------------------------- 1 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -DXLOCALE_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 | -------------------------------------------------------------------------------- /streaming/Makefile: -------------------------------------------------------------------------------- 1 | 2 | CC = gcc 3 | 4 | CFLAGS = -O1 5 | CFLAGS += -Wall 6 | CFLAGS += -W -Wstrict-prototypes 7 | #CFLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L 8 | 9 | LDFLAGS= $(CFLAGS) -L. 10 | 11 | INCLUDE = 12 | LIBS = 13 | OBJS = streaming.o passivesock.o passiveTCP.o 14 | 15 | TARGETS = streaming 16 | 17 | all: $(TARGETS) 18 | 19 | .c.o: 20 | $(CC) -c $(CFLAGS) $(INCLUDE) $< 21 | 22 | $(TARGETS): $(OBJS) 23 | $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ 24 | 25 | install: 26 | 27 | clean: 28 | rm -f *.o core a.out *~ $(TARGETS) *.exe *.core *.log 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /streaming/passiveTCP.c: -------------------------------------------------------------------------------- 1 | /* passiveTCP.c - passiveTCP */ 2 | 3 | int passivesock(const char *service, const char *transport, int qlen); 4 | 5 | /*------------------------------------------------------------------------ 6 | * passiveTCP - create a passive socket for use in a TCP server 7 | *------------------------------------------------------------------------ 8 | */ 9 | int 10 | passiveTCP(const char *service, int qlen) 11 | /* 12 | * Arguments: 13 | * service - service associated with the desired port 14 | * qlen - maximum server request queue length 15 | */ 16 | { 17 | return passivesock(service, "tcp", qlen); 18 | } 19 | -------------------------------------------------------------------------------- /ipcam/templates/admin/sys_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings) 2 | 3 | $var title: 系统设置 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

系统设置

9 | 10 |
11 |

用户注册: 12 | 允许 16 | 禁止 20 |

21 |

22 | 23 |

24 | 25 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /rec/kam.h: -------------------------------------------------------------------------------- 1 | /* 2 | * RTSP recorder 3 | * 4 | * F8 Network (c) 2014, jack139 5 | * 6 | * Version: 1.0 7 | * 8 | */ 9 | #include 10 | 11 | #define MAXBUF 512 12 | #define HEADER_SIZE 2048 13 | #define JPG_BUF_SIZE 1024 14 | 15 | #define CACHE_SIZE 20 16 | #define CACHE_BUF_SIZE (1024*1024) 17 | 18 | #define P_MAIN 0 19 | #define P_SNAP 1 20 | 21 | extern char *cache_buf; 22 | 23 | extern char *http_req[2]; 24 | extern char k_kamip[20]; 25 | extern char k_camid[30]; 26 | extern char k_auth[30]; 27 | extern long k_delay; 28 | extern char k_path[100]; 29 | 30 | extern pthread_mutex_t mutex_first; 31 | 32 | long long milli_time(void); -------------------------------------------------------------------------------- /ipcam/templates/visitor/sign_up.html: -------------------------------------------------------------------------------- 1 | $def with (hash1) 2 | 3 | $var title: 会员注册 4 | $var css: 5 | $var js: 6 | 7 |

会员注册

8 | 9 |
10 | 11 |

请输入您的email地址: 12 | (请输入可用的信箱,稍后系统将进行邮件确认)

13 |

输入验证码: 14 |

15 |

16 | 17 |

18 | 19 | -------------------------------------------------------------------------------- /ipcam/templates/admin/user_new.html: -------------------------------------------------------------------------------- 1 | $def with (name, str) 2 | 3 | $var title: 添加用户 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

添加用户

9 | 10 |
11 |

用户名:

12 |

密码:

13 |

用户状态: 正常 14 | 停用

15 |

16 |

17 | 18 |

19 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /rec/Makefile: -------------------------------------------------------------------------------- 1 | # Check the following : 2 | 3 | CC = gcc 4 | 5 | #CFLAGS = -O1 -g -DDEBUG2 6 | CFLAGS = -O1 7 | CFLAGS += -Wall 8 | CFLAGS += -W -Wstrict-prototypes 9 | #CFLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L 10 | #CFLAGS += -DLINUX 11 | 12 | LIBS = -lpthread 13 | INCLUDE = 14 | 15 | LDFLAGS= $(CFLAGS) -L. 16 | 17 | LIBOBJS = kam.o vaap264.o http_lib.o 18 | 19 | TARGETS = rec 20 | 21 | all: $(TARGETS) 22 | 23 | .c.o: 24 | $(CC) -c $(CFLAGS) $(INCLUDE) $< 25 | 26 | $(TARGETS): $(LIBOBJS) 27 | $(CC) $(LDFLAGS) $(LIBOBJS) $(LIBS) -o $@ 28 | 29 | clean: 30 | rm -f $(TARGETS) 31 | rm -f *.tgz 32 | rm -f *.o 33 | rm -f *~ 34 | rm -f #* 35 | rm -f core 36 | -------------------------------------------------------------------------------- /sync/Makefile: -------------------------------------------------------------------------------- 1 | # Check the following : 2 | 3 | CC = gcc 4 | 5 | #CFLAGS = -O1 -g -DDEBUG2 6 | CFLAGS = -O1 7 | CFLAGS += -Wall 8 | CFLAGS += -W -Wstrict-prototypes 9 | #CFLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L 10 | CFLAGS += -DLINUX 11 | 12 | LIBS = -lpthread 13 | INCLUDE = 14 | 15 | LDFLAGS= $(CFLAGS) -L. 16 | 17 | LIBOBJS = sync.o http_lib.o 18 | 19 | TARGETS = sync_kam 20 | 21 | all: $(TARGETS) 22 | 23 | .c.o: 24 | $(CC) -c $(CFLAGS) $(INCLUDE) $< 25 | 26 | $(TARGETS): $(LIBOBJS) 27 | $(CC) $(LDFLAGS) $(LIBOBJS) $(LIBS) -o $@ 28 | 29 | clean: 30 | rm -f $(TARGETS) 31 | rm -f *.tgz 32 | rm -f *.o 33 | rm -f *~ 34 | rm -f #* 35 | rm -f core 36 | -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/lang/en.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "Invalid date or the date out of range,redo or not?", 3 | aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4 | aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], 5 | aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 6 | aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], 7 | clearStr: "Clear", 8 | todayStr: "Today", 9 | okStr: "OK", 10 | updateStr: "OK", 11 | timeStr: "Time", 12 | quickStr: "Quick Selection", 13 | err_1: 'MinDate Cannot be bigger than MaxDate!' 14 | } -------------------------------------------------------------------------------- /ipcam/templates/admin/self_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings) 2 | 3 | $var title: 帐户设置 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

帐户设置

9 | 10 |
11 | 12 |

用户名:$settings['uname']

13 |

用户等级:$str

14 |

现登录密码:

15 |

新登录密码:

16 |

再一次输入:

17 |

18 |

19 | 20 |

21 | 22 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/templates/user/alert_info.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, cam_name, time, alert) 2 | 3 | $var title: 报警内容 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

报警内容

10 | 11 | 12 |

相机:$cam_name

13 |

时间:$time

14 |

报警类型: 15 | $if alert['type']=='motion': 16 | 移动监测 17 | $else: 18 | 相机故障 19 |

20 |

报警通知: 21 | $if alert['sent']==1: 22 | 已发送 23 | $elif alert['sent']==-1: 24 | 发送失败(邮件地址问题) 25 | $else: 26 | 未发送 27 |

28 | $if alert['type']=='motion': 29 |

快照

30 | 31 | 32 |

返回

33 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/templates/user/alert_log.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, alertids) 2 | 3 | $var title: 报警记录 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

报警记录

10 | 11 |

返回

12 |

查询到最近的 $len(alertids) 条报警记录

13 | 14 | 15 | 16 | $for l in alertids: 17 | 25 | $if loop.index%4==0: 26 | 27 | 28 | 29 |
18 | $if l[3]=='motion': 19 |
【移动监测】 时间:$l[1]
20 | 22 | $else: 23 | 24 |
30 | -------------------------------------------------------------------------------- /ipcam/templates/admin/order_new.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, order) 2 | 3 | $var title: 添加充值单 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

添加充值单

9 | 10 |
11 | 12 |

充值串号:$order

13 |

淘宝订单编号:

14 |

充值数量:积分

15 |

当前状态: 锁定(已付款,未收货) 16 | 可用(已确认收货)

17 |

18 |

19 | 20 |

21 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /mongo_server: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | DB_PATH="/usr/local/data/db/" 5 | LOG_PATH="/usr/local/data/mongodb.log" 6 | 7 | 8 | start() { 9 | mongod --fork --dbpath $DB_PATH --logpath $LOG_PATH --auth 10 | return 0 11 | } 12 | 13 | stop() { 14 | mongod --shutdown --dbpath $DB_PATH 15 | return 0 16 | } 17 | 18 | status() { 19 | ps -ef|grep mongo 20 | return 0 21 | } 22 | 23 | repair() { 24 | mongod --repair --dbpath=$DB_PATH 25 | } 26 | 27 | case "$1" in 28 | start) 29 | start 30 | RETVAL=$? 31 | ;; 32 | stop) 33 | stop 34 | RETVAL=$? 35 | ;; 36 | status) 37 | status 38 | RETVAL=$? 39 | ;; 40 | repair) 41 | repair 42 | RETVAL=$? 43 | ;; 44 | *) 45 | echo $"Usage: my_mongo {start|stop|status|repair}" 46 | RETVAL=2 47 | ;; 48 | esac 49 | 50 | exit $RETVAL 51 | -------------------------------------------------------------------------------- /ipcam/root@hf.f8kam.com: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # 4 | 5 | import sys 6 | import shutil, os 7 | from config import setting 8 | 9 | 10 | if __name__=='__main__': 11 | if len(sys.argv)==1: 12 | print "usage: backbone.py " 13 | sys.exit(2) 14 | 15 | camid=sys.argv[1] 16 | 17 | parent = setting.snap_store_path 18 | 19 | t_dirs = os.listdir("%s/%s" % (parent, camid)) 20 | t_dirs.sort() 21 | n=0 22 | l=0 23 | for d in t_dirs: 24 | if d=='capture': 25 | continue 26 | t_files = os.listdir("%s/%s/%s" % (parent, camid, d)) 27 | for f in t_files: 28 | n += 1 29 | os.remove('%s/%s/%s/%s' % (parent, camid, d, f)) 30 | os.rmdir('%s/%s/%s' % (parent, camid, d)) 31 | if n/10000>l: 32 | l = n/10000 33 | print '%s - %d files removed' % (camid, n) 34 | 35 | 36 | -------------------------------------------------------------------------------- /ipcam/templates/admin/kam.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, kams, cat) 2 | 3 | $var title: Kam相机管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

Kam相机管理

9 | 10 |

添加新相机 11 | 所有相机 12 | 锁定的相机 13 | 可用的相机(未使用) 14 | 已使用的相机 15 |

16 | 17 |

18 | $if cat==0: 所有相机 19 | $elif cat==1: 锁定的相机(已付款,未收货) 20 | $elif cat==2: 可用的相机(已确认收货,未使用) 21 | $elif cat==3: 已在使用的相机 22 |

23 | 24 | $for u in kams: 25 |

26 | $u[0] 设备串号:$u[2] ($u[3]) 27 | $if u[4]=="kam4a": 28 | ------- Kam4A 29 |

30 | -------------------------------------------------------------------------------- /ipcam/templates/admin/user_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings, reg_time) 2 | 3 | $var title: 用户管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

用户管理

9 | 10 |
11 | 12 |

用户名:$settings['uname']

13 |

全名:$settings['full_name']

14 |

注册时间:$reg_time

15 |

用户等级:$settings['privilege']

16 |

用户状态: 正常 19 | 停用

22 |

23 |

24 | 25 |

26 | -------------------------------------------------------------------------------- /live555/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 | -------------------------------------------------------------------------------- /ipcam/templates/admin/order.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, orders, cat) 2 | 3 | $var title: 充值管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

充值管理

9 | 10 |

添加新充值单 11 | 所有订单 12 | 锁定的订单 13 | 可用的订单 14 | 已充值的订单 15 | 过期的订单 16 |

17 | 18 |

19 | $if cat==0: 所有订单 20 | $elif cat==1: 锁定的订单(已付款,未收货) 21 | $elif cat==2: 可用的订单(已确认收货) 22 | $elif cat==4: 已充值的订单 23 | $elif cat==3: 过期的订单 24 |

25 | 26 | $for u in orders: 27 |

28 | $u[0] 积分:$u[2] 29 |

30 | 31 | -------------------------------------------------------------------------------- /ipcam/test_snap.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | import sys,os,time 5 | 6 | if len(sys.argv)<2: 7 | print "usage: test_snap.py " 8 | sys.exit(2) 9 | 10 | kam_cmd=sys.argv[1] 11 | 12 | path='/var/data2/snap_store' 13 | 14 | a=os.listdir(path) 15 | a.remove('535e1a5c1ecffb2fa372fd7d') # this is a camera not used in HF system 16 | 17 | if kam_cmd=='show' or kam_cmd=='check': 18 | last_sub=int(time.time()/600) 19 | for i in a: 20 | sub='%s/%s' % (path, i) 21 | b=os.listdir(sub) 22 | if 'capture' in b: 23 | b.remove('capture') 24 | b.sort() 25 | sub2='%s/%s' % (sub, b[-1]) 26 | c=os.listdir(sub2) 27 | if kam_cmd=='show' or last_sub-int(b[-1])>3: 28 | print "%s - %d, %s - %d, (%d)" % (i, len(b), b[-1], len(c), last_sub-int(b[-1])) 29 | else: 30 | print "usage: test_snap.py " 31 | sys.exit(2) 32 | 33 | -------------------------------------------------------------------------------- /live555/diff.BasicUsageEnvironment.0702: -------------------------------------------------------------------------------- 1 | diff -r -a -b -x '*.o' -x '*.a' -x Makefile BasicUsageEnvironment/BasicTaskScheduler0.cpp /home/Administrator/live555/BasicUsageEnvironment/BasicTaskScheduler0.cpp 2 | 20d19 3 | < #include 4 | 82d80 5 | < fflush(stdout); 6 | diff -r -a -b -x '*.o' -x '*.a' -x Makefile BasicUsageEnvironment/BasicUsageEnvironment.cpp /home/Administrator/live555/BasicUsageEnvironment/BasicUsageEnvironment.cpp 7 | 58c58 8 | < fprintf(stdout, "%s", str); 9 | --- 10 | > fprintf(stderr, "%s", str); 11 | 63c63 12 | < fprintf(stdout, "%d", i); 13 | --- 14 | > fprintf(stderr, "%d", i); 15 | 68c68 16 | < fprintf(stdout, "%u", u); 17 | --- 18 | > fprintf(stderr, "%u", u); 19 | 73c73 20 | < fprintf(stdout, "%f", d); 21 | --- 22 | > fprintf(stderr, "%f", d); 23 | 78c78 24 | < fprintf(stdout, "%p", p); 25 | --- 26 | > fprintf(stderr, "%p", p); 27 | -------------------------------------------------------------------------------- /ipcam/templates/visitor/login.html: -------------------------------------------------------------------------------- 1 | $def with (signup) 2 | 3 | $var title: 登录 4 | $var css: 5 | $var js: 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 27 | 28 | 29 |
用户名
密码
 
30 |
31 | 32 |

33 |
34 | -------------------------------------------------------------------------------- /ipcam/templates/user/settings_add_kam.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, hasKam4a) 2 | 3 | $var title: 添加Kam相机 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

相机添加向导: 添加相机 >>> 设置相机参数 >>> 完成

10 | 11 |

添加Kam相机

12 | 13 |
14 | 15 |

Kam相机串号:

16 |

17 |

18 |

19 | 20 |

添加Kam4A相机

21 |
22 | 23 |

系统将自动生成Kam4A串号,添加完成后可以在“相机设置”里找到串号

24 |

25 |

26 | -------------------------------------------------------------------------------- /live555/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 | cd liveMedia 14 | /bin/rm -f Makefile 15 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 16 | 17 | cd ../groupsock 18 | /bin/rm -f Makefile 19 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 20 | 21 | cd ../UsageEnvironment 22 | /bin/rm -f Makefile 23 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 24 | 25 | cd ../BasicUsageEnvironment 26 | /bin/rm -f Makefile 27 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 28 | 29 | cd ../rec 30 | /bin/rm -f Makefile 31 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 32 | 33 | cd ../streaming 34 | /bin/rm -f Makefile 35 | cat Makefile.head ../config.$1 Makefile.tail > Makefile 36 | 37 | cd .. 38 | /bin/rm -f Makefile 39 | cat Makefile.head config.$1 Makefile.tail > Makefile 40 | -------------------------------------------------------------------------------- /live555/rec/kam.h: -------------------------------------------------------------------------------- 1 | /* 2 | * RTSP recorder 3 | * 4 | * F8 Network (c) 2014, jack139 5 | * 6 | * Version: 1.0 7 | * 8 | */ 9 | #include 10 | 11 | #define MAXBUF 512 12 | #define HEADER_SIZE 2048 13 | #define JPG_BUF_SIZE 1024 14 | 15 | #define CACHE_SIZE 20 16 | #define CACHE_BUF_SIZE (1024*1024) 17 | 18 | #define P_MAIN 0 19 | #define P_SNAP 1 20 | 21 | extern char kam_server[30]; 22 | extern int init; 23 | 24 | extern char kamid[15]; 25 | extern int k_motion_detect; 26 | extern char g_tmp[200]; 27 | 28 | extern char *cache_buf; 29 | 30 | extern char *http_req[2], *jpg_buf; 31 | extern char k_kamip[20]; 32 | extern char k_camid[30]; 33 | extern char k_auth[30]; 34 | extern long k_delay; 35 | extern char k_path[100]; 36 | 37 | extern pthread_mutex_t mutex_first; 38 | 39 | long long milli_time(void); 40 | char *date_str(void); 41 | int hand_shake(char *server_to_hand); 42 | int conf(void); 43 | int malloc_all(void); 44 | void free_all(void); 45 | -------------------------------------------------------------------------------- /ipcam/templates/user/settings_cams_list.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, ipcams, tick) 2 | 3 | $var title: 相机设置 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

相机设置

10 |

选择要设置的相机 11 | 添加新相机 12 |

13 | 14 | $for l in ipcams: 15 | 16 | 17 | 23 | 29 | 35 | 36 | 37 |
$l[0] 18 | $if tick-l[2]>600: 19 | 网络中断,请检查! 20 | $else: 21 | 网络正常 22 | 24 | $if l[3]>0: 25 | 录像中 ... 26 | $else: 27 | 停止录像 28 | 30 | $if l[5]>0: 31 | 移动侦测中 ... 32 | $else: 33 | 停止侦测 34 | $l[4]
38 | 39 | -------------------------------------------------------------------------------- /live555/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 | STREAM = streaming 9 | REC = rec 10 | 11 | all: 12 | cd $(LIVEMEDIA_DIR) ; $(MAKE) 13 | cd $(GROUPSOCK_DIR) ; $(MAKE) 14 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) 15 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) 16 | cd $(STREAM) ; $(MAKE) 17 | cd $(REC) ; $(MAKE) 18 | 19 | install: 20 | 21 | clean: 22 | cd $(LIVEMEDIA_DIR) ; $(MAKE) clean 23 | cd $(GROUPSOCK_DIR) ; $(MAKE) clean 24 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 25 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 26 | cd $(STREAM) ; $(MAKE) clean 27 | cd $(REC) ; $(MAKE) clean 28 | 29 | distclean: clean 30 | -rm -f $(LIVEMEDIA_DIR)/Makefile $(GROUPSOCK_DIR)/Makefile \ 31 | $(USAGE_ENVIRONMENT_DIR)/Makefile $(BASIC_USAGE_ENVIRONMENT_DIR)/Makefile \ 32 | $(STREAM)/Makefile Makefile $(REC)/Makefile Makefile 33 | -------------------------------------------------------------------------------- /ipcam/static/css/base.css: -------------------------------------------------------------------------------- 1 | /*全站级css,轻易不可修改,修改后需要全面测试*/ 2 | * {margin:0;padding:0;} 3 | html {width:100%;height:100%;font-size:12px;font-family:Arial, Helvetica, sans-serif; -webkit-text-size-adjust: none; background:#ffffff;} 4 | .left {float:left;} 5 | .right {float:right;} 6 | .clear {clear:both;} 7 | .paddingleft5 {padding-left:5px;} 8 | .paddingleft10 {padding-left:10px;} 9 | .marginleft10 {margin-left:10px;} 10 | .marginright10 {margin-right:10px;} 11 | .margintop10 {margin-top:10px;} 12 | .inputwidth {width:196px; font-size:12px;} 13 | .selectwidth {width:150px; font-size:12px;} 14 | .mousepointer {cursor:pointer;} 15 | .pluginLink {color: #FFFFFF;font-size:16px;text-decoration:underline;cursor:pointer;} 16 | .pluginLinkSel {color: #0FFFFF;font-size:16px;text-decoration:underline;cursor:pointer;} 17 | .widthpercent100 {width:100%;} 18 | .displaynone {display:none;} 19 | .plugin0 {height:0px;margin:25px 0 0 10px;} 20 | .fontnormal {font-size:12px;font-family:Arial, Helvetica, sans-serif;-webkit-text-size-adjust:none;} 21 | .bordercollapse {border-collapse:collapse;} 22 | .textalignright {text-align:right;} -------------------------------------------------------------------------------- /live555/streaming/DynamicRTSPServer.hh: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1996-2014, Live Networks, Inc. All rights reserved 2 | // A subclass of "RTSPServer" that creates "ServerMediaSession"s on demand, 3 | // based on whether or not the specified stream name exists as a file 4 | // Header file 5 | 6 | #ifndef _DYNAMIC_RTSP_SERVER_HH 7 | #define _DYNAMIC_RTSP_SERVER_HH 8 | 9 | #ifndef _RTSP_SERVER_SUPPORTING_HTTP_STREAMING_HH 10 | #include "RTSPServer.hh" 11 | #endif 12 | 13 | class DynamicRTSPServer: public RTSPServer { 14 | public: 15 | static DynamicRTSPServer* createNew(UsageEnvironment& env, Port ourPort, 16 | UserAuthenticationDatabase* authDatabase, 17 | unsigned reclamationTestSeconds = 65); 18 | 19 | protected: 20 | DynamicRTSPServer(UsageEnvironment& env, int ourSocket, Port ourPort, 21 | UserAuthenticationDatabase* authDatabase, unsigned reclamationTestSeconds); 22 | // called only by createNew(); 23 | virtual ~DynamicRTSPServer(); 24 | 25 | protected: // redefined virtual functions 26 | virtual ServerMediaSession* lookupServerMediaSession(char const* streamName); 27 | }; 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ipcam/templates/admin/kam_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings) 2 | 3 | $var title: Kam相机管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

Kam相机管理

9 | 10 |
11 | 12 |

相机串号:$settings[1]

13 |

备注:$settings[2]

14 |

硬件串号:$settings[3]

15 |

文件服务器:$settings[4]

16 |

当前状态: 17 | $if settings[6]==1: 18 | 可用 19 | $if settings[7]==1: 20 | ,未使用 21 | $else: 22 | ,已在使用 23 | $else: 24 | 锁定 27 | 可用

30 |

最近握手:$settings[5]

31 |

32 |

33 | $if settings[6]==0: 34 | 35 | 36 |

37 |
38 | -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u786E\u5B9A", 10 | updateStr: "\u786E\u5B9A", 11 | timeStr: "\u65F6\u95F4", 12 | quickStr: "\u5FEB\u901F\u9009\u62E9", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/lang/zh-tw.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u78BA\u5B9A", 10 | updateStr: "\u78BA\u5B9A", 11 | timeStr: "\u6642\u9593", 12 | quickStr: "\u5FEB\u901F\u9078\u64C7", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /ipcam/templates/admin/order_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings) 2 | 3 | $var title: 用户管理 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

用户管理

9 | 10 |
11 | 12 |

充值串号:$settings[1]

13 |

淘宝订单编号:$settings[2]

14 |

充值数量:$settings[4] 积分

15 |

当前状态: 16 | $if settings[3]==-1: 已充值 17 | $elif settings[3]==1: 可用(已确认收货) 18 | $else: 19 | 锁定 22 | 可用

25 |

26 | $if settings[3]==-1: 27 | 充值时间: 28 | $else: 29 | 有效期: 30 | $settings[5] 31 |

32 |

33 |

34 | $if settings[3]==0: 35 | 36 | 37 |

38 | 39 |
40 | -------------------------------------------------------------------------------- /live555/config.iphoneos: -------------------------------------------------------------------------------- 1 | # Change the following version number, if necessary, before running "genMakefiles iphoneos" 2 | IOS_VERSION = 6.1 3 | 4 | DEVELOPER_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer 5 | TOOL_PATH = $(DEVELOPER_PATH)/usr/bin 6 | SDK_PATH = $(DEVELOPER_PATH)/SDKs 7 | SDK = $(SDK_PATH)/iPhoneOS$(IOS_VERSION).sdk 8 | 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) 9 | C = c 10 | C_COMPILER = $(TOOL_PATH)/gcc 11 | C_FLAGS = $(COMPILE_OPTS) 12 | CPP = cpp 13 | CPLUSPLUS_COMPILER = $(TOOL_PATH)/g++ 14 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 15 | OBJ = o 16 | LINK = $(TOOL_PATH)/g++ -o 17 | LINK_OPTS = -L. -arch armv7 --sysroot=$(SDK) -L$(SDK)/usr/lib/system 18 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 19 | LIBRARY_LINK = libtool -s -o 20 | LIBRARY_LINK_OPTS = 21 | LIB_SUFFIX = a 22 | LIBS_FOR_CONSOLE_APPLICATION = 23 | LIBS_FOR_GUI_APPLICATION = 24 | EXE = 25 | -------------------------------------------------------------------------------- /ipcam/templates/user/shadow_setting.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, ipcams, shadow) 2 | 3 | $var title: 权限设置 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

影子用户 $name#$shadow 权限设置

10 | 11 |
12 | 13 | 14 | 15 | 如果允许影子用户登录,请设置登录密码;如果不允许影子用户登录,请清空密码并保存。 16 |

用户 $name#$shadow 17 | 的登录密码:

18 | 19 | 20 | $for l in ipcams[0]: 21 | 22 | 35 | 36 |
23 | 24 | 允许 28 | 禁止 32 | 33 | $l[0] 34 |
37 | 38 |

39 | 40 |

41 | -------------------------------------------------------------------------------- /live555/config.iphone-simulator: -------------------------------------------------------------------------------- 1 | # Change the following version number, if necessary, before running "genMakefiles iphoneos" 2 | IOS_VERSION = 6.1 3 | 4 | DEVELOPER_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer 5 | TOOL_PATH = $(DEVELOPER_PATH)/usr/bin 6 | SDK_PATH = $(DEVELOPER_PATH)/SDKs 7 | SDK = $(SDK_PATH)/iPhoneSimulator$(IOS_VERSION).sdk 8 | 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 i386 --sysroot=$(SDK) 9 | C = c 10 | C_COMPILER = $(TOOL_PATH)/gcc 11 | C_FLAGS = $(COMPILE_OPTS) 12 | CPP = cpp 13 | CPLUSPLUS_COMPILER = $(TOOL_PATH)/g++ 14 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall 15 | OBJ = o 16 | LINK = $(TOOL_PATH)/g++ -o 17 | LINK_OPTS = -L. -arch i386 --sysroot=$(SDK) -L$(SDK)/usr/lib/system 18 | CONSOLE_LINK_OPTS = $(LINK_OPTS) 19 | LIBRARY_LINK = libtool -s -o 20 | LIBRARY_LINK_OPTS = 21 | LIB_SUFFIX = a 22 | LIBS_FOR_CONSOLE_APPLICATION = 23 | LIBS_FOR_GUI_APPLICATION = 24 | EXE = 25 | -------------------------------------------------------------------------------- /ipcam/static/jquery.waitforimages.min.js: -------------------------------------------------------------------------------- 1 | /*! waitForImages jQuery Plugin 2013-07-20 */ 2 | !function(a){var b="waitForImages";a.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage","cursor"]},a.expr[":"].uncached=function(b){if(!a(b).is('img[src!=""]'))return!1;var c=new Image;return c.src=b.src,!c.complete},a.fn.waitForImages=function(c,d,e){var f=0,g=0;if(a.isPlainObject(arguments[0])&&(e=arguments[0].waitForAll,d=arguments[0].each,c=arguments[0].finished),c=c||a.noop,d=d||a.noop,e=!!e,!a.isFunction(c)||!a.isFunction(d))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var h=a(this),i=[],j=a.waitForImages.hasImageProperties||[],k=/url\(\s*(['"]?)(.*?)\1\s*\)/g;e?h.find("*").addBack().each(function(){var b=a(this);b.is("img:uncached")&&i.push({src:b.attr("src"),element:b[0]}),a.each(j,function(a,c){var d,e=b.css(c);if(!e)return!0;for(;d=k.exec(e);)i.push({src:d[2],element:b[0]})})}):h.find("img:uncached").each(function(){i.push({src:this.src,element:this})}),f=i.length,g=0,0===f&&c.call(h[0]),a.each(i,function(e,i){var j=new Image;a(j).on("load."+b+" error."+b,function(a){return g++,d.call(i.element,g,f,"load"==a.type),g==f?(c.call(h[0]),!1):void 0}),j.src=i.src})})}}(jQuery); -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/user/settings_user.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, settings) 2 | 3 | $var title: 帐户设置 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

帐户设置

10 | 11 |
12 | 13 |

用户名:$settings['uname']

14 |

全名:

15 | 影子用户权限设置: 影子用户只能查看相机影像,不能修改相机设置。 16 |

影子用户1: $name#1

17 |

影子用户2: $name#2

18 |

影子用户3: $name#3

19 |

影子用户4: $name#4

20 |

影子用户5: $name#5

21 | 22 | 修改登录密码:如果不打算修改登录密码,以下可不填 23 |

现登录密码:

24 |

新登录密码:

25 |

再一次输入:

26 |

27 |

28 | 29 |

30 | 31 | -------------------------------------------------------------------------------- /ipcam/templates/visitor/article_faq.html: -------------------------------------------------------------------------------- 1 | $def with () 2 | 3 | $var title: 常见问题与解答 4 | $var css: 5 | $var js: 6 | 7 |

常见问题与解答 - FAQ

8 | 9 |
10 | 39 |
40 | 41 |

返回

-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/user/portal.html: -------------------------------------------------------------------------------- 1 | $def with (name, str) 2 | 3 | $var title: 首页 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

快捷链接

10 | 全屏现场影像 11 | 12 |

最新更新(2014-07-18)

13 | 14 |
1. 录像下载功能:点击页面上方的“录像下载”,选择相机和开始时间后,根据说明可下载录像文件。(ipcam管理用户可以下载,终端机用户不能下载)
15 |
2. 快速回放:在“录像回放”时,可调节播放速度。方法:在播放时,使用“右双三角”加速,使用“左双三角”减速。
16 | 17 |

在线帮助

18 | 19 |
20 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | char* strDup(char const* str); 26 | // Note: strDup(NULL) returns NULL 27 | 28 | char* strDupSize(char const* str); 29 | // Like "strDup()", except that it *doesn't* copy the original. 30 | // (Instead, it just allocates a string of the same size as the original.) 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /live555/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 2.1 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 | -------------------------------------------------------------------------------- /live555/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 -s $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).$(SHORT_LIB_SUFFIX) 35 | ln -s $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).so 36 | 37 | ##### Any additional, platform-specific rules come here: 38 | -------------------------------------------------------------------------------- /ipcam/src/config/mongosession.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from web.session import Store 5 | import time 6 | 7 | class MongoStore(Store): 8 | def __init__(self, db, collection_name): 9 | self.collection = db[collection_name] 10 | 11 | def __contains__(self, key): 12 | data = self.collection.find_one({'session_id':key}) 13 | return bool(data) 14 | 15 | def __getitem__(self, key): 16 | now = time.time() 17 | s = self.collection.find_one({'session_id':key}) 18 | if not s: 19 | raise KeyError 20 | else: 21 | s.update({'attime':now}) 22 | return s 23 | 24 | def __setitem__(self, key, value): 25 | now = time.time() 26 | 27 | value['attime'] = now 28 | 29 | s = self.collection.find_one({'session_id':key}) 30 | if s: 31 | value = dict(map(lambda x: (str(x[0]), x[1]), [(k,v) for (k,v) in value.iteritems() if k not in ['_id']])) 32 | s.update(**value) 33 | self.collection.save(s) 34 | else: 35 | self.collection.insert(value) 36 | 37 | def __delitem__(self, key): 38 | self.collection.remove({'session_id':key}) 39 | 40 | def cleanup(self, timeout): 41 | timeout = timeout/(24.0*60*60) #timedelta takes numdays as arg 42 | last_allowed_time = time.time() - timeout 43 | self.collection.remove({'attime' : { '$lt' : last_allowed_time}}) -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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), 28 | fFileSize(0) { 29 | fFileName = strDup(fileName); 30 | } 31 | 32 | FileServerMediaSubsession::~FileServerMediaSubsession() { 33 | delete[] (char*)fFileName; 34 | } 35 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/rec/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | REC = rec$(EXE) 4 | 5 | PREFIX = /usr/local 6 | ALL = $(REC) 7 | all: $(ALL) 8 | 9 | C_FLAGS += -O1 10 | C_FLAGS += -Wall 11 | C_FLAGS += -W -Wstrict-prototypes 12 | #C_FLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L 13 | #C_FLAGS += -DLINUX 14 | 15 | .$(C).$(OBJ): 16 | $(C_COMPILER) -c $(C_FLAGS) $< 17 | .$(CPP).$(OBJ): 18 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 19 | 20 | REC_OBJS = rec.$(OBJ) http_lib.$(OBJ) kam.$(OBJ) main.$(OBJ) 21 | 22 | rec.$(CPP): rec.hh kam.h 23 | 24 | USAGE_ENVIRONMENT_DIR = ../UsageEnvironment 25 | USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX) 26 | BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment 27 | BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX) 28 | LIVEMEDIA_DIR = ../liveMedia 29 | LIVEMEDIA_LIB = $(LIVEMEDIA_DIR)/libliveMedia.$(libliveMedia_LIB_SUFFIX) 30 | GROUPSOCK_DIR = ../groupsock 31 | GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX) 32 | LOCAL_LIBS = $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \ 33 | $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) 34 | LIBS = $(LOCAL_LIBS) $(LIBS_FOR_CONSOLE_APPLICATION) -lpthread 35 | 36 | $(REC): $(REC_OBJS) $(LOCAL_LIBS) 37 | $(LINK)$@ $(CONSOLE_LINK_OPTS) $(REC_OBJS) $(LIBS) 38 | 39 | 40 | clean: 41 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 42 | 43 | ##### Any additional, platform-specific rules come here: 44 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | #include "string.h" 23 | 24 | char* strDup(char const* str) { 25 | if (str == NULL) return NULL; 26 | size_t len = strlen(str) + 1; 27 | char* copy = new char[len]; 28 | 29 | if (copy != NULL) { 30 | memcpy(copy, str, len); 31 | } 32 | return copy; 33 | } 34 | 35 | char* strDupSize(char const* str) { 36 | if (str == NULL) return NULL; 37 | size_t len = strlen(str) + 1; 38 | char* copy = new char[len]; 39 | 40 | return copy; 41 | } 42 | 43 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2020, jack139. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/Makefile: -------------------------------------------------------------------------------- 1 | ##### Change the following for your environment: 2 | COMPILE_OPTS = $(INCLUDES) -I. -O -DSOCKLEN_T=socklen_t -DXLOCALE_NOT_USED=1 3 | C = c 4 | C_COMPILER = gcc 5 | C_FLAGS = $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__CYGWIN__ 6 | CPP = cpp 7 | CPLUSPLUS_COMPILER = c++ 8 | CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=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 -Bstatic 15 | LIB_SUFFIX = a 16 | LIBS_FOR_CONSOLE_APPLICATION = 17 | LIBS_FOR_GUI_APPLICATION = 18 | EXE = 19 | ##### End of variables to change 20 | 21 | LIVEMEDIA_DIR = liveMedia 22 | GROUPSOCK_DIR = groupsock 23 | USAGE_ENVIRONMENT_DIR = UsageEnvironment 24 | BASIC_USAGE_ENVIRONMENT_DIR = BasicUsageEnvironment 25 | 26 | STREAM = streaming 27 | REC = rec 28 | 29 | all: 30 | cd $(LIVEMEDIA_DIR) ; $(MAKE) 31 | cd $(GROUPSOCK_DIR) ; $(MAKE) 32 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) 33 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) 34 | cd $(STREAM) ; $(MAKE) 35 | cd $(REC) ; $(MAKE) 36 | 37 | install: 38 | 39 | clean: 40 | cd $(LIVEMEDIA_DIR) ; $(MAKE) clean 41 | cd $(GROUPSOCK_DIR) ; $(MAKE) clean 42 | cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 43 | cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE) clean 44 | cd $(STREAM) ; $(MAKE) clean 45 | cd $(REC) ; $(MAKE) clean 46 | 47 | distclean: clean 48 | -rm -f $(LIVEMEDIA_DIR)/Makefile $(GROUPSOCK_DIR)/Makefile \ 49 | $(USAGE_ENVIRONMENT_DIR)/Makefile $(BASIC_USAGE_ENVIRONMENT_DIR)/Makefile \ 50 | $(STREAM)/Makefile Makefile $(REC)/Makefile Makefile 51 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/src/config/url.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | urls = ( 5 | '/', 'Login', 6 | '/login', 'Login', 7 | '/logout', 'Reset', 8 | '/live2', 'LiveCam2', 9 | '/search', 'Search', 10 | '/settings_add_kam','SettingsAddKam', 11 | '/settings_del', 'SettingsDelCam', 12 | '/settings_cams', 'SettingsCamsList', 13 | '/settings', 'Settings', 14 | '/settings_user', 'SettingsUser', 15 | '/replay', 'Replay', 16 | '/alert_log', 'AlertQuery', 17 | '/alert_info', 'AlertInfo', 18 | '/snapshot', 'Snapshot', 19 | '/article', 'Aticle', 20 | '/shadow_setting', 'ShadowSetting', 21 | '/download', 'Download', 22 | 23 | '/admin/order', 'AdminOrder', 24 | '/admin/order_setting','AdminOrderSetting', 25 | '/admin/order_add', 'AdminOrderAdd', 26 | '/admin/order_del', 'AdminOrderDel', 27 | '/admin/kam', 'AdminKam', 28 | '/admin/kam_setting', 'AdminKamSetting', 29 | '/admin/kam_add', 'AdminKamAdd', 30 | '/admin/kam_del', 'AdminKamDel', 31 | '/admin/user', 'AdminUser', 32 | '/admin/user_setting', 'AdminUserSetting', 33 | '/admin/user_add', 'AdminUserAdd', 34 | '/admin/self_setting', 'AdminSelfSetting', 35 | '/admin/sys_setting', 'AdminSysSetting', 36 | '/admin/status', 'AdminStatus', 37 | '/admin/data', 'AdminData', 38 | 39 | '/kam/handshake', 'KamHandshake', 40 | '/kam/conf', 'KamConf', 41 | ) 42 | -------------------------------------------------------------------------------- /ipcam/templates/admin/status.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, info) 2 | 3 | $var title: 系统状态 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | 8 |

系统状态

9 | 10 |

$info['uptime']

11 | $for l in info['df_data']: 12 |

  $l

13 |
14 | 15 |

进程状态:

16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Web界面 $info['ipcam']
视频录像 $info['rec']
视频回放 $info['stream']
远程同步 $info['sync']
移动侦测 $info['detector']
守护进程 $info['daemon']
25 | 26 |

backbone日志:

27 | $for l in info['backbone_log']: 28 |

  $l

29 | 30 |

daemon日志:

31 | $for l in info['daemon_log']: 32 |

  $l

33 | 34 |

detector日志:

35 | $for l in info['detector_log']: 36 |

  $l

37 | 38 |

stream日志:

39 | $for l in info['stream_log']: 40 |

  $l

41 | 42 |

sync日志:

43 | $for l in info['sync_log']: 44 |

  $l

45 | 46 |

bar.js日志:

47 | $for l in info['barjs_log']: 48 |

  $l

49 | 50 |

Nginx error日志:

51 | $for l in info['error_log']: 52 |

  $l

53 | 54 |

uWSGI日志:

55 | $for l in info['uwsgi_log']: 56 |

  $l

57 | 58 |
-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/streaming/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | STREAMING = streaming$(EXE) 4 | 5 | PREFIX = /usr/local 6 | ALL = $(STREAMING) 7 | all: $(ALL) 8 | 9 | C_FLAGS += -O1 10 | C_FLAGS += -Wall 11 | C_FLAGS += -W -Wstrict-prototypes 12 | #C_FLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L 13 | #C_FLAGS += -DLINUX 14 | 15 | .$(C).$(OBJ): 16 | $(C_COMPILER) -c $(C_FLAGS) $< 17 | .$(CPP).$(OBJ): 18 | $(CPLUSPLUS_COMPILER) -c $(CPLUSPLUS_FLAGS) $< 19 | 20 | STREAMING_OBJS = streaming.$(OBJ) DynamicRTSPServer.$(OBJ) 21 | 22 | streaming.$(CPP): DynamicRTSPServer.hh 23 | DynamicRTSPServer.$(CPP): DynamicRTSPServer.hh 24 | 25 | USAGE_ENVIRONMENT_DIR = ../UsageEnvironment 26 | USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX) 27 | BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment 28 | BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX) 29 | LIVEMEDIA_DIR = ../liveMedia 30 | LIVEMEDIA_LIB = $(LIVEMEDIA_DIR)/libliveMedia.$(libliveMedia_LIB_SUFFIX) 31 | GROUPSOCK_DIR = ../groupsock 32 | GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX) 33 | LOCAL_LIBS = $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \ 34 | $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) 35 | LIBS = $(LOCAL_LIBS) $(LIBS_FOR_CONSOLE_APPLICATION) 36 | 37 | $(STREAMING): $(STREAMING_OBJS) $(LOCAL_LIBS) 38 | $(LINK)$@ $(CONSOLE_LINK_OPTS) $(STREAMING_OBJS) $(LIBS) 39 | 40 | 41 | clean: 42 | -rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~ 43 | 44 | ##### Any additional, platform-specific rules come here: 45 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/user/status.html: -------------------------------------------------------------------------------- 1 | $def with (name, str, info) 2 | 3 | $var title: 系统状态 4 | $var css: 5 | $var js: 6 | $var name: $str $name 7 | $var load: 8 | 9 |

系统状态

10 | 11 |

$info['uptime']

12 | $for l in info['df_data']: 13 |

  $l

14 |
15 | 16 |

进程状态:

17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
Web界面 $info['ipcam']
视频录像 $info['rec']
视频回放 $info['stream']
远程同步 $info['sync']
移动侦测 $info['detector']
守护进程 $info['daemon']
26 | 27 |

backbone日志:

28 | $for l in info['backbone_log']: 29 |

  $l

30 | 31 |

daemon日志:

32 | $for l in info['daemon_log']: 33 |

  $l

34 | 35 |

detector日志:

36 | $for l in info['detector_log']: 37 |

  $l

38 | 39 |

stream日志:

40 | $for l in info['stream_log']: 41 |

  $l

42 | 43 |

sync日志:

44 | $for l in info['sync_log']: 45 |

  $l

46 | 47 |

bar.js日志:

48 | $for l in info['barjs_log']: 49 |

  $l

50 | 51 |

Nginx error日志:

52 | $for l in info['error_log']: 53 |

  $l

54 | 55 |

uWSGI日志:

56 | $for l in info['uwsgi_log']: 57 |

  $l

58 | 59 |
-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/visitor/layout.html: -------------------------------------------------------------------------------- 1 | $def with (content) $content.title - Kam Cloud $if content.css: $for f in content.css.split(): $if content.js: $for f in content.js.split():

 
 
$:content
F8 Network 芙蓉捌网络科技 © 2013-2014 FAQ · 关于F8
Rev 1.3.04.01
-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 _ON_DEMAND_SERVER_MEDIA_SUBSESSION_HH 26 | #include "OnDemandServerMediaSubsession.hh" 27 | #endif 28 | 29 | class FileServerMediaSubsession: public OnDemandServerMediaSubsession { 30 | protected: // we're a virtual base class 31 | FileServerMediaSubsession(UsageEnvironment& env, char const* fileName, 32 | Boolean reuseFirstSource); 33 | virtual ~FileServerMediaSubsession(); 34 | 35 | protected: 36 | char const* fFileName; 37 | u_int64_t fFileSize; // if known 38 | }; 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /ipcam/static/My97DatePicker/My97DatePicker.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | My97DatePicker 7 | 8 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # 4 | 5 | import urllib2 6 | 7 | data= '' \ 8 | '1' \ 9 | 'true' \ 10 | '2' \ 11 | '500' \ 12 | '500' \ 13 | 'grid' \ 14 | '' \ 15 | '18' \ 16 | '22' \ 17 | '' \ 18 | '' \ 19 | '' \ 20 | 'false' \ 21 | '' \ 22 | '' \ 23 | '1true6050' \ 24 | '002202218018' \ 25 | '' 26 | 27 | try: 28 | opener = urllib2.build_opener(urllib2.HTTPHandler) 29 | request = urllib2.Request('http://192.168.100.20/PSIA/Custom/MotionDetection/1', data=data) 30 | request.add_header('Content-Type', 'application/x-www-form-urlencoded') 31 | request.add_header('Authorization', 'Basic YWRtaW46cGNhZG1pbg==') 32 | request.get_method = lambda: 'PUT' 33 | opener.open(request, timeout=5) 34 | except Exception,e: 35 | print "%s: %s" % (type(e), str(e)) 36 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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 | -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | 2 | user nobody; 3 | worker_processes 4; 4 | 5 | #error_log logs/error.log; 6 | #error_log logs/error.log notice; 7 | #error_log logs/error.log debug; 8 | 9 | pid logs/nginx.pid; 10 | 11 | 12 | events { 13 | worker_connections 1024; 14 | } 15 | 16 | 17 | http { 18 | include mime.types; 19 | default_type application/octet-stream; 20 | 21 | #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 22 | # '$status $body_bytes_sent "$http_referer" ' 23 | # '"$http_user_agent" "$http_x_forwarded_for"'; 24 | 25 | #access_log logs/access.log main; 26 | 27 | #rewrite_log on; 28 | 29 | sendfile on; 30 | #tcp_nopush on; 31 | 32 | #keepalive_timeout 0; 33 | keepalive_timeout 65; 34 | 35 | gzip on; 36 | 37 | server { 38 | listen 80; 39 | listen 443 ssl; 40 | server_name localhost; 41 | ssl_certificate /usr/local/nginx/conf/ssl/f8kam.crt; 42 | ssl_certificate_key /usr/local/nginx/conf/ssl/f8kam.key; 43 | 44 | access_log logs/access_80.log; 45 | 46 | location / { 47 | include uwsgi_params; 48 | uwsgi_pass unix:/tmp/uwsgi_80.sock; 49 | uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/ipcam_hf; 50 | uwsgi_param UWSGI_SCRIPT ipcam; 51 | } 52 | 53 | location /static/ { 54 | if (-f $request_filename) { 55 | rewrite ^/static/(.*)$ /static/$1 break; 56 | } 57 | } 58 | 59 | # redirect server error pages to the static page /50x.html 60 | # 61 | error_page 500 502 503 504 /50x.html; 62 | location = /50x.html { 63 | root html; 64 | } 65 | 66 | } 67 | 68 | 69 | } 70 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/BasicUsageEnvironment/Makefile.tail: -------------------------------------------------------------------------------- 1 | ##### End of variables to change 2 | 3 | NAME = libBasicUsageEnvironment 4 | LIB = $(NAME).$(LIB_SUFFIX) 5 | ALL = $(LIB) 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 -s $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).$(SHORT_LIB_SUFFIX) 41 | ln -s $(NAME).$(LIB_SUFFIX) $(DESTDIR)$(LIBDIR)/$(NAME).so 42 | 43 | ##### Any additional, platform-specific rules come here: 44 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/admin/layout.html: -------------------------------------------------------------------------------- 1 | $def with (content) $content.title - Kam Cloud $if content.css: $for f in content.css.split(): $if content.js: $for f in content.js.split():
$:content
F8 Network 芙蓉捌网络科技 © 2013-2014 FAQ · 关于F8
Rev 1.3.04.01
-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /ipcam/templates/user/layout.html: -------------------------------------------------------------------------------- 1 | $def with (content) $content.title - Kam Cloud $if content.css: $for f in content.css.split(): $if content.js: $for f in content.js.split():
$:content
F8 Network 芙蓉捌网络科技 © 2013-2014 FAQ · 关于F8
Rev 1.3.04.01
-------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | -------------------------------------------------------------------------------- /live555/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 2.1 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-2014 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 | --------------------------------------------------------------------------------