├── .gitignore ├── LICENSE ├── README.md └── capture ├── .gitignore ├── RTMPStuff.h ├── Release ├── .gitignore ├── avcodec-55.dll ├── avdevice-55.dll ├── avfilter-4.dll ├── avformat-55.dll ├── avutil-52.dll ├── libX264EncoderWrapper.so ├── libcrypto.dll ├── libfaac.dll ├── libgcc_s_dw2-1.dll ├── librtmp.dll ├── libssl.dll ├── opencv_core2410.dll ├── opencv_highgui2410.dll ├── opencv_imgproc2410.dll ├── postproc-52.dll ├── pthreadGC2.dll ├── swresample-0.dll └── swscale-2.dll ├── aac_encoder.cpp ├── aac_encoder.h ├── business.cpp ├── business.h ├── capture.cpp ├── capture.sln ├── capture.vcxproj ├── capture_audio.cpp ├── capture_audio.h ├── capture_video.cpp ├── capture_video.h ├── collect_sound.cpp ├── collect_sound.h ├── comm.h ├── convert.h ├── cscc.lib ├── filter_wrapper.cpp ├── filter_wrapper.h ├── libs ├── faac-1.28 │ ├── Makefile.am │ ├── common │ │ ├── Cfaac │ │ │ ├── AudioCoding.bmp │ │ │ ├── CRegistry.cpp │ │ │ ├── CRegistry.h │ │ │ ├── CTag.cpp │ │ │ ├── CTag.h │ │ │ ├── Cfaac.cpp │ │ │ ├── Cfaac.h │ │ │ ├── Cfaad.cpp │ │ │ ├── Cfaad.h │ │ │ ├── DecDialog.cpp │ │ │ ├── DecDialog.h │ │ │ ├── Email.bmp │ │ │ ├── EncDialog.cpp │ │ │ ├── EncDialog.h │ │ │ ├── FAAC.rc │ │ │ ├── Open.bmp │ │ │ ├── ReadMe.txt │ │ │ ├── TypeDef.h │ │ │ ├── id3v2.ico │ │ │ ├── mpeg4ip-v.bmp │ │ │ └── resource.h │ │ ├── Makefile.am │ │ └── mp4v2 │ │ │ ├── 3gp.cpp │ │ │ ├── Makefile.am │ │ │ ├── atom_amr.cpp │ │ │ ├── atom_avc1.cpp │ │ │ ├── atom_avcC.cpp │ │ │ ├── atom_d263.cpp │ │ │ ├── atom_damr.cpp │ │ │ ├── atom_dref.cpp │ │ │ ├── atom_elst.cpp │ │ │ ├── atom_enca.cpp │ │ │ ├── atom_encv.cpp │ │ │ ├── atom_free.cpp │ │ │ ├── atom_ftyp.cpp │ │ │ ├── atom_gmin.cpp │ │ │ ├── atom_hdlr.cpp │ │ │ ├── atom_hinf.cpp │ │ │ ├── atom_hnti.cpp │ │ │ ├── atom_href.cpp │ │ │ ├── atom_mdat.cpp │ │ │ ├── atom_mdhd.cpp │ │ │ ├── atom_meta.cpp │ │ │ ├── atom_mp4a.cpp │ │ │ ├── atom_mp4s.cpp │ │ │ ├── atom_mp4v.cpp │ │ │ ├── atom_mvhd.cpp │ │ │ ├── atom_ohdr.cpp │ │ │ ├── atom_root.cpp │ │ │ ├── atom_rtp.cpp │ │ │ ├── atom_s263.cpp │ │ │ ├── atom_sdp.cpp │ │ │ ├── atom_smi.cpp │ │ │ ├── atom_sound.cpp │ │ │ ├── atom_standard.cpp │ │ │ ├── atom_stbl.cpp │ │ │ ├── atom_stdp.cpp │ │ │ ├── atom_stsc.cpp │ │ │ ├── atom_stsd.cpp │ │ │ ├── atom_stsz.cpp │ │ │ ├── atom_stz2.cpp │ │ │ ├── atom_text.cpp │ │ │ ├── atom_tfhd.cpp │ │ │ ├── atom_tkhd.cpp │ │ │ ├── atom_treftype.cpp │ │ │ ├── atom_trun.cpp │ │ │ ├── atom_udta.cpp │ │ │ ├── atom_url.cpp │ │ │ ├── atom_urn.cpp │ │ │ ├── atom_video.cpp │ │ │ ├── atom_vmhd.cpp │ │ │ ├── atoms.h │ │ │ ├── descriptors.cpp │ │ │ ├── descriptors.h │ │ │ ├── isma.cpp │ │ │ ├── libmp4v2_st60.vcproj │ │ │ ├── mp4.cpp │ │ │ ├── mp4.h │ │ │ ├── mp4array.h │ │ │ ├── mp4atom.cpp │ │ │ ├── mp4atom.h │ │ │ ├── mp4common.h │ │ │ ├── mp4container.cpp │ │ │ ├── mp4container.h │ │ │ ├── mp4descriptor.cpp │ │ │ ├── mp4descriptor.h │ │ │ ├── mp4file.cpp │ │ │ ├── mp4file.h │ │ │ ├── mp4file_io.cpp │ │ │ ├── mp4info.cpp │ │ │ ├── mp4meta.cpp │ │ │ ├── mp4property.cpp │ │ │ ├── mp4property.h │ │ │ ├── mp4track.cpp │ │ │ ├── mp4track.h │ │ │ ├── mp4util.cpp │ │ │ ├── mp4util.h │ │ │ ├── mpeg4ip.h │ │ │ ├── mpeg4ip_version.h │ │ │ ├── mpeg4ip_win32.h │ │ │ ├── need_for_win32.c │ │ │ ├── ocidescriptors.cpp │ │ │ ├── ocidescriptors.h │ │ │ ├── odcommands.cpp │ │ │ ├── odcommands.h │ │ │ ├── qosqualifiers.cpp │ │ │ ├── qosqualifiers.h │ │ │ ├── rtphint.cpp │ │ │ ├── rtphint.h │ │ │ ├── virtual_io.cpp │ │ │ └── virtual_io.h │ ├── configure.in │ ├── docs │ │ ├── faac.html │ │ ├── libfaac.html │ │ └── libfaac.pdf │ ├── frontend │ │ ├── .cvsignore │ │ ├── Makefile.am │ │ ├── faac.sln │ │ ├── faac.vcproj │ │ ├── faacgui.rc │ │ ├── faacgui.sln │ │ ├── faacgui.vcproj │ │ ├── getopt.c │ │ ├── getopt.h │ │ ├── input.c │ │ ├── input.h │ │ ├── main.c │ │ ├── maingui.c │ │ └── resource.h │ ├── include │ │ ├── Makefile.am │ │ ├── faac.h │ │ └── faaccfg.h │ ├── libfaac │ │ ├── .cvsignore │ │ ├── Backup │ │ │ └── libfaac_dll.sln │ │ ├── Debug │ │ │ ├── libfaac_dll.log │ │ │ ├── libfaac_dll.tlog │ │ │ │ ├── CL.read.1.tlog │ │ │ │ ├── CL.write.1.tlog │ │ │ │ ├── cl.command.1.tlog │ │ │ │ ├── libfaac_dll.lastbuildstate │ │ │ │ ├── libfaac_dll.write.1u.tlog │ │ │ │ ├── link.command.1.tlog │ │ │ │ ├── link.read.1.tlog │ │ │ │ └── link.write.1.tlog │ │ │ └── vc120.idb │ │ ├── DebugDLL │ │ │ ├── libfaac.exp │ │ │ ├── libfaac.ilk │ │ │ └── libfaac.lib │ │ ├── Makefile.am │ │ ├── Release │ │ │ ├── libfaac_dll.Build.CppClean.log │ │ │ ├── libfaac_dll.log │ │ │ ├── libfaac_dll.tlog │ │ │ │ ├── CL.read.1.tlog │ │ │ │ ├── CL.write.1.tlog │ │ │ │ ├── cl.command.1.tlog │ │ │ │ ├── libfaac_dll.lastbuildstate │ │ │ │ ├── libfaac_dll.write.1u.tlog │ │ │ │ ├── link.command.1.tlog │ │ │ │ ├── link.read.1.tlog │ │ │ │ └── link.write.1.tlog │ │ │ └── vc120.idb │ │ ├── ReleaseDLL │ │ │ ├── libfaac.exp │ │ │ └── libfaac.lib │ │ ├── UpgradeLog.htm │ │ ├── aacquant.c │ │ ├── aacquant.h │ │ ├── backpred.c │ │ ├── backpred.h │ │ ├── bitstream.c │ │ ├── bitstream.h │ │ ├── channels.c │ │ ├── channels.h │ │ ├── coder.h │ │ ├── fft.c │ │ ├── fft.h │ │ ├── filtbank.c │ │ ├── filtbank.h │ │ ├── frame.c │ │ ├── frame.h │ │ ├── huffman.c │ │ ├── huffman.h │ │ ├── hufftab.h │ │ ├── kiss_fft │ │ │ ├── README.kiss_fft │ │ │ ├── _kiss_fft_guts.h │ │ │ ├── kiss_fft.c │ │ │ ├── kiss_fft.h │ │ │ ├── kiss_fftr.c │ │ │ └── kiss_fftr.h │ │ ├── libfaac.def │ │ ├── libfaac.vcproj │ │ ├── libfaac_dll.sdf │ │ ├── libfaac_dll.sln │ │ ├── libfaac_dll.vcproj │ │ ├── libfaac_dll.vcxproj │ │ ├── libfaac_dll.vcxproj.user │ │ ├── libfaac_dll_drm.sln │ │ ├── libfaac_dll_drm.vcproj │ │ ├── libfaacdrm.def │ │ ├── ltp.c │ │ ├── ltp.h │ │ ├── midside.c │ │ ├── midside.h │ │ ├── psych.h │ │ ├── psychkni.c │ │ ├── tns.c │ │ ├── tns.h │ │ ├── util.c │ │ ├── util.h │ │ └── version.h │ ├── plugins │ │ └── cooledit │ │ │ ├── FAAC.def │ │ │ ├── FAAC.sln │ │ │ ├── FAAC.vcproj │ │ │ ├── Faac.cpp │ │ │ ├── Faad.cpp │ │ │ ├── Main.cpp │ │ │ ├── Readme.txt │ │ │ ├── aacInfoLib.sln │ │ │ ├── aacInfoLib.vcproj │ │ │ ├── defines.h │ │ │ └── filters.h │ └── project │ │ └── mingw32 │ │ └── faac.dev ├── ffmpeg │ ├── include │ │ ├── SDL │ │ │ ├── SDL.h │ │ │ ├── SDL_active.h │ │ │ ├── SDL_audio.h │ │ │ ├── SDL_byteorder.h │ │ │ ├── SDL_cdrom.h │ │ │ ├── SDL_config.h │ │ │ ├── SDL_config_dreamcast.h │ │ │ ├── SDL_config_macos.h │ │ │ ├── SDL_config_macosx.h │ │ │ ├── SDL_config_minimal.h │ │ │ ├── SDL_config_nds.h │ │ │ ├── SDL_config_os2.h │ │ │ ├── SDL_config_symbian.h │ │ │ ├── SDL_config_win32.h │ │ │ ├── SDL_copying.h │ │ │ ├── SDL_cpuinfo.h │ │ │ ├── SDL_endian.h │ │ │ ├── SDL_error.h │ │ │ ├── SDL_events.h │ │ │ ├── SDL_getenv.h │ │ │ ├── SDL_joystick.h │ │ │ ├── SDL_keyboard.h │ │ │ ├── SDL_keysym.h │ │ │ ├── SDL_loadso.h │ │ │ ├── SDL_main.h │ │ │ ├── SDL_mouse.h │ │ │ ├── SDL_mutex.h │ │ │ ├── SDL_name.h │ │ │ ├── SDL_opengl.h │ │ │ ├── SDL_platform.h │ │ │ ├── SDL_quit.h │ │ │ ├── SDL_rwops.h │ │ │ ├── SDL_stdinc.h │ │ │ ├── SDL_syswm.h │ │ │ ├── SDL_thread.h │ │ │ ├── SDL_timer.h │ │ │ ├── SDL_types.h │ │ │ ├── SDL_version.h │ │ │ ├── SDL_video.h │ │ │ ├── begin_code.h │ │ │ └── close_code.h │ │ ├── _mingw.h │ │ ├── inttypes.h │ │ ├── libavcodec │ │ │ ├── avcodec.h │ │ │ ├── avfft.h │ │ │ ├── dxva2.h │ │ │ ├── old_codec_ids.h │ │ │ ├── vaapi.h │ │ │ ├── vda.h │ │ │ ├── vdpau.h │ │ │ ├── version.h │ │ │ └── xvmc.h │ │ ├── libavdevice │ │ │ ├── avdevice.h │ │ │ └── version.h │ │ ├── libavfilter │ │ │ ├── asrc_abuffer.h │ │ │ ├── avcodec.h │ │ │ ├── avfilter.h │ │ │ ├── avfiltergraph.h │ │ │ ├── buffersink.h │ │ │ ├── buffersrc.h │ │ │ └── version.h │ │ ├── libavformat │ │ │ ├── avformat.h │ │ │ ├── avio.h │ │ │ └── version.h │ │ ├── libavutil │ │ │ ├── adler32.h │ │ │ ├── aes.h │ │ │ ├── attributes.h │ │ │ ├── audio_fifo.h │ │ │ ├── audioconvert.h │ │ │ ├── avassert.h │ │ │ ├── avconfig.h │ │ │ ├── avstring.h │ │ │ ├── avutil.h │ │ │ ├── base64.h │ │ │ ├── blowfish.h │ │ │ ├── bprint.h │ │ │ ├── bswap.h │ │ │ ├── buffer.h │ │ │ ├── channel_layout.h │ │ │ ├── common.h │ │ │ ├── cpu.h │ │ │ ├── crc.h │ │ │ ├── dict.h │ │ │ ├── downmix_info.h │ │ │ ├── error.h │ │ │ ├── eval.h │ │ │ ├── ffversion.h │ │ │ ├── fifo.h │ │ │ ├── file.h │ │ │ ├── frame.h │ │ │ ├── hmac.h │ │ │ ├── imgutils.h │ │ │ ├── intfloat.h │ │ │ ├── intfloat_readwrite.h │ │ │ ├── intreadwrite.h │ │ │ ├── lfg.h │ │ │ ├── log.h │ │ │ ├── lzo.h │ │ │ ├── macros.h │ │ │ ├── mathematics.h │ │ │ ├── md5.h │ │ │ ├── mem.h │ │ │ ├── murmur3.h │ │ │ ├── old_pix_fmts.h │ │ │ ├── opt.h │ │ │ ├── parseutils.h │ │ │ ├── pixdesc.h │ │ │ ├── pixfmt.h │ │ │ ├── random_seed.h │ │ │ ├── rational.h │ │ │ ├── replaygain.h │ │ │ ├── ripemd.h │ │ │ ├── samplefmt.h │ │ │ ├── sha.h │ │ │ ├── sha512.h │ │ │ ├── stereo3d.h │ │ │ ├── time.h │ │ │ ├── timecode.h │ │ │ ├── timestamp.h │ │ │ ├── version.h │ │ │ └── xtea.h │ │ ├── libpostproc │ │ │ ├── postprocess.h │ │ │ └── version.h │ │ ├── libswresample │ │ │ ├── swresample.h │ │ │ └── version.h │ │ ├── libswscale │ │ │ ├── swscale.h │ │ │ └── version.h │ │ └── stdint.h │ └── lib │ │ ├── SDL.lib │ │ ├── SDLmain.lib │ │ ├── avcodec.lib │ │ ├── avdevice.lib │ │ ├── avfilter.lib │ │ ├── avformat.lib │ │ ├── avutil.lib │ │ ├── postproc.lib │ │ ├── swresample.lib │ │ └── swscale.lib ├── opencv-2.4.10 │ ├── include │ │ ├── opencv │ │ │ ├── cv.h │ │ │ ├── cv.hpp │ │ │ ├── cvaux.h │ │ │ ├── cvaux.hpp │ │ │ ├── cvwimage.h │ │ │ ├── cxcore.h │ │ │ ├── cxcore.hpp │ │ │ ├── cxeigen.hpp │ │ │ ├── cxmisc.h │ │ │ ├── highgui.h │ │ │ └── ml.h │ │ └── opencv2 │ │ │ ├── calib3d │ │ │ └── calib3d.hpp │ │ │ ├── contrib │ │ │ ├── contrib.hpp │ │ │ ├── detection_based_tracker.hpp │ │ │ ├── hybridtracker.hpp │ │ │ ├── openfabmap.hpp │ │ │ └── retina.hpp │ │ │ ├── core │ │ │ ├── affine.hpp │ │ │ ├── core.hpp │ │ │ ├── core_c.h │ │ │ ├── cuda_devptrs.hpp │ │ │ ├── devmem2d.hpp │ │ │ ├── eigen.hpp │ │ │ ├── gpumat.hpp │ │ │ ├── internal.hpp │ │ │ ├── mat.hpp │ │ │ ├── opengl_interop.hpp │ │ │ ├── opengl_interop_deprecated.hpp │ │ │ ├── operations.hpp │ │ │ ├── types_c.h │ │ │ ├── version.hpp │ │ │ └── wimage.hpp │ │ │ ├── features2d │ │ │ └── features2d.hpp │ │ │ ├── flann │ │ │ ├── all_indices.h │ │ │ ├── allocator.h │ │ │ ├── any.h │ │ │ ├── autotuned_index.h │ │ │ ├── composite_index.h │ │ │ ├── config.h │ │ │ ├── defines.h │ │ │ ├── dist.h │ │ │ ├── dummy.h │ │ │ ├── dynamic_bitset.h │ │ │ ├── flann.hpp │ │ │ ├── flann_base.hpp │ │ │ ├── general.h │ │ │ ├── ground_truth.h │ │ │ ├── hdf5.h │ │ │ ├── heap.h │ │ │ ├── hierarchical_clustering_index.h │ │ │ ├── index_testing.h │ │ │ ├── kdtree_index.h │ │ │ ├── kdtree_single_index.h │ │ │ ├── kmeans_index.h │ │ │ ├── linear_index.h │ │ │ ├── logger.h │ │ │ ├── lsh_index.h │ │ │ ├── lsh_table.h │ │ │ ├── matrix.h │ │ │ ├── miniflann.hpp │ │ │ ├── nn_index.h │ │ │ ├── object_factory.h │ │ │ ├── params.h │ │ │ ├── random.h │ │ │ ├── result_set.h │ │ │ ├── sampling.h │ │ │ ├── saving.h │ │ │ ├── simplex_downhill.h │ │ │ └── timer.h │ │ │ ├── gpu │ │ │ ├── device │ │ │ │ ├── block.hpp │ │ │ │ ├── border_interpolate.hpp │ │ │ │ ├── color.hpp │ │ │ │ ├── common.hpp │ │ │ │ ├── datamov_utils.hpp │ │ │ │ ├── detail │ │ │ │ │ ├── color_detail.hpp │ │ │ │ │ ├── reduce.hpp │ │ │ │ │ ├── reduce_key_val.hpp │ │ │ │ │ ├── transform_detail.hpp │ │ │ │ │ ├── type_traits_detail.hpp │ │ │ │ │ └── vec_distance_detail.hpp │ │ │ │ ├── dynamic_smem.hpp │ │ │ │ ├── emulation.hpp │ │ │ │ ├── filters.hpp │ │ │ │ ├── funcattrib.hpp │ │ │ │ ├── functional.hpp │ │ │ │ ├── limits.hpp │ │ │ │ ├── reduce.hpp │ │ │ │ ├── saturate_cast.hpp │ │ │ │ ├── scan.hpp │ │ │ │ ├── simd_functions.hpp │ │ │ │ ├── static_check.hpp │ │ │ │ ├── transform.hpp │ │ │ │ ├── type_traits.hpp │ │ │ │ ├── utility.hpp │ │ │ │ ├── vec_distance.hpp │ │ │ │ ├── vec_math.hpp │ │ │ │ ├── vec_traits.hpp │ │ │ │ ├── warp.hpp │ │ │ │ ├── warp_reduce.hpp │ │ │ │ └── warp_shuffle.hpp │ │ │ ├── devmem2d.hpp │ │ │ ├── gpu.hpp │ │ │ ├── gpumat.hpp │ │ │ └── stream_accessor.hpp │ │ │ ├── highgui │ │ │ ├── cap_ios.h │ │ │ ├── highgui.hpp │ │ │ ├── highgui_c.h │ │ │ └── ios.h │ │ │ ├── imgproc │ │ │ ├── imgproc.hpp │ │ │ ├── imgproc_c.h │ │ │ └── types_c.h │ │ │ ├── legacy │ │ │ ├── blobtrack.hpp │ │ │ ├── compat.hpp │ │ │ ├── legacy.hpp │ │ │ └── streams.hpp │ │ │ ├── ml │ │ │ └── ml.hpp │ │ │ ├── nonfree │ │ │ ├── features2d.hpp │ │ │ ├── gpu.hpp │ │ │ ├── nonfree.hpp │ │ │ └── ocl.hpp │ │ │ ├── objdetect │ │ │ └── objdetect.hpp │ │ │ ├── ocl │ │ │ ├── matrix_operations.hpp │ │ │ └── ocl.hpp │ │ │ ├── opencv.hpp │ │ │ ├── opencv_modules.hpp │ │ │ ├── photo │ │ │ ├── photo.hpp │ │ │ └── photo_c.h │ │ │ ├── stitching │ │ │ ├── detail │ │ │ │ ├── autocalib.hpp │ │ │ │ ├── blenders.hpp │ │ │ │ ├── camera.hpp │ │ │ │ ├── exposure_compensate.hpp │ │ │ │ ├── matchers.hpp │ │ │ │ ├── motion_estimators.hpp │ │ │ │ ├── seam_finders.hpp │ │ │ │ ├── util.hpp │ │ │ │ ├── util_inl.hpp │ │ │ │ ├── warpers.hpp │ │ │ │ └── warpers_inl.hpp │ │ │ ├── stitcher.hpp │ │ │ └── warpers.hpp │ │ │ ├── superres │ │ │ ├── optical_flow.hpp │ │ │ └── superres.hpp │ │ │ ├── ts │ │ │ ├── gpu_perf.hpp │ │ │ ├── gpu_test.hpp │ │ │ ├── ts.hpp │ │ │ ├── ts_gtest.h │ │ │ └── ts_perf.hpp │ │ │ ├── video │ │ │ ├── background_segm.hpp │ │ │ ├── tracking.hpp │ │ │ └── video.hpp │ │ │ └── videostab │ │ │ ├── deblurring.hpp │ │ │ ├── fast_marching.hpp │ │ │ ├── fast_marching_inl.hpp │ │ │ ├── frame_source.hpp │ │ │ ├── global_motion.hpp │ │ │ ├── inpainting.hpp │ │ │ ├── log.hpp │ │ │ ├── motion_stabilizing.hpp │ │ │ ├── optical_flow.hpp │ │ │ ├── stabilizer.hpp │ │ │ └── videostab.hpp │ └── x86 │ │ └── vc12 │ │ └── lib │ │ ├── OpenCVConfig.cmake │ │ ├── OpenCVModules-debug.cmake │ │ ├── OpenCVModules-release.cmake │ │ ├── OpenCVModules.cmake │ │ ├── opencv_calib3d2410.lib │ │ ├── opencv_calib3d2410d.lib │ │ ├── opencv_contrib2410.lib │ │ ├── opencv_contrib2410d.lib │ │ ├── opencv_core2410.lib │ │ ├── opencv_core2410d.lib │ │ ├── opencv_features2d2410.lib │ │ ├── opencv_features2d2410d.lib │ │ ├── opencv_flann2410.lib │ │ ├── opencv_flann2410d.lib │ │ ├── opencv_gpu2410.lib │ │ ├── opencv_gpu2410d.lib │ │ ├── opencv_highgui2410.lib │ │ ├── opencv_highgui2410d.lib │ │ ├── opencv_imgproc2410.lib │ │ ├── opencv_imgproc2410d.lib │ │ ├── opencv_legacy2410.lib │ │ ├── opencv_legacy2410d.lib │ │ ├── opencv_ml2410.lib │ │ ├── opencv_ml2410d.lib │ │ ├── opencv_nonfree2410.lib │ │ ├── opencv_nonfree2410d.lib │ │ ├── opencv_objdetect2410.lib │ │ ├── opencv_objdetect2410d.lib │ │ ├── opencv_ocl2410.lib │ │ ├── opencv_ocl2410d.lib │ │ ├── opencv_photo2410.lib │ │ ├── opencv_photo2410d.lib │ │ ├── opencv_stitching2410.lib │ │ ├── opencv_stitching2410d.lib │ │ ├── opencv_superres2410.lib │ │ ├── opencv_superres2410d.lib │ │ ├── opencv_ts2410.lib │ │ ├── opencv_ts2410d.lib │ │ ├── opencv_video2410.lib │ │ ├── opencv_video2410d.lib │ │ ├── opencv_videostab2410.lib │ │ └── opencv_videostab2410d.lib ├── rtmp │ ├── include │ │ ├── getopt.c │ │ ├── getopt.h │ │ ├── inttypes.h │ │ ├── librtmp │ │ │ ├── amf.h │ │ │ ├── bytes.h │ │ │ ├── dh.h │ │ │ ├── dhgroups.h │ │ │ ├── handshake.h │ │ │ ├── http.h │ │ │ ├── log.h │ │ │ ├── rtmp.h │ │ │ └── rtmp_sys.h │ │ └── stdint.h │ └── lib │ │ └── librtmp.lib ├── x264 │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── Makefile │ ├── autocomplete.c │ ├── common │ │ ├── aarch64 │ │ │ ├── asm-offsets.c │ │ │ ├── asm-offsets.h │ │ │ ├── asm.S │ │ │ ├── bitstream-a.S │ │ │ ├── bitstream.h │ │ │ ├── cabac-a.S │ │ │ ├── dct-a.S │ │ │ ├── dct.h │ │ │ ├── deblock-a.S │ │ │ ├── deblock.h │ │ │ ├── mc-a.S │ │ │ ├── mc-c.c │ │ │ ├── mc.h │ │ │ ├── pixel-a.S │ │ │ ├── pixel.h │ │ │ ├── predict-a.S │ │ │ ├── predict-c.c │ │ │ ├── predict.h │ │ │ ├── quant-a.S │ │ │ └── quant.h │ │ ├── arm │ │ │ ├── asm.S │ │ │ ├── bitstream-a.S │ │ │ ├── bitstream.h │ │ │ ├── cpu-a.S │ │ │ ├── dct-a.S │ │ │ ├── dct.h │ │ │ ├── deblock-a.S │ │ │ ├── deblock.h │ │ │ ├── mc-a.S │ │ │ ├── mc-c.c │ │ │ ├── mc.h │ │ │ ├── pixel-a.S │ │ │ ├── pixel.h │ │ │ ├── predict-a.S │ │ │ ├── predict-c.c │ │ │ ├── predict.h │ │ │ ├── quant-a.S │ │ │ └── quant.h │ │ ├── base.c │ │ ├── base.h │ │ ├── bitstream.c │ │ ├── bitstream.h │ │ ├── cabac.c │ │ ├── cabac.h │ │ ├── common.c │ │ ├── common.h │ │ ├── cpu.c │ │ ├── cpu.h │ │ ├── dct.c │ │ ├── dct.h │ │ ├── deblock.c │ │ ├── frame.c │ │ ├── frame.h │ │ ├── macroblock.c │ │ ├── macroblock.h │ │ ├── mc.c │ │ ├── mc.h │ │ ├── mips │ │ │ ├── dct-c.c │ │ │ ├── dct.h │ │ │ ├── deblock-c.c │ │ │ ├── deblock.h │ │ │ ├── macros.h │ │ │ ├── mc-c.c │ │ │ ├── mc.h │ │ │ ├── pixel-c.c │ │ │ ├── pixel.h │ │ │ ├── predict-c.c │ │ │ ├── predict.h │ │ │ ├── quant-c.c │ │ │ └── quant.h │ │ ├── mvpred.c │ │ ├── opencl.c │ │ ├── opencl.h │ │ ├── opencl │ │ │ ├── bidir.cl │ │ │ ├── downscale.cl │ │ │ ├── intra.cl │ │ │ ├── motionsearch.cl │ │ │ ├── subpel.cl │ │ │ ├── weightp.cl │ │ │ └── x264-cl.h │ │ ├── osdep.c │ │ ├── osdep.h │ │ ├── pixel.c │ │ ├── pixel.h │ │ ├── ppc │ │ │ ├── dct.c │ │ │ ├── dct.h │ │ │ ├── deblock.c │ │ │ ├── deblock.h │ │ │ ├── mc.c │ │ │ ├── mc.h │ │ │ ├── pixel.c │ │ │ ├── pixel.h │ │ │ ├── ppccommon.h │ │ │ ├── predict.c │ │ │ ├── predict.h │ │ │ ├── quant.c │ │ │ └── quant.h │ │ ├── predict.c │ │ ├── predict.h │ │ ├── quant.c │ │ ├── quant.h │ │ ├── rectangle.c │ │ ├── rectangle.h │ │ ├── set.c │ │ ├── set.h │ │ ├── tables.c │ │ ├── tables.h │ │ ├── threadpool.c │ │ ├── threadpool.h │ │ ├── vlc.c │ │ ├── win32thread.c │ │ ├── win32thread.h │ │ └── x86 │ │ │ ├── bitstream-a.asm │ │ │ ├── bitstream.h │ │ │ ├── cabac-a.asm │ │ │ ├── const-a.asm │ │ │ ├── cpu-a.asm │ │ │ ├── dct-32.asm │ │ │ ├── dct-64.asm │ │ │ ├── dct-a.asm │ │ │ ├── dct.h │ │ │ ├── deblock-a.asm │ │ │ ├── deblock.h │ │ │ ├── mc-a.asm │ │ │ ├── mc-a2.asm │ │ │ ├── mc-c.c │ │ │ ├── mc.h │ │ │ ├── pixel-32.asm │ │ │ ├── pixel-a.asm │ │ │ ├── pixel.h │ │ │ ├── predict-a.asm │ │ │ ├── predict-c.c │ │ │ ├── predict.h │ │ │ ├── quant-a.asm │ │ │ ├── quant.h │ │ │ ├── sad-a.asm │ │ │ ├── sad16-a.asm │ │ │ ├── trellis-64.asm │ │ │ ├── util.h │ │ │ ├── x86inc.asm │ │ │ └── x86util.asm │ ├── config.guess │ ├── config.sub │ ├── configure │ ├── doc │ │ ├── ratecontrol.txt │ │ ├── regression_test.txt │ │ ├── standards.txt │ │ ├── threads.txt │ │ └── vui.txt │ ├── encoder │ │ ├── analyse.c │ │ ├── analyse.h │ │ ├── api.c │ │ ├── cabac.c │ │ ├── cavlc.c │ │ ├── encoder.c │ │ ├── lookahead.c │ │ ├── macroblock.c │ │ ├── macroblock.h │ │ ├── me.c │ │ ├── me.h │ │ ├── ratecontrol.c │ │ ├── ratecontrol.h │ │ ├── rdo.c │ │ ├── set.c │ │ ├── set.h │ │ ├── slicetype-cl.c │ │ ├── slicetype-cl.h │ │ └── slicetype.c │ ├── example.c │ ├── extras │ │ ├── avisynth_c.h │ │ ├── avxsynth_c.h │ │ ├── cl.h │ │ ├── cl_platform.h │ │ ├── getopt.c │ │ ├── getopt.h │ │ ├── intel_dispatcher.h │ │ ├── inttypes.h │ │ └── stdint.h │ ├── filters │ │ ├── filters.c │ │ ├── filters.h │ │ └── video │ │ │ ├── cache.c │ │ │ ├── crop.c │ │ │ ├── depth.c │ │ │ ├── fix_vfr_pts.c │ │ │ ├── internal.c │ │ │ ├── internal.h │ │ │ ├── resize.c │ │ │ ├── select_every.c │ │ │ ├── source.c │ │ │ ├── video.c │ │ │ └── video.h │ ├── input │ │ ├── avs.c │ │ ├── ffms.c │ │ ├── input.c │ │ ├── input.h │ │ ├── lavf.c │ │ ├── raw.c │ │ ├── thread.c │ │ ├── timecode.c │ │ └── y4m.c │ ├── output │ │ ├── flv.c │ │ ├── flv_bytestream.c │ │ ├── flv_bytestream.h │ │ ├── matroska.c │ │ ├── matroska_ebml.c │ │ ├── matroska_ebml.h │ │ ├── mp4.c │ │ ├── mp4_lsmash.c │ │ ├── output.h │ │ └── raw.c │ ├── tools │ │ ├── bash-autocomplete.sh │ │ ├── checkasm-a.asm │ │ ├── checkasm-aarch64.S │ │ ├── checkasm-arm.S │ │ ├── checkasm.c │ │ ├── cltostr.sh │ │ ├── countquant_x264.pl │ │ ├── digress │ │ │ ├── __init__.py │ │ │ ├── cli.py │ │ │ ├── comparers.py │ │ │ ├── constants.py │ │ │ ├── errors.py │ │ │ ├── scm │ │ │ │ ├── __init__.py │ │ │ │ ├── dummy.py │ │ │ │ └── git.py │ │ │ └── testing.py │ │ ├── gas-preprocessor.pl │ │ ├── msvsdepend.sh │ │ ├── q_matrix_jvt.cfg │ │ └── test_x264.py │ ├── version.sh │ ├── x264.c │ ├── x264.h │ ├── x264cli.h │ ├── x264dll.c │ └── x264res.rc └── x264_wrapper │ ├── Makefile.encode_wrapper │ ├── encode_wrapper.cpp │ ├── encode_wrapper.h │ ├── encode_wrapper.mpc │ └── make.bat ├── push_rtmp_stream.cpp ├── push_rtmp_stream.h ├── push_rtmp_stream_man.cpp ├── push_rtmp_stream_man.h ├── quartz.lib ├── sche_timer.cpp ├── sche_timer.h ├── sound_comm.h ├── sound_handler.h ├── strmiids.lib ├── targetver.h ├── util.cpp ├── util.h ├── video_effect.cpp ├── video_effect.h ├── x264_encoder.cpp └── x264_encoder.h /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | *.obj 6 | 7 | # Precompiled Headers 8 | *.gch 9 | *.pch 10 | 11 | # Compiled Dynamic libraries 12 | *.so 13 | *.dylib 14 | *.dll 15 | 16 | # Fortran module files 17 | *.mod 18 | 19 | # Compiled Static libraries 20 | *.lai 21 | *.la 22 | *.pdb 23 | 24 | # Executables 25 | *.exe 26 | *.out 27 | *.app 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 allen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PushRTMPStreamSync 2 | push audio and video stream on rtmp protocol synchronously 3 | 4 | usage step: 5 | 6 | ## 1 building x264 using mingw 7 | 8 | cd libs\x264 9 | ./configure && make 10 | 11 | ## 2 building x264_wrapper using mingw 12 | 13 | cd libs\x264_wrapper 14 | make -f Makefile.encode_wrapper 15 | 16 | ## 3 building capture.sln using Visual Studio 2015 (select Release Mode) 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /capture/.gitignore: -------------------------------------------------------------------------------- 1 | *.suo 2 | *.opensdf 3 | -------------------------------------------------------------------------------- /capture/Release/.gitignore: -------------------------------------------------------------------------------- 1 | *.pdb 2 | *.idb 3 | -------------------------------------------------------------------------------- /capture/Release/avcodec-55.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/avcodec-55.dll -------------------------------------------------------------------------------- /capture/Release/avdevice-55.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/avdevice-55.dll -------------------------------------------------------------------------------- /capture/Release/avfilter-4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/avfilter-4.dll -------------------------------------------------------------------------------- /capture/Release/avformat-55.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/avformat-55.dll -------------------------------------------------------------------------------- /capture/Release/avutil-52.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/avutil-52.dll -------------------------------------------------------------------------------- /capture/Release/libX264EncoderWrapper.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/libX264EncoderWrapper.so -------------------------------------------------------------------------------- /capture/Release/libcrypto.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/libcrypto.dll -------------------------------------------------------------------------------- /capture/Release/libfaac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/libfaac.dll -------------------------------------------------------------------------------- /capture/Release/libgcc_s_dw2-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/libgcc_s_dw2-1.dll -------------------------------------------------------------------------------- /capture/Release/librtmp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/librtmp.dll -------------------------------------------------------------------------------- /capture/Release/libssl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/libssl.dll -------------------------------------------------------------------------------- /capture/Release/opencv_core2410.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/opencv_core2410.dll -------------------------------------------------------------------------------- /capture/Release/opencv_highgui2410.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/opencv_highgui2410.dll -------------------------------------------------------------------------------- /capture/Release/opencv_imgproc2410.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/opencv_imgproc2410.dll -------------------------------------------------------------------------------- /capture/Release/postproc-52.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/postproc-52.dll -------------------------------------------------------------------------------- /capture/Release/pthreadGC2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/pthreadGC2.dll -------------------------------------------------------------------------------- /capture/Release/swresample-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/swresample-0.dll -------------------------------------------------------------------------------- /capture/Release/swscale-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/Release/swscale-2.dll -------------------------------------------------------------------------------- /capture/aac_encoder.cpp: -------------------------------------------------------------------------------- 1 | #include "aac_encoder.h" 2 | 3 | 4 | aac_encoder::aac_encoder() 5 | : handler_(NULL) 6 | , input_samples_(0) 7 | , max_output_bytes_(0) 8 | { 9 | } 10 | 11 | 12 | aac_encoder::~aac_encoder() 13 | { 14 | } 15 | 16 | 17 | void* aac_encoder::open_audio_encoder(int samples_per_sec, int channel, void* user_data, audio_enc_cb_t cb, int audio_idx) 18 | { 19 | this->handler_ = faacEncOpen(samples_per_sec, channel, &this->input_samples_, &this->max_output_bytes_); 20 | this->buf_.assign(this->max_output_bytes_, 0); 21 | this->user_data_ = user_data; 22 | this->audio_idx_ = audio_idx; 23 | 24 | faacEncConfigurationPtr pConfiguration = faacEncGetCurrentConfiguration(handler_); 25 | pConfiguration->inputFormat = FAAC_INPUT_16BIT; 26 | pConfiguration->bitRate = (32 * 1000) / 2; 27 | pConfiguration->quantqual = 100; 28 | pConfiguration->inputFormat = FAAC_INPUT_16BIT; 29 | pConfiguration->mpegVersion = MPEG4; 30 | pConfiguration->aacObjectType = LOW; 31 | pConfiguration->useLfe = 0; 32 | pConfiguration->outputFormat = 0; 33 | 34 | int nRet = faacEncSetConfiguration(handler_, pConfiguration); 35 | 36 | unsigned char* buf = NULL; 37 | unsigned long pSizeOfDecoderSpecificInfo = 0; 38 | faacEncGetDecoderSpecificInfo(handler_, &buf, &pSizeOfDecoderSpecificInfo); 39 | 40 | if (cb) 41 | cb((void*)handler_, (const char*)buf, pSizeOfDecoderSpecificInfo, this->user_data_, true, this->audio_idx_); 42 | 43 | free(buf); 44 | return handler_; 45 | } 46 | 47 | 48 | void aac_encoder::audio_encode(void* h, const char* in_buf, long in_size, audio_enc_cb_t cb) 49 | { 50 | if (in_size >= this->input_samples_* 2) 51 | { 52 | char* p = (char*)this->buf_.c_str(); 53 | int len = faacEncEncode(handler_, (int32_t*)in_buf, this->input_samples_, (unsigned char*)p, this->max_output_bytes_); 54 | if (len > 0) 55 | cb((void*)h, p, len, this->user_data_, false, this->audio_idx_); 56 | } 57 | } 58 | 59 | 60 | void aac_encoder::audio_close_encoder(void* h) 61 | { 62 | faacEncClose(handler_); 63 | } 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /capture/aac_encoder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "util.h" 7 | 8 | typedef void (*audio_enc_cb_t)(void* h, const char* out_buf, long out_size, void* user_data, bool is_header, int audio_idx); 9 | 10 | class aac_encoder 11 | { 12 | public: 13 | aac_encoder(); 14 | ~aac_encoder(); 15 | 16 | public: 17 | void* open_audio_encoder(int samples_per_sec, int channel, void* user_data, audio_enc_cb_t cb, int audio_idx); 18 | void audio_encode(void* h, const char* in_buf, long in_size, audio_enc_cb_t cb); 19 | void audio_close_encoder(void* h); 20 | 21 | public: 22 | void* handler_; 23 | unsigned long input_samples_; 24 | unsigned long max_output_bytes_; 25 | void* user_data_; 26 | std::string buf_; 27 | int audio_idx_; 28 | }; 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /capture/business.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "push_rtmp_stream.h" 4 | #include "push_rtmp_stream_man.h" 5 | #include "convert.h" 6 | #include "x264_encoder.h" 7 | #include "aac_encoder.h" 8 | #include "capture_video.h" 9 | #include "capture_audio.h" 10 | #include "video_effect.h" 11 | 12 | class business 13 | { 14 | public: 15 | business(); 16 | ~business(); 17 | 18 | public: 19 | void start(const std::string& rtmp_url, int camera_idx, int audio_idx); 20 | 21 | public: 22 | static void cb(IplImage* img, long user_data, int camera_idx); 23 | static void cb_audio(unsigned char* raw_data, unsigned long len, long user_data, int audio_idx); 24 | 25 | public: 26 | static unsigned int __stdcall video_thread_proc(void* ctx); 27 | 28 | protected: 29 | void video_thread_entry(); 30 | 31 | protected: 32 | void cb_impl(IplImage* img, int camera_idx); 33 | void cb_audio_impl(unsigned char* raw_data, unsigned long len, int audio_idx); 34 | 35 | protected: 36 | HANDLE h_; 37 | x264_encoder x264_enc_; 38 | HANDLE h_audio_; 39 | aac_encoder aac_enc_; 40 | ColorSpaceConversions conv_; 41 | bool force_make_key_frame_; 42 | push_rtmp_stream_man push_; 43 | typedef std::shared_ptr video_effect_ptr; 44 | video_effect_ptr video_effect_; 45 | 46 | }; 47 | 48 | -------------------------------------------------------------------------------- /capture/capture.cpp: -------------------------------------------------------------------------------- 1 | #include "business.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | if (argc < 4) 6 | { 7 | std::cout << "usage: capture " << std::endl; 8 | return 0; 9 | } 10 | 11 | socket_lib_helper helper; 12 | business b; 13 | std::string rtmp_url = argv[1]; 14 | int camera_idx = atoi(argv[2]); 15 | int audio_idx = atoi(argv[3]); 16 | b.start(rtmp_url, camera_idx, audio_idx); 17 | return 0; 18 | } 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /capture/capture.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capture", "capture.vcxproj", "{0032BFCE-0632-41ED-8636-4646533B58AC}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Debug|Win32.Build.0 = Debug|Win32 18 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Debug|x64.ActiveCfg = Debug|x64 19 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Debug|x64.Build.0 = Debug|x64 20 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Release|Win32.ActiveCfg = Release|Win32 21 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Release|Win32.Build.0 = Release|Win32 22 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Release|x64.ActiveCfg = Release|x64 23 | {0032BFCE-0632-41ED-8636-4646533B58AC}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /capture/capture_audio.cpp: -------------------------------------------------------------------------------- 1 | #include "capture_audio.h" 2 | 3 | 4 | 5 | void capture_audio::handle(unsigned char* data, unsigned int len) 6 | { 7 | if (this->cb_) 8 | this->cb_(data, len, this->user_data_, this->audio_idx_); 9 | } 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /capture/capture_audio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "collect_sound.h" 4 | #include "sound_handler.h" 5 | 6 | 7 | 8 | typedef void(*raw_audio_callback)(unsigned char* raw_data, unsigned long len, long user_data, int audio_idx); 9 | 10 | 11 | class capture_audio : public sound_handler 12 | { 13 | public: 14 | void start(int samples_per_sec, int channel, int bits_per_sample, raw_audio_callback cb, long user_data, int audio_idx) 15 | { 16 | this->cb_ = cb; 17 | this->user_data_ = user_data; 18 | this->audio_idx_ = audio_idx; 19 | this->collector_ = new collect_sound; 20 | 21 | WAVEFORMATEX wf; 22 | wf.cbSize = 0; 23 | wf.nBlockAlign = channel * bits_per_sample / 8; 24 | wf.nChannels = channel; 25 | wf.nSamplesPerSec = samples_per_sec; 26 | wf.wBitsPerSample = bits_per_sample; 27 | wf.nAvgBytesPerSec = samples_per_sec * wf.nBlockAlign; 28 | wf.wFormatTag = WAVE_FORMAT_PCM; 29 | 30 | 31 | if (!this->collector_->is_running()) 32 | this->collector_->start(&GUID_NULL, &wf, this); 33 | } 34 | 35 | ~capture_audio() 36 | { 37 | stop(); 38 | } 39 | 40 | void stop() 41 | { 42 | if (this->collector_->is_running()) 43 | this->collector_->stop(); 44 | } 45 | 46 | void handle(unsigned char* data, unsigned int len); 47 | 48 | 49 | private: 50 | collect_sound* collector_; 51 | raw_audio_callback cb_; 52 | long user_data_; 53 | int audio_idx_; 54 | }; 55 | 56 | 57 | -------------------------------------------------------------------------------- /capture/capture_video.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "opencv/cv.h" 4 | #include "opencv/highgui.h" 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #pragma comment(lib, "strmiids.lib") 11 | #pragma comment(lib, "Quartz.lib") 12 | 13 | #ifdef DEBUG 14 | #pragma comment(lib, "opencv_core2410d.lib") 15 | #pragma comment(lib, "opencv_highgui2410d.lib") 16 | #pragma comment(lib, "opencv_imgproc2410d.lib") 17 | #else 18 | #pragma comment(lib, "opencv_core2410.lib") 19 | #pragma comment(lib, "opencv_highgui2410.lib") 20 | #pragma comment(lib, "opencv_imgproc2410.lib") 21 | 22 | #endif 23 | 24 | 25 | #pragma comment(lib, "cscc.lib") 26 | 27 | 28 | typedef void(*yuv_callback)(IplImage* img, long user_data, int camera_idx); 29 | 30 | #ifndef SAFE_RELEASE 31 | #define SAFE_RELEASE( x ) \ 32 | if ( NULL != x ) \ 33 | { \ 34 | x->Release( ); \ 35 | x = NULL; \ 36 | } 37 | #endif 38 | 39 | 40 | class capture_video 41 | { 42 | public: 43 | capture_video(); 44 | virtual ~capture_video(); 45 | 46 | int start(int camera_idx, int rate, yuv_callback cb, long user_data); 47 | void stop(); 48 | 49 | static int enum_devs(); 50 | 51 | protected: 52 | int svc(); 53 | 54 | private: 55 | int idx_; 56 | int interval_; 57 | yuv_callback yuv_; 58 | long user_data_; 59 | volatile bool flag_run_; 60 | 61 | private: 62 | std::thread thr_; 63 | }; -------------------------------------------------------------------------------- /capture/collect_sound.h: -------------------------------------------------------------------------------- 1 | #ifndef COLLECT_SOUND_H__ 2 | #define COLLECT_SOUND_H__ 3 | 4 | #include "sound_comm.h" 5 | 6 | class sound_handler; 7 | class collect_sound 8 | { 9 | public: 10 | collect_sound(void); 11 | ~collect_sound(void); 12 | 13 | public: 14 | bool start(const void* pSoundCapture, const void* pwfxInput, sound_handler* p_sound_data_handler); 15 | void stop(); 16 | bool is_running() const; 17 | 18 | private: 19 | bool is_running_; 20 | 21 | sound_handler* 22 | p_sound_data_handler_; 23 | 24 | protected: 25 | virtual HRESULT initSoundCapture(LPCGUID pSoundCapture); 26 | virtual HRESULT initSoundCaptureBuffer(const WAVEFORMATEX* pwfxInput); 27 | virtual HRESULT initSoundCaptureNotify(const WAVEFORMATEX* pwfxInput); 28 | 29 | virtual void finiSoundCaptureNotify(); 30 | virtual void finiSoundCaptureBuffer(); 31 | virtual void finiSoundCapture(); 32 | 33 | private: 34 | CComPtr directSoundCapture8Ptr_; 35 | CComPtr directSoundCaptureBufer8Ptr_; 36 | CComPtr directSoundNotify8Ptr_; 37 | 38 | private: 39 | DWORD dwNotifySize_; 40 | DWORD dwCaptureBufferSize_; 41 | DWORD dwNextCaptureOffset_; 42 | 43 | enum { NUM_REC_NOTIFICATIONS = 2 }; 44 | DSBPOSITIONNOTIFY aPosNotify_[NUM_REC_NOTIFICATIONS + 1]; 45 | 46 | HANDLE hNotificationEvent_; 47 | 48 | private: 49 | HANDLE hCollectThread_; 50 | HANDLE bNotifyThreadExitEvent_; 51 | static unsigned __stdcall collectThreadProc(void* lpParam); 52 | unsigned threadEntry( ); 53 | enum { MAX_SYNC_WAIT_THREAD_SEC = 10 }; 54 | 55 | private: 56 | HRESULT recordCapturedData(); 57 | 58 | }; 59 | 60 | #endif 61 | 62 | 63 | -------------------------------------------------------------------------------- /capture/comm.h: -------------------------------------------------------------------------------- 1 | #ifndef COMM_H__ 2 | #define COMM_H__ 3 | 4 | enum nal_unit_type_e 5 | { 6 | NAL_UNKNOWN = 0, 7 | NAL_SLICE = 1, 8 | NAL_SLICE_DPA = 2, 9 | NAL_SLICE_DPB = 3, 10 | NAL_SLICE_DPC = 4, 11 | NAL_SLICE_IDR = 5, /* ref_idc != 0 */ 12 | NAL_SEI = 6, /* ref_idc == 0 */ 13 | NAL_SPS = 7, 14 | NAL_PPS = 8, 15 | NAL_AUD = 9, 16 | NAL_FILLER = 12, 17 | /* ref_idc == 0 for 6,9,10,11,12 */ 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /capture/convert.h: -------------------------------------------------------------------------------- 1 | //Download by http://www.NewXing.com 2 | /***************************************************************/ 3 | 4 | /***************************************************************/ 5 | 6 | 7 | 8 | #ifndef _CONVERT_H 9 | #define _CONVERT_H 10 | 11 | 12 | class ColorSpaceConversions { 13 | 14 | public: 15 | 16 | ColorSpaceConversions(); 17 | 18 | void RGB24_to_YV12(unsigned char * in, unsigned char * out,int w, int h); 19 | void YV12_to_RGB24(unsigned char *src0,unsigned char *src1,unsigned char *src2,unsigned char *dst_ori,int width,int height); 20 | void YVU9_to_YV12(unsigned char * in,unsigned char * out, int w, int h); 21 | void YUY2_to_YV12(unsigned char * in,unsigned char * out, int w, int h); 22 | void YV12_to_YVU9(unsigned char * in,unsigned char * out, int w, int h); 23 | void YV12_to_YUY2(unsigned char * in,unsigned char * out, int w, int h); 24 | }; 25 | 26 | #endif /* _CONVERT_H */ 27 | 28 | 29 | -------------------------------------------------------------------------------- /capture/cscc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/cscc.lib -------------------------------------------------------------------------------- /capture/libs/faac-1.28/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = include libfaac common frontend 2 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/AudioCoding.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/Cfaac/AudioCoding.bmp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/DecDialog.h: -------------------------------------------------------------------------------- 1 | extern BOOL DialogMsgProcDec(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam); 2 | extern int ShowDlg4RawAAC(); 3 | 4 | static const char* mpeg4AudioNames[]= 5 | { 6 | "Raw PCM", 7 | "AAC Main", 8 | "AAC LC (Low Complexity)", 9 | "AAC SSR", 10 | "AAC LTP (Long Term Prediction)", 11 | "AAC HE (High Efficiency)", 12 | "AAC Scalable", 13 | "TwinVQ", 14 | "CELP", 15 | "HVXC", 16 | "Reserved", 17 | "Reserved", 18 | "TTSI", 19 | "Main synthetic", 20 | "Wavetable synthesis", 21 | "General MIDI", 22 | "Algorithmic Synthesis and Audio FX", 23 | // defined in MPEG-4 version 2 24 | "ER AAC LC (Low Complexity)", 25 | "Reserved", 26 | "ER AAC LTP (Long Term Prediction)", 27 | "ER AAC Scalable", 28 | "ER TwinVQ", 29 | "ER BSAC", 30 | "ER AAC LD (Low Delay)", 31 | "ER CELP", 32 | "ER HVXC", 33 | "ER HILN", 34 | "ER Parametric", 35 | "Reserved", 36 | "Reserved", 37 | "Reserved", 38 | "Reserved" 39 | }; 40 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/Email.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/Cfaac/Email.bmp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/EncDialog.h: -------------------------------------------------------------------------------- 1 | extern BOOL DialogMsgProcAbout(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam); 2 | extern BOOL CALLBACK DIALOGMsgProcEnc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam); 3 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/Open.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/Cfaac/Open.bmp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/ReadMe.txt: -------------------------------------------------------------------------------- 1 | +----------------------------------------------------------------+ 2 | | | 3 | | Cfaac Readme | 4 | | ------------ | 5 | | | 6 | +----------------------------------------------------------------+ 7 | 8 | This program is free software; you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License. 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY. 12 | 13 | ---------------------------------------------------------------------------- 14 | 15 | Cfaac is a set of classes to develop plugins (to import/export .aac/.mp4 files) with ease. 16 | 17 | ---------------------------------------------------------------------------- 18 | 19 | For suggestions, bugs report, etc., you can contact me at 20 | ntnfrn_email-temp@yahoo.it 21 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/TypeDef.h: -------------------------------------------------------------------------------- 1 | /* 2 | FAAC - codec plugin for Cooledit 3 | Copyright (C) 2002-2004 Antonio Foranna 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program; if not, write to the Free Software 16 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | The author can be contacted at: 19 | ntnfrn_email-temp@yahoo.it 20 | */ 21 | 22 | //--------------------------------------------------------------------------- 23 | #ifndef TypeDefH 24 | #define TypeDefH 25 | //--------------------------------------------------------------------------- 26 | 27 | /* typedef.h */ 28 | 29 | #ifndef BYTE 30 | typedef unsigned char BYTE; 31 | #endif 32 | #ifndef WORD 33 | typedef unsigned short WORD; 34 | #endif 35 | #ifndef DWORD 36 | typedef unsigned long DWORD; 37 | #endif 38 | #ifndef QWORD 39 | typedef unsigned __int64 QWORD; 40 | #endif 41 | 42 | //--------------------------------------------------------------------------- 43 | #endif 44 | //--------------------------------------------------------------------------- 45 | 46 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/id3v2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/Cfaac/id3v2.ico -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Cfaac/mpeg4ip-v.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/Cfaac/mpeg4ip-v.bmp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/Makefile.am: -------------------------------------------------------------------------------- 1 | if WITH_MP4V2 2 | SUBDIRS = mp4v2 3 | else 4 | SUBDIRS = 5 | endif 6 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/Makefile.am: -------------------------------------------------------------------------------- 1 | INCLUDES = -I$(top_srcdir)/include 2 | 3 | AM_CXXFLAGS = -Wall 4 | 5 | noinst_LIBRARIES = libmp4v2.a 6 | 7 | noinst_HEADERS = mp4.h mpeg4ip.h mpeg4ip_version.h mpeg4ip_config.h 8 | 9 | libmp4v2_a_SOURCES = \ 10 | 3gp.cpp \ 11 | atom_amr.cpp \ 12 | atom_avc1.cpp \ 13 | atom_avcC.cpp \ 14 | atom_d263.cpp \ 15 | atom_damr.cpp \ 16 | atom_dref.cpp \ 17 | atom_elst.cpp \ 18 | atom_enca.cpp \ 19 | atom_encv.cpp \ 20 | atom_free.cpp \ 21 | atom_ftyp.cpp \ 22 | atom_gmin.cpp \ 23 | atom_hdlr.cpp \ 24 | atom_hinf.cpp \ 25 | atom_hnti.cpp \ 26 | atom_href.cpp \ 27 | atom_mdat.cpp \ 28 | atom_mdhd.cpp \ 29 | atom_meta.cpp \ 30 | atom_mp4s.cpp \ 31 | atom_mp4v.cpp \ 32 | atom_mvhd.cpp \ 33 | atom_ohdr.cpp \ 34 | atom_root.cpp \ 35 | atom_rtp.cpp \ 36 | atom_s263.cpp \ 37 | atom_sdp.cpp \ 38 | atoms.h \ 39 | atom_smi.cpp \ 40 | atom_sound.cpp \ 41 | atom_standard.cpp \ 42 | atom_stbl.cpp \ 43 | atom_stdp.cpp \ 44 | atom_stsc.cpp \ 45 | atom_stsd.cpp \ 46 | atom_stsz.cpp \ 47 | atom_stz2.cpp \ 48 | atom_text.cpp \ 49 | atom_tfhd.cpp \ 50 | atom_tkhd.cpp \ 51 | atom_treftype.cpp \ 52 | atom_trun.cpp \ 53 | atom_udta.cpp \ 54 | atom_url.cpp \ 55 | atom_urn.cpp \ 56 | atom_video.cpp \ 57 | atom_vmhd.cpp \ 58 | descriptors.cpp \ 59 | descriptors.h \ 60 | isma.cpp \ 61 | mp4array.h \ 62 | mp4atom.cpp \ 63 | mp4atom.h \ 64 | mp4common.h \ 65 | mp4container.cpp \ 66 | mp4container.h \ 67 | mp4.cpp \ 68 | mp4descriptor.cpp \ 69 | mp4descriptor.h \ 70 | mp4file.cpp \ 71 | mp4file.h \ 72 | mp4file_io.cpp \ 73 | mp4info.cpp \ 74 | mp4meta.cpp \ 75 | mp4property.cpp \ 76 | mp4property.h \ 77 | mp4track.cpp \ 78 | mp4track.h \ 79 | mp4util.cpp \ 80 | mp4util.h \ 81 | ocidescriptors.cpp \ 82 | ocidescriptors.h \ 83 | odcommands.cpp \ 84 | odcommands.h \ 85 | qosqualifiers.cpp \ 86 | qosqualifiers.h \ 87 | rtphint.cpp \ 88 | rtphint.h \ 89 | virtual_io.cpp \ 90 | virtual_io.h 91 | 92 | EXTRA_DIST = API_CHANGES \ 93 | INTERNALS \ 94 | libmp4v260.dsp \ 95 | libmp4v2_st60.dsp \ 96 | TODO 97 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_damr.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * 3GPP features implementation is based on 3GPP's TS26.234-v5.60, 19 | * and was contributed by Ximpo Group Ltd. 20 | * 21 | * Portions created by Ximpo Group Ltd. are 22 | * Copyright (C) Ximpo Group Ltd. 2003, 2004. All Rights Reserved. 23 | * 24 | * Contributor(s): 25 | * Ximpo Group Ltd. mp4v2@ximpo.com 26 | */ 27 | 28 | #include "mp4common.h" 29 | 30 | #define AMR_VENDOR 0x6d346970 31 | 32 | MP4DamrAtom::MP4DamrAtom() 33 | : MP4Atom("damr") 34 | { 35 | AddProperty( /* 0 */ 36 | new MP4Integer32Property("vendor")); 37 | 38 | AddProperty( /* 1 */ 39 | new MP4Integer8Property("decoderVersion")); 40 | 41 | AddProperty( /* 2 */ 42 | new MP4Integer16Property("modeSet")); 43 | 44 | AddProperty( /* 3 */ 45 | new MP4Integer8Property("modeChangePeriod")); 46 | 47 | AddProperty( /* 4 */ 48 | new MP4Integer8Property("framesPerSample")); 49 | 50 | } 51 | 52 | void MP4DamrAtom::Generate() 53 | { 54 | MP4Atom::Generate(); 55 | 56 | ((MP4Integer32Property*)m_pProperties[0])->SetValue(AMR_VENDOR); 57 | ((MP4Integer8Property*)m_pProperties[1])->SetValue(1); 58 | 59 | } 60 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_dref.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4DrefAtom::MP4DrefAtom() 25 | : MP4Atom("dref") 26 | { 27 | AddVersionAndFlags(); 28 | 29 | MP4Integer32Property* pCount = 30 | new MP4Integer32Property("entryCount"); 31 | pCount->SetReadOnly(); 32 | AddProperty(pCount); 33 | 34 | ExpectChildAtom("url ", Optional, Many); 35 | ExpectChildAtom("urn ", Optional, Many); 36 | ExpectChildAtom("alis", Optional, Many); 37 | } 38 | 39 | void MP4DrefAtom::Read() 40 | { 41 | /* do the usual read */ 42 | MP4Atom::Read(); 43 | 44 | // check that number of children == entryCount 45 | MP4Integer32Property* pCount = 46 | (MP4Integer32Property*)m_pProperties[2]; 47 | 48 | if (m_pChildAtoms.Size() != pCount->GetValue()) { 49 | VERBOSE_READ(GetVerbosity(), 50 | MP4Printf("Warning: dref inconsistency with number of entries")); 51 | 52 | /* fix it */ 53 | pCount->SetReadOnly(false); 54 | pCount->SetValue(m_pChildAtoms.Size()); 55 | pCount->SetReadOnly(true); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_enca.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | * Alix Marchandise-Franquet alix@cisco.com 21 | */ 22 | 23 | #include "mp4common.h" 24 | 25 | MP4EncaAtom::MP4EncaAtom() 26 | : MP4Atom("enca") 27 | { 28 | AddReserved("reserved1", 6); /* 0 */ 29 | 30 | AddProperty( /* 1 */ 31 | new MP4Integer16Property("dataReferenceIndex")); 32 | 33 | AddReserved("reserved2", 16); /* 2 */ 34 | 35 | AddProperty( /* 3 */ 36 | new MP4Integer16Property("timeScale")); 37 | 38 | AddReserved("reserved3", 2); /* 4 */ 39 | 40 | ExpectChildAtom("esds", Required, OnlyOne); 41 | ExpectChildAtom("sinf", Required, OnlyOne); 42 | } 43 | 44 | void MP4EncaAtom::Generate() 45 | { 46 | MP4Atom::Generate(); 47 | 48 | ((MP4Integer16Property*)m_pProperties[1])->SetValue(1); 49 | 50 | // property reserved2 has non-zero fixed values 51 | static u_int8_t reserved2[16] = { 52 | 0x00, 0x00, 0x00, 0x00, 53 | 0x00, 0x00, 0x00, 0x00, 54 | 0x00, 0x02, 0x00, 0x10, 55 | 0x00, 0x00, 0x00, 0x00, 56 | }; 57 | m_pProperties[2]->SetReadOnly(false); 58 | ((MP4BytesProperty*)m_pProperties[2])-> 59 | SetValue(reserved2, sizeof(reserved2)); 60 | m_pProperties[2]->SetReadOnly(true); 61 | } 62 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_free.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4FreeAtom::MP4FreeAtom() 25 | : MP4Atom("free") 26 | { 27 | } 28 | 29 | void MP4FreeAtom::Read() 30 | { 31 | Skip(); 32 | } 33 | 34 | void MP4FreeAtom::Write() 35 | { 36 | ASSERT(m_pFile); 37 | 38 | bool use64 = (GetSize() > (0xFFFFFFFF - 8)); 39 | BeginWrite(use64); 40 | #if 1 41 | for (uint64_t ix = 0; ix < GetSize(); ix++) { 42 | m_pFile->WriteUInt8(0); 43 | } 44 | #else 45 | m_pFile->SetPosition(m_pFile->GetPosition() + GetSize()); 46 | #endif 47 | FinishWrite(use64); 48 | } 49 | 50 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_gmin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * Contributer has declined to give copyright information, and gives 15 | * it freely to the world. 16 | * 17 | * Contributor(s): 18 | */ 19 | 20 | #include "mp4common.h" 21 | 22 | MP4GminAtom::MP4GminAtom() 23 | : MP4Atom("gmin") 24 | { 25 | 26 | AddVersionAndFlags(); /* 0, 1 */ 27 | 28 | AddProperty(new MP4Integer16Property("graphicsMode")); /* 2 */ 29 | AddProperty(new MP4Integer16Property("opColorRed")); /* 3 */ 30 | AddProperty(new MP4Integer16Property("opColorGreen")); /* 4 */ 31 | AddProperty(new MP4Integer16Property("opColorBlue")); /* 5 */ 32 | AddProperty(new MP4Integer16Property("balance")); /* 6 */ 33 | AddReserved("reserved", 2); /* 7 */ 34 | 35 | } 36 | 37 | void MP4GminAtom::Generate() 38 | { 39 | 40 | MP4Atom::Generate(); 41 | 42 | ((MP4Integer16Property*)m_pProperties[2])->SetValue(0x0040); 43 | ((MP4Integer16Property*)m_pProperties[3])->SetValue(0x8000); 44 | ((MP4Integer16Property*)m_pProperties[4])->SetValue(0x8000); 45 | ((MP4Integer16Property*)m_pProperties[5])->SetValue(0x8000); 46 | ((MP4Integer16Property*)m_pProperties[6])->SetValue(0x0000); 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_hinf.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4HinfAtom::MP4HinfAtom() 25 | : MP4Atom("hinf") 26 | { 27 | ExpectChildAtom("trpy", Optional, OnlyOne); 28 | ExpectChildAtom("nump", Optional, OnlyOne); 29 | ExpectChildAtom("tpyl", Optional, OnlyOne); 30 | ExpectChildAtom("maxr", Optional, Many); 31 | ExpectChildAtom("dmed", Optional, OnlyOne); 32 | ExpectChildAtom("dimm", Optional, OnlyOne); 33 | ExpectChildAtom("drep", Optional, OnlyOne); 34 | ExpectChildAtom("tmin", Optional, OnlyOne); 35 | ExpectChildAtom("tmax", Optional, OnlyOne); 36 | ExpectChildAtom("pmax", Optional, OnlyOne); 37 | ExpectChildAtom("dmax", Optional, OnlyOne); 38 | ExpectChildAtom("payt", Optional, OnlyOne); 39 | } 40 | 41 | void MP4HinfAtom::Generate() 42 | { 43 | // hinf is special in that although all it's child atoms 44 | // are optional (on read), if we generate it for writing 45 | // we really want all the children 46 | 47 | for (u_int32_t i = 0; i < m_pChildAtomInfos.Size(); i++) { 48 | MP4Atom* pChildAtom = 49 | CreateAtom(m_pChildAtomInfos[i]->m_name); 50 | 51 | AddChildAtom(pChildAtom); 52 | 53 | // and ask it to self generate 54 | pChildAtom->Generate(); 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_hnti.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4HntiAtom::MP4HntiAtom() 25 | : MP4Atom("hnti") 26 | { 27 | } 28 | 29 | void MP4HntiAtom::Read() 30 | { 31 | MP4Atom* grandParent = m_pParentAtom->GetParentAtom(); 32 | ASSERT(grandParent); 33 | if (ATOMID(grandParent->GetType()) == ATOMID("trak")) { 34 | ExpectChildAtom("sdp ", Optional, OnlyOne); 35 | } else { 36 | ExpectChildAtom("rtp ", Optional, OnlyOne); 37 | } 38 | 39 | MP4Atom::Read(); 40 | } 41 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_href.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2005. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Bill May wmay@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4HrefAtom::MP4HrefAtom() 25 | : MP4Atom("href") 26 | { 27 | AddReserved("reserved1", 6); /* 0 */ 28 | 29 | AddProperty( /* 1 */ 30 | new MP4Integer16Property("dataReferenceIndex")); 31 | ExpectChildAtom("burl", Optional, OnlyOne); 32 | } 33 | 34 | void MP4HrefAtom::Generate() 35 | { 36 | MP4Atom::Generate(); 37 | 38 | ((MP4Integer16Property*)m_pProperties[1])->SetValue(1); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_mdat.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4MdatAtom::MP4MdatAtom() 25 | : MP4Atom("mdat") 26 | { 27 | } 28 | 29 | void MP4MdatAtom::Read() 30 | { 31 | Skip(); 32 | } 33 | 34 | void MP4MdatAtom::Write() 35 | { 36 | // should never get here 37 | ASSERT(false); 38 | } 39 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_mp4a.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4Mp4aAtom::MP4Mp4aAtom() 25 | : MP4Atom("mp4a") 26 | { 27 | AddReserved("reserved1", 6); /* 0 */ 28 | 29 | AddProperty( /* 1 */ 30 | new MP4Integer16Property("dataReferenceIndex")); 31 | 32 | AddReserved("reserved2", 16); /* 2 */ 33 | 34 | AddProperty( /* 3 */ 35 | new MP4Integer16Property("timeScale")); 36 | 37 | AddReserved("reserved3", 2); /* 4 */ 38 | 39 | ExpectChildAtom("esds", Required, OnlyOne); 40 | } 41 | 42 | void MP4Mp4aAtom::Generate() 43 | { 44 | MP4Atom::Generate(); 45 | 46 | ((MP4Integer16Property*)m_pProperties[1])->SetValue(1); 47 | 48 | // property reserved2 has non-zero fixed values 49 | static u_int8_t reserved2[16] = { 50 | 0x00, 0x00, 0x00, 0x00, 51 | 0x00, 0x00, 0x00, 0x00, 52 | 0x00, 0x02, 0x00, 0x10, 53 | 0x00, 0x00, 0x00, 0x00, 54 | }; 55 | m_pProperties[2]->SetReadOnly(false); 56 | ((MP4BytesProperty*)m_pProperties[2])-> 57 | SetValue(reserved2, sizeof(reserved2)); 58 | m_pProperties[2]->SetReadOnly(true); 59 | } 60 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_mp4s.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4Mp4sAtom::MP4Mp4sAtom() 25 | : MP4Atom("mp4s") 26 | { 27 | AddReserved("reserved1", 6); 28 | AddProperty( 29 | new MP4Integer16Property("dataReferenceIndex")); 30 | 31 | ExpectChildAtom("esds", Required, OnlyOne); 32 | } 33 | 34 | void MP4Mp4sAtom::Generate() 35 | { 36 | MP4Atom::Generate(); 37 | 38 | ((MP4Integer16Property*)m_pProperties[1])->SetValue(1); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_sdp.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4SdpAtom::MP4SdpAtom() : MP4Atom("sdp ") 25 | { 26 | AddProperty( 27 | new MP4StringProperty("sdpText")); 28 | } 29 | 30 | void MP4SdpAtom::Read() 31 | { 32 | // read sdp string, length is implicit in size of atom 33 | u_int64_t size = GetEnd() - m_pFile->GetPosition(); 34 | char* data = (char*)MP4Malloc(size + 1); 35 | ASSERT(data != NULL); 36 | m_pFile->ReadBytes((u_int8_t*)data, size); 37 | data[size] = '\0'; 38 | ((MP4StringProperty*)m_pProperties[0])->SetValue(data); 39 | MP4Free(data); 40 | } 41 | 42 | void MP4SdpAtom::Write() 43 | { 44 | // since length of string is implicit in size of atom 45 | // we need to handle this specially, and not write the terminating \0 46 | MP4StringProperty* pSdp = (MP4StringProperty*)m_pProperties[0]; 47 | const char* sdpText = pSdp->GetValue(); 48 | if (sdpText) { 49 | pSdp->SetFixedLength(strlen(sdpText)); 50 | } 51 | MP4Atom::Write(); 52 | pSdp->SetFixedLength(0); 53 | } 54 | 55 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_smi.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2004. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Bill May wmay@cisco.com 20 | * 21 | * Apple iTunes META data 22 | */ 23 | 24 | #include "mp4common.h" 25 | 26 | MP4SmiAtom::MP4SmiAtom() 27 | : MP4Atom("meta") 28 | { 29 | 30 | AddProperty( new MP4BytesProperty("metadata")); 31 | 32 | } 33 | 34 | void MP4SmiAtom::Read() 35 | { 36 | // calculate size of the metadata from the atom size 37 | ((MP4BytesProperty*)m_pProperties[0])->SetValueSize(m_size); 38 | 39 | MP4Atom::Read(); 40 | } 41 | 42 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_stbl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4StblAtom::MP4StblAtom() 25 | : MP4Atom("stbl") 26 | { 27 | ExpectChildAtom("stsd", Required, OnlyOne); 28 | ExpectChildAtom("stts", Required, OnlyOne); 29 | ExpectChildAtom("ctts", Optional, OnlyOne); 30 | ExpectChildAtom("stsz", Required, OnlyOne); 31 | ExpectChildAtom("stz2", Optional, OnlyOne); 32 | ExpectChildAtom("stsc", Required, OnlyOne); 33 | ExpectChildAtom("stco", Optional, OnlyOne); 34 | ExpectChildAtom("co64", Optional, OnlyOne); 35 | ExpectChildAtom("stss", Optional, OnlyOne); 36 | ExpectChildAtom("stsh", Optional, OnlyOne); 37 | ExpectChildAtom("stdp", Optional, OnlyOne); 38 | } 39 | 40 | void MP4StblAtom::Generate() 41 | { 42 | // as usual 43 | MP4Atom::Generate(); 44 | 45 | // but we also need one of the chunk offset atoms 46 | MP4Atom* pChunkOffsetAtom; 47 | if (m_pFile->Use64Bits(GetType())) { 48 | pChunkOffsetAtom = CreateAtom("co64"); 49 | } else { 50 | pChunkOffsetAtom = CreateAtom("stco"); 51 | } 52 | 53 | AddChildAtom(pChunkOffsetAtom); 54 | 55 | // and ask it to self generate 56 | pChunkOffsetAtom->Generate(); 57 | } 58 | 59 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_stdp.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4StdpAtom::MP4StdpAtom() 25 | : MP4Atom("stdp") 26 | { 27 | AddVersionAndFlags(); 28 | 29 | MP4Integer32Property* pCount = 30 | new MP4Integer32Property("entryCount"); 31 | pCount->SetImplicit(); 32 | AddProperty(pCount); 33 | 34 | MP4TableProperty* pTable = new MP4TableProperty("entries", pCount); 35 | AddProperty(pTable); 36 | 37 | pTable->AddProperty( 38 | new MP4Integer16Property("priority")); 39 | } 40 | 41 | void MP4StdpAtom::Read() 42 | { 43 | // table entry count computed from atom size 44 | ((MP4Integer32Property*)m_pProperties[2])->SetReadOnly(false); 45 | ((MP4Integer32Property*)m_pProperties[2])->SetValue((m_size - 4) / 2); 46 | ((MP4Integer32Property*)m_pProperties[2])->SetReadOnly(true); 47 | 48 | MP4Atom::Read(); 49 | } 50 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_tfhd.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4TfhdAtom::MP4TfhdAtom() 25 | : MP4Atom("tfhd") 26 | { 27 | AddVersionAndFlags(); /* 0, 1 */ 28 | AddProperty( /* 2 */ 29 | new MP4Integer32Property("trackId")); 30 | } 31 | 32 | void MP4TfhdAtom::AddProperties(u_int32_t flags) 33 | { 34 | if (flags & 0x01) { 35 | // note this property is signed 64! 36 | AddProperty( 37 | new MP4Integer64Property("baseDataOffset")); 38 | } 39 | if (flags & 0x02) { 40 | AddProperty( 41 | new MP4Integer32Property("sampleDescriptionIndex")); 42 | } 43 | if (flags & 0x08) { 44 | AddProperty( 45 | new MP4Integer32Property("defaultSampleDuration")); 46 | } 47 | if (flags & 0x10) { 48 | AddProperty( 49 | new MP4Integer32Property("defaultSampleSize")); 50 | } 51 | if (flags & 0x20) { 52 | AddProperty( 53 | new MP4Integer32Property("defaultSampleFlags")); 54 | } 55 | } 56 | 57 | void MP4TfhdAtom::Read() 58 | { 59 | /* read atom version, flags, and trackId */ 60 | ReadProperties(0, 3); 61 | 62 | /* need to create the properties based on the atom flags */ 63 | AddProperties(GetFlags()); 64 | 65 | /* now we can read the remaining properties */ 66 | ReadProperties(3); 67 | 68 | Skip(); // to end of atom 69 | } 70 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_treftype.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4TrefTypeAtom::MP4TrefTypeAtom(const char* type) 25 | : MP4Atom(type) 26 | { 27 | MP4Integer32Property* pCount = 28 | new MP4Integer32Property("entryCount"); 29 | pCount->SetImplicit(); 30 | AddProperty(pCount); /* 0 */ 31 | 32 | MP4TableProperty* pTable = new MP4TableProperty("entries", pCount); 33 | AddProperty(pTable); /* 1 */ 34 | 35 | pTable->AddProperty( /* 1, 0 */ 36 | new MP4Integer32Property("trackId")); 37 | } 38 | 39 | void MP4TrefTypeAtom::Read() 40 | { 41 | // table entry count computed from atom size 42 | ((MP4Integer32Property*)m_pProperties[0])->SetReadOnly(false); 43 | ((MP4Integer32Property*)m_pProperties[0])->SetValue(m_size / 4); 44 | ((MP4Integer32Property*)m_pProperties[0])->SetReadOnly(true); 45 | 46 | MP4Atom::Read(); 47 | } 48 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_udta.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4UdtaAtom::MP4UdtaAtom() 25 | : MP4Atom("udta") 26 | { 27 | ExpectChildAtom("cprt", Optional, Many); 28 | ExpectChildAtom("hnti", Optional, OnlyOne); 29 | ExpectChildAtom("meta", Optional, OnlyOne); 30 | ExpectChildAtom("\251cpy", Optional, OnlyOne); 31 | ExpectChildAtom("\251des", Optional, OnlyOne); 32 | ExpectChildAtom("\251nam", Optional, OnlyOne); 33 | ExpectChildAtom("\251cmt", Optional, OnlyOne); 34 | ExpectChildAtom("\251prd", Optional, OnlyOne); 35 | } 36 | 37 | void MP4UdtaAtom::Read() 38 | { 39 | if (ATOMID(m_pParentAtom->GetType()) == ATOMID("trak")) { 40 | ExpectChildAtom("hinf", Optional, OnlyOne); 41 | } 42 | 43 | MP4Atom::Read(); 44 | } 45 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_url.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4UrlAtom::MP4UrlAtom(const char *type) 25 | : MP4Atom(type) 26 | { 27 | AddVersionAndFlags(); 28 | AddProperty(new MP4StringProperty("location")); 29 | } 30 | 31 | void MP4UrlAtom::Read() 32 | { 33 | // read the version and flags properties 34 | ReadProperties(0, 2); 35 | 36 | // check if self-contained flag is set 37 | if (!(GetFlags() & 1)) { 38 | // if not then read url location 39 | ReadProperties(2); 40 | } 41 | 42 | Skip(); // to end of atom 43 | } 44 | 45 | void MP4UrlAtom::Write() 46 | { 47 | MP4StringProperty* pLocationProp = 48 | (MP4StringProperty*)m_pProperties[2]; 49 | 50 | // if no url location has been set 51 | // then set self-contained flag 52 | // and don't attempt to write anything 53 | if (pLocationProp->GetValue() == NULL) { 54 | SetFlags(GetFlags() | 1); 55 | pLocationProp->SetImplicit(true); 56 | } else { 57 | SetFlags(GetFlags() & 0xFFFFFE); 58 | pLocationProp->SetImplicit(false); 59 | } 60 | 61 | // write atom as usual 62 | MP4Atom::Write(); 63 | } 64 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_urn.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4UrnAtom::MP4UrnAtom() 25 | : MP4Atom("urn ") 26 | { 27 | AddVersionAndFlags(); 28 | AddProperty(new MP4StringProperty("name")); 29 | AddProperty(new MP4StringProperty("location")); 30 | } 31 | 32 | void MP4UrnAtom::Read() 33 | { 34 | // read the version, flags, and name properties 35 | ReadProperties(0, 3); 36 | 37 | // check if location is present 38 | if (m_pFile->GetPosition() < GetEnd()) { 39 | // read it 40 | ReadProperties(3); 41 | } 42 | 43 | Skip(); // to end of atom 44 | } 45 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/atom_vmhd.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #include "mp4common.h" 23 | 24 | MP4VmhdAtom::MP4VmhdAtom() 25 | : MP4Atom("vmhd") 26 | { 27 | AddVersionAndFlags(); 28 | AddReserved("reserved", 8); 29 | } 30 | 31 | void MP4VmhdAtom::Generate() 32 | { 33 | MP4Atom::Generate(); 34 | 35 | SetFlags(1); 36 | } 37 | 38 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/mp4common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #ifndef __MP4_COMMON_INCLUDED__ 23 | #define __MP4_COMMON_INCLUDED__ 24 | 25 | // common includes for everything 26 | // with an internal view of the library 27 | // i.e. all the .cpp's just #include "mp4common.h" 28 | 29 | #include "mpeg4ip.h" 30 | 31 | #include "mp4.h" 32 | #include "mp4util.h" 33 | #include "mp4array.h" 34 | #include "mp4track.h" 35 | #include "mp4file.h" 36 | #include "mp4property.h" 37 | #include "mp4container.h" 38 | #include "mp4descriptor.h" 39 | #include "mp4atom.h" 40 | 41 | #include "atoms.h" 42 | #include "descriptors.h" 43 | #include "ocidescriptors.h" 44 | #include "qosqualifiers.h" 45 | 46 | #include "odcommands.h" 47 | 48 | #include "rtphint.h" 49 | #include "virtual_io.h" 50 | #endif /* __MP4_COMMON_INCLUDED__ */ 51 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/mp4meta.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/common/mp4v2/mp4meta.cpp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/mpeg4ip_version.h: -------------------------------------------------------------------------------- 1 | #define MPEG4IP_PACKAGE "mpeg4ip" 2 | #define MPEG4IP_VERSION "1.6.1" 3 | #define MPEG4IP_MAJOR_VERSION 0x1 4 | #define MPEG4IP_MINOR_VERSION 0x6 5 | #define MPEG4IP_CVS_VERSION 0x1 6 | #define MPEG4IP_HEX_VERSION ((MPEG4IP_MAJOR_VERSION << 16) | (MPEG4IP_MINOR_VERSION << 8) | MPEG4IP_CVS_VERSION) 7 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/need_for_win32.c: -------------------------------------------------------------------------------- 1 | #include "mpeg4ip.h" 2 | #include 3 | 4 | int gettimeofday (struct timeval *t, void *foo) 5 | { 6 | struct _timeb temp; 7 | _ftime(&temp); 8 | t->tv_sec = temp.time; 9 | t->tv_usec = temp.millitm * 1000; 10 | return (0); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/odcommands.h: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #ifndef __ODCOMMANDS_INCLUDED__ 23 | #define __ODCOMMANDS_INCLUDED__ 24 | 25 | // OD stream command descriptors 26 | const u_int8_t MP4ODUpdateODCommandTag = 0x01; 27 | const u_int8_t MP4ODRemoveODCommandTag = 0x02; 28 | const u_int8_t MP4ESUpdateODCommandTag = 0x03; 29 | const u_int8_t MP4ESRemoveODCommandTag = 0x04; 30 | const u_int8_t MP4IPMPUpdateODCommandTag = 0x05; 31 | const u_int8_t MP4IPMPRemoveODCommandTag = 0x06; 32 | const u_int8_t MP4ESRemoveRefODCommandTag = 0x07; 33 | 34 | class MP4ODUpdateDescriptor : public MP4Descriptor { 35 | public: 36 | MP4ODUpdateDescriptor(); 37 | }; 38 | 39 | class MP4ODRemoveDescriptor : public MP4Descriptor { 40 | public: 41 | MP4ODRemoveDescriptor(); 42 | void Read(MP4File* pFile); 43 | }; 44 | 45 | class MP4ESUpdateDescriptor : public MP4Descriptor { 46 | public: 47 | MP4ESUpdateDescriptor(); 48 | }; 49 | 50 | class MP4ESRemoveDescriptor : public MP4Descriptor { 51 | public: 52 | MP4ESRemoveDescriptor(); 53 | }; 54 | 55 | MP4Descriptor* CreateODCommand(u_int8_t tag); 56 | 57 | #endif /* __ODCOMMANDS_INCLUDED__ */ 58 | 59 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/common/mp4v2/virtual_io.h: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001 - 2005. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Ben Allison benski at nullsoft.com 20 | * 21 | * Virtual I/O support, for file support other than fopen/fread/fwrite 22 | */ 23 | 24 | #ifndef __VIRTUAL_IO_INCLUDED__ 25 | #define __VIRTUAL_IO_INCLUDED__ 26 | 27 | #include "mpeg4ip.h" 28 | 29 | extern Virtual_IO FILE_virtual_IO; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/docs/faac.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/docs/faac.html -------------------------------------------------------------------------------- /capture/libs/faac-1.28/docs/libfaac.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/docs/libfaac.pdf -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/.cvsignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | *.a 4 | *.ncb 5 | *.plg 6 | *.aps 7 | *.opt 8 | *.aac 9 | *.wav 10 | Release 11 | Debug 12 | ReleaseGUI 13 | DebugGUI -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = faac 2 | man_MANS = ../docs/faac.1 3 | 4 | faac_SOURCES = main.c input.c 5 | 6 | if WITH_MP4V2 7 | INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/common/mp4v2 8 | LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++ 9 | else 10 | INCLUDES = -I$(top_srcdir)/include 11 | LDADD = $(top_builddir)/libfaac/libfaac.la -lm 12 | endif 13 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/faac.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "faac", "faac.vcproj", "{92992E74-AEDE-46DC-AD8C-ADEA876F1A4C}" 5 | ProjectSection(ProjectDependencies) = postProject 6 | {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B} = {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B} 7 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65} = {9CC48C6E-92EB-4814-AD37-97AB3622AB65} 8 | EndProjectSection 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac", "..\libfaac\libfaac.vcproj", "{9CC48C6E-92EB-4814-AD37-97AB3622AB65}" 11 | EndProject 12 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp4v2_st", "..\common\mp4v2\libmp4v2_st60.vcproj", "{55C87BFB-9C9C-41E0-B9DC-57F41F679D4B}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Debug|Win32 = Debug|Win32 17 | Release|Win32 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {92992E74-AEDE-46DC-AD8C-ADEA876F1A4C}.Debug|Win32.ActiveCfg = Debug|Win32 21 | {92992E74-AEDE-46DC-AD8C-ADEA876F1A4C}.Debug|Win32.Build.0 = Debug|Win32 22 | {92992E74-AEDE-46DC-AD8C-ADEA876F1A4C}.Release|Win32.ActiveCfg = Release|Win32 23 | {92992E74-AEDE-46DC-AD8C-ADEA876F1A4C}.Release|Win32.Build.0 = Release|Win32 24 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|Win32.ActiveCfg = Debug|Win32 25 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|Win32.Build.0 = Debug|Win32 26 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|Win32.ActiveCfg = Release|Win32 27 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|Win32.Build.0 = Release|Win32 28 | {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B}.Debug|Win32.ActiveCfg = Debug|Win32 29 | {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B}.Debug|Win32.Build.0 = Debug|Win32 30 | {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B}.Release|Win32.ActiveCfg = Release|Win32 31 | {55C87BFB-9C9C-41E0-B9DC-57F41F679D4B}.Release|Win32.Build.0 = Release|Win32 32 | EndGlobalSection 33 | GlobalSection(SolutionProperties) = preSolution 34 | HideSolutionNode = FALSE 35 | EndGlobalSection 36 | EndGlobal 37 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/faacgui.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "faacgui", "faacgui.vcproj", "{B4FD0E50-5379-48C3-8D3E-D948A8921CA8}" 4 | ProjectSection(ProjectDependencies) = postProject 5 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65} = {9CC48C6E-92EB-4814-AD37-97AB3622AB65} 6 | EndProjectSection 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac", "..\libfaac\libfaac.vcproj", "{9CC48C6E-92EB-4814-AD37-97AB3622AB65}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Win32 = Debug|Win32 13 | Release|Win32 = Release|Win32 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {B4FD0E50-5379-48C3-8D3E-D948A8921CA8}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {B4FD0E50-5379-48C3-8D3E-D948A8921CA8}.Debug|Win32.Build.0 = Debug|Win32 18 | {B4FD0E50-5379-48C3-8D3E-D948A8921CA8}.Release|Win32.ActiveCfg = Release|Win32 19 | {B4FD0E50-5379-48C3-8D3E-D948A8921CA8}.Release|Win32.Build.0 = Release|Win32 20 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|Win32.ActiveCfg = Debug|Win32 21 | {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|Win32.ActiveCfg = Release|Win32 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/frontend/main.c -------------------------------------------------------------------------------- /capture/libs/faac-1.28/frontend/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by faacgui.rc 4 | // 5 | #define IDD_MAINDIALOG 102 6 | #define IDC_INPUTFILENAME 1000 7 | #define IDC_SELECT_INPUTFILE 1001 8 | #define IDC_OUTPUTFILENAME 1002 9 | #define IDC_SELECT_OUTPUTFILE 1003 10 | #define IDC_INPUTPARAMS 1004 11 | #define IDC_PROGRESS 1006 12 | #define IDC_ALLOWMIDSIDE 1007 13 | #define IDC_TIME 1008 14 | #define IDC_BANDWIDTH 1009 15 | #define IDC_QUALITY 1010 16 | #define IDC_USERAW 1011 17 | #define IDC_USETNS 1012 18 | #define IDC_USELFE2 1013 19 | #define IDC_USELFE 1013 20 | #define IDC_BWCTL 1014 21 | 22 | #define IDC_COMPILEDATE 1018 23 | #define IDC_MPEGVERSION 1020 24 | #define IDC_OBJECTTYPE 1021 25 | 26 | // Next default values for new objects 27 | // 28 | #ifdef APSTUDIO_INVOKED 29 | #ifndef APSTUDIO_READONLY_SYMBOLS 30 | #define _APS_NEXT_RESOURCE_VALUE 104 31 | #define _APS_NEXT_COMMAND_VALUE 40001 32 | #define _APS_NEXT_CONTROL_VALUE 1022 33 | #define _APS_NEXT_SYMED_VALUE 101 34 | #endif 35 | #endif 36 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/include/Makefile.am: -------------------------------------------------------------------------------- 1 | include_HEADERS = faac.h faaccfg.h 2 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/.cvsignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | *.a 4 | *.ncb 5 | *.plg 6 | *.opt 7 | Debug 8 | Release 9 | DebugDLL 10 | ReleaseDLL -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Backup/libfaac_dll.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac_dll", "libfaac_dll.vcproj", "{856BB8CF-B944-4D7A-9D59-4945316229AA}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Debug|Win32.Build.0 = Debug|Win32 13 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Release|Win32.ActiveCfg = Release|Win32 14 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/cl.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/cl.command.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/libfaac_dll.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit 2 | Debug|Win32|E:\github\PushRTMPStreamSync\capture\libs\faac-1.28\libfaac\| 3 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/libfaac_dll.write.1u.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/libfaac_dll.write.1u.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/libfaac_dll.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Debug/vc120.idb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Debug/vc120.idb -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.exp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.ilk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.ilk -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/DebugDLL/libfaac.lib -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libfaac.la 2 | 3 | main_SOURCES = aacquant.c bitstream.c fft.c frame.c midside.c psychkni.c util.c backpred.c channels.c filtbank.c huffman.c ltp.c tns.c 4 | if USE_DRM 5 | drm_SOURCES = kiss_fft/kiss_fftr.c kiss_fft/kiss_fft.c 6 | endif 7 | libfaac_la_SOURCES = $(main_SOURCES) $(drm_SOURCES) 8 | libfaac_la_INCLUDES = aacquant.h channels.h filtbank.h hufftab.h psych.h backpred.h coder.h frame.h midside.h tns.h bitstream.h fft.h huffman.h ltp.h util.h 9 | libfaac_la_LIBADD = -lm 10 | 11 | INCLUDES = -I$(top_srcdir)/include 12 | 13 | 14 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.Build.CppClean.log: -------------------------------------------------------------------------------- 1 | e:\github\pushrtmpstreamsync\capture\libs\faac-1.28\libfaac\release\vc120.idb 2 | e:\github\pushrtmpstreamsync\capture\libs\faac-1.28\libfaac\release\vc120.pdb 3 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/cl.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/cl.command.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/libfaac_dll.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit 2 | Release|Win32|E:\github\PushRTMPStreamSync\capture\libs\faac-1.28\libfaac\| 3 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/libfaac_dll.write.1u.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/libfaac_dll.write.1u.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/libfaac_dll.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/Release/vc120.idb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/Release/vc120.idb -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/ReleaseDLL/libfaac.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/ReleaseDLL/libfaac.exp -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/ReleaseDLL/libfaac.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/ReleaseDLL/libfaac.lib -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/UpgradeLog.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/UpgradeLog.htm -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/backpred.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * Copyright (C) 2001 Menno Bakker 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | * 19 | * $Id: backpred.h,v 1.5 2001/06/08 18:01:09 menno Exp $ 20 | */ 21 | 22 | #ifndef _AAC_BACK_H_INCLUDED 23 | #define _AAC_BACK_H_INCLUDED 24 | 25 | #define PRED_ALPHA 0.90625 26 | #define PRED_A 0.953125 27 | #define PRED_B 0.953125 28 | 29 | #define ALPHA PRED_ALPHA 30 | #define A PRED_A 31 | #define B PRED_B 32 | #define MINVAR 1.e-10 33 | 34 | /* Reset every RESET_FRAME frames. */ 35 | #define RESET_FRAME 8 36 | 37 | void PredCalcPrediction(double *act_spec, 38 | double *last_spec, 39 | int btype, 40 | int nsfb, 41 | int *isfb_width, 42 | CoderInfo *coderInfo, 43 | ChannelInfo *channelInfo, 44 | int chanNum); 45 | 46 | void PredInit(faacEncHandle hEncoder); 47 | 48 | void CopyPredInfo(CoderInfo *right, CoderInfo *left); 49 | 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/channels.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * Copyright (C) 2001 Menno Bakker 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | * 19 | * $Id: channels.h,v 1.7 2003/06/26 19:19:41 knik Exp $ 20 | */ 21 | 22 | #ifndef CHANNEL_H 23 | #define CHANNEL_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif /* __cplusplus */ 28 | 29 | #include "coder.h" 30 | 31 | typedef struct { 32 | int is_present; 33 | int ms_used[MAX_SCFAC_BANDS]; 34 | } MSInfo; 35 | 36 | typedef struct { 37 | int tag; 38 | int present; 39 | int ch_is_left; 40 | int paired_ch; 41 | int common_window; 42 | int cpe; 43 | int sce; 44 | int lfe; 45 | MSInfo msInfo; 46 | } ChannelInfo; 47 | 48 | void GetChannelInfo(ChannelInfo *channelInfo, int numChannels, int useLfe); 49 | 50 | #ifdef __cplusplus 51 | } 52 | #endif /* __cplusplus */ 53 | 54 | #endif /* CHANNEL_H */ 55 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/fft.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * $Id: fft.h,v 1.6 2005/02/02 07:50:35 sur Exp $ 4 | * Copyright (C) 2002 Krzysztof Nikiel 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | * 20 | */ 21 | 22 | #ifndef _FFT_H_ 23 | #define _FFT_H_ 24 | 25 | typedef float fftfloat; 26 | 27 | #if defined DRM && !defined DRM_1024 28 | 29 | #define MAX_FFT 10 30 | 31 | typedef struct 32 | { 33 | /* cfg[Max FFT][FFT and inverse FFT] */ 34 | void* cfg[MAX_FFT][2]; 35 | } FFT_Tables; 36 | 37 | #else /* use own FFT */ 38 | 39 | typedef struct 40 | { 41 | fftfloat **costbl; 42 | fftfloat **negsintbl; 43 | unsigned short **reordertbl; 44 | } FFT_Tables; 45 | 46 | #endif /* defined DRM && !defined DRM_1024 */ 47 | 48 | void fft_initialize ( FFT_Tables *fft_tables ); 49 | void fft_terminate ( FFT_Tables *fft_tables ); 50 | 51 | void rfft ( FFT_Tables *fft_tables, double *x, int logm ); 52 | void fft ( FFT_Tables *fft_tables, double *xr, double *xi, int logm ); 53 | void ffti ( FFT_Tables *fft_tables, double *xr, double *xi, int logm ); 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/kiss_fft/README.kiss_fft: -------------------------------------------------------------------------------- 1 | See README and COPYING files for author and copyright information. 2 | 3 | kiss_fft.c is modified in order to eliminate static variables. 4 | 5 | -- sur. 6 | 7 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/kiss_fft/kiss_fftr.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FTR_H 2 | #define KISS_FTR_H 3 | 4 | #include "kiss_fft.h" 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | 10 | /* 11 | 12 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 13 | 14 | 15 | 16 | */ 17 | 18 | typedef struct kiss_fftr_state *kiss_fftr_cfg; 19 | 20 | 21 | kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 22 | /* 23 | nfft must be even 24 | 25 | If you don't care to allocate space, use mem = lenmem = NULL 26 | */ 27 | 28 | 29 | void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); 30 | /* 31 | input timedata has nfft scalar points 32 | output freqdata has nfft/2+1 complex points 33 | */ 34 | 35 | void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); 36 | /* 37 | input freqdata has nfft/2+1 complex points 38 | output timedata has nfft scalar points 39 | */ 40 | 41 | #define kiss_fftr_free free 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaac.def: -------------------------------------------------------------------------------- 1 | LIBRARY libfaac.dll 2 | EXPORTS 3 | ; 4 | ; libfaac exports 5 | ; 6 | faacEncOpen @1 7 | faacEncGetCurrentConfiguration @2 8 | faacEncSetConfiguration @3 9 | faacEncEncode @4 10 | faacEncClose @5 11 | faacEncGetDecoderSpecificInfo @6 12 | faacEncGetVersion @7 13 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaac_dll.sdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/faac-1.28/libfaac/libfaac_dll.sdf -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaac_dll.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.40629.0 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac_dll", "libfaac_dll.vcxproj", "{856BB8CF-B944-4D7A-9D59-4945316229AA}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Win32 = Debug|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Debug|Win32.ActiveCfg = Debug|Win32 14 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Debug|Win32.Build.0 = Debug|Win32 15 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Release|Win32.ActiveCfg = Release|Win32 16 | {856BB8CF-B944-4D7A-9D59-4945316229AA}.Release|Win32.Build.0 = Release|Win32 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaac_dll.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaac_dll_drm.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac_dll", "libfaac_dll_drm.vcproj", "{AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug DRM|Win32 = Debug DRM|Win32 8 | Debug|Win32 = Debug|Win32 9 | Release DRM|Win32 = Release DRM|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Debug DRM|Win32.ActiveCfg = Debug DRM|Win32 14 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Debug DRM|Win32.Build.0 = Debug DRM|Win32 15 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Debug|Win32.ActiveCfg = Debug|Win32 16 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Debug|Win32.Build.0 = Debug|Win32 17 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Release DRM|Win32.ActiveCfg = Release DRM|Win32 18 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Release DRM|Win32.Build.0 = Release DRM|Win32 19 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Release|Win32.ActiveCfg = Release|Win32 20 | {AA2D0EFE-E73D-40AD-ADCE-8A2B54F34C6F}.Release|Win32.Build.0 = Release|Win32 21 | EndGlobalSection 22 | GlobalSection(SolutionProperties) = preSolution 23 | HideSolutionNode = FALSE 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/libfaacdrm.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | ; 3 | ; libfaac exports 4 | ; 5 | faacEncOpen @1 6 | faacEncGetCurrentConfiguration @2 7 | faacEncSetConfiguration @3 8 | faacEncEncode @4 9 | faacEncClose @5 10 | faacEncGetDecoderSpecificInfo @6 11 | faacEncGetVersion @7 12 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/ltp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * Copyright (C) 2001 Menno Bakker 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | * 19 | * $Id: ltp.h,v 1.3 2001/06/08 18:01:09 menno Exp $ 20 | */ 21 | 22 | #ifndef LTP_H 23 | #define LTP_H 24 | 25 | #include "coder.h" 26 | 27 | 28 | 29 | void LtpInit(faacEncHandle hEncoder); 30 | void LtpEnd(faacEncHandle hEncoder); 31 | int LtpEncode(faacEncHandle hEncoder, 32 | CoderInfo *coderInfo, 33 | LtpInfo *ltpInfo, 34 | TnsInfo *tnsInfo, 35 | double *p_spectrum, 36 | double *p_time_signal); 37 | void LtpReconstruct(CoderInfo *coderInfo, LtpInfo *ltpInfo, double *p_spectrum); 38 | void LtpUpdate(LtpInfo *ltpInfo, double *time_signal, 39 | double *overlap_signal, int block_size_long); 40 | 41 | #endif /* not defined LTP_H */ 42 | 43 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/midside.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * Copyright (C) 2003 Krzysztof Nikiel 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | * 19 | * $Id: midside.h,v 1.1 2003/06/26 19:40:23 knik Exp $ 20 | */ 21 | 22 | #ifndef _MIDSIDE_H 23 | #define _MIDSIDE_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif /* __cplusplus */ 28 | 29 | #include "coder.h" 30 | 31 | 32 | void MSEncode(CoderInfo *coderInfo, ChannelInfo *channelInfo, double *spectrum[MAX_CHANNELS], 33 | unsigned int numberOfChannels, unsigned int msenable); 34 | void MSReconstruct(CoderInfo *coderInfo, ChannelInfo *channelInfo, int numberOfChannels); 35 | 36 | #ifdef __cplusplus 37 | } 38 | #endif /* __cplusplus */ 39 | 40 | #endif /* _MIDSIDE_H */ 41 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FAAC - Freeware Advanced Audio Coder 3 | * Copyright (C) 2001 Menno Bakker 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | * 19 | * $Id: util.h,v 1.8 2003/12/20 04:32:48 stux Exp $ 20 | */ 21 | 22 | #ifndef UTIL_H 23 | #define UTIL_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif /* __cplusplus */ 28 | 29 | #include 30 | #include 31 | 32 | #ifndef max 33 | #define max(a, b) (((a) > (b)) ? (a) : (b)) 34 | #endif 35 | #ifndef min 36 | #define min(a, b) (((a) < (b)) ? (a) : (b)) 37 | #endif 38 | 39 | #ifndef M_PI 40 | #define M_PI 3.14159265358979323846 41 | #endif 42 | 43 | /* Memory functions */ 44 | #define AllocMemory(size) malloc(size) 45 | #define FreeMemory(block) free(block) 46 | #define SetMemory(block, value, size) memset(block, value, size) 47 | 48 | int GetSRIndex(unsigned int sampleRate); 49 | int GetMaxPredSfb(int samplingRateIdx); 50 | unsigned int MaxBitrate(unsigned long sampleRate); 51 | unsigned int MinBitrate(); 52 | unsigned int MaxBitresSize(unsigned long bitRate, unsigned long sampleRate); 53 | unsigned int BitAllocation(double pe, int short_block); 54 | 55 | #ifdef __cplusplus 56 | } 57 | #endif /* __cplusplus */ 58 | 59 | #endif /* UTIL_H */ 60 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/libfaac/version.h: -------------------------------------------------------------------------------- 1 | #ifndef _VERSION_H_ 2 | #define _VERSION_H_ 3 | 4 | #define FAAC_RELEASE 1 5 | 6 | #define FAAC_VERSION "1.28" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/plugins/cooledit/FAAC.def: -------------------------------------------------------------------------------- 1 | LIBRARY 2 | 3 | EXPORTS 4 | QueryCoolFilter 5 | OpenFilterOutput 6 | CloseFilterOutput 7 | WriteFilterOutput 8 | OpenFilterInput 9 | CloseFilterInput 10 | ReadFilterInput 11 | FilterUnderstandsFormat 12 | FilterGetFileSize 13 | FilterOptionsString 14 | FilterGetOptions 15 | GetSuggestedSampleType 16 | ; DIALOGMsgProc 17 | ; FilterOptions 18 | ; FilterSetOptions 19 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/plugins/cooledit/Readme.txt: -------------------------------------------------------------------------------- 1 | +-----------------------------------------------------------------+ 2 | | | 3 | | Cooledit/Audition plugin | 4 | | ------------------------ | 5 | | | 6 | +-----------------------------------------------------------------+ 7 | 8 | This program is free software; you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License. 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY. 12 | 13 | ---------------------------------------------------------------------------- 14 | 15 | FAAC is a codec plugin for Cooledit/Audition to import and export .aac/.mp4 files. 16 | 17 | To use it: 18 | ---------- 19 | 20 | 1) put FAAC and FAAD2 packages into the same folder; 21 | 2) open the project, set "Active Configuration = FAAC - win32 Release" and compile; 22 | 3) copy FAAC.flt into CoolEdit folder and delete flt.dat 23 | 24 | To write .mp4 files: 25 | -------------------- 26 | 27 | Select "Write .mp4" in the config dialog or 28 | append .mp4 extension to the name of file in the "Save waveform as" dialog. 29 | 30 | ---------------------------------------------------------------------------- 31 | 32 | For suggestions, bugs report, etc., you can contact me at 33 | ntnfrn_email-temp@yahoo.it 34 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/plugins/cooledit/aacInfoLib.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacInfoLib", "aacInfoLib.vcproj", "{3257D980-5029-486B-94DC-AA520B501C62}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.Build.0 = Debug|Win32 14 | {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.ActiveCfg = Release|Win32 15 | {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /capture/libs/faac-1.28/plugins/cooledit/defines.h: -------------------------------------------------------------------------------- 1 | /* 2 | FAAC - codec plugin for Cooledit 3 | Copyright (C) 2002-2004 Antonio Foranna 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program; if not, write to the Free Software 16 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | The author can be contacted at: 19 | ntnfrn_email-temp@yahoo.it 20 | */ 21 | 22 | #define APP_NAME "MPEG4-AAC" 23 | #define APP_VER "v2.6" 24 | #define REGISTRY_PROGRAM_NAME "SOFTWARE\\4N\\CoolEdit\\AAC-MPEG4" 25 | 26 | //#define USE_OUTPUT_FOLDER 27 | #define USE_IMPORT_TAG 28 | #define USE_PATHEXT 29 | 30 | // ********************************************************************************************* 31 | 32 | #define FREE_ARRAY(ptr) \ 33 | { \ 34 | if(ptr!=NULL) \ 35 | free(ptr); \ 36 | ptr=NULL; \ 37 | } 38 | 39 | // ----------------------------------------------------------------------------------------------- 40 | 41 | #define GLOBALLOCK(ptr,handle,type,ret) \ 42 | { \ 43 | if(!(ptr=(type *)GlobalLock(handle))) \ 44 | { \ 45 | MessageBox(0, "GlobalLock", APP_NAME " plugin", MB_OK|MB_ICONSTOP); \ 46 | ret; \ 47 | } \ 48 | } 49 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_byteorder.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | /** 24 | * @file SDL_byteorder.h 25 | * @deprecated Use SDL_endian.h instead 26 | */ 27 | 28 | /* DEPRECATED */ 29 | #include "SDL_endian.h" 30 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | #ifndef _SDL_config_h 24 | #define _SDL_config_h 25 | 26 | #include "SDL_platform.h" 27 | 28 | /* Add any platform that doesn't build using the configure system */ 29 | #if defined(__DREAMCAST__) 30 | #include "SDL_config_dreamcast.h" 31 | #elif defined(__MACOS__) 32 | #include "SDL_config_macos.h" 33 | #elif defined(__MACOSX__) 34 | #include "SDL_config_macosx.h" 35 | #elif defined(__SYMBIAN32__) 36 | #include "SDL_config_symbian.h" /* must be before win32! */ 37 | #elif defined(__WIN32__) 38 | #include "SDL_config_win32.h" 39 | #elif defined(__OS2__) 40 | #include "SDL_config_os2.h" 41 | #else 42 | #include "SDL_config_minimal.h" 43 | #endif /* platform config */ 44 | 45 | #endif /* _SDL_config_h */ 46 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_copying.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_getenv.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | /** @file SDL_getenv.h 24 | * @deprecated Use SDL_stdinc.h instead 25 | */ 26 | 27 | /* DEPRECATED */ 28 | #include "SDL_stdinc.h" 29 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_name.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef _SDLname_h_ 3 | #define _SDLname_h_ 4 | 5 | #if defined(__STDC__) || defined(__cplusplus) 6 | #define NeedFunctionPrototypes 1 7 | #endif 8 | 9 | #define SDL_NAME(X) SDL_##X 10 | 11 | #endif /* _SDLname_h_ */ 12 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/SDL_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | /** @file SDL_types.h 24 | * @deprecated Use SDL_stdinc.h instead. 25 | */ 26 | 27 | /* DEPRECATED */ 28 | #include "SDL_stdinc.h" 29 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/SDL/close_code.h: -------------------------------------------------------------------------------- 1 | /* 2 | SDL - Simple DirectMedia Layer 3 | Copyright (C) 1997-2012 Sam Lantinga 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Library General Public 7 | License as published by the Free Software Foundation; either 8 | version 2 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Library General Public License for more details. 14 | 15 | You should have received a copy of the GNU Library General Public 16 | License along with this library; if not, write to the Free 17 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 | 19 | Sam Lantinga 20 | slouken@libsdl.org 21 | */ 22 | 23 | /** 24 | * @file close_code.h 25 | * This file reverses the effects of begin_code.h and should be included 26 | * after you finish any function and structure declarations in your headers 27 | */ 28 | 29 | #undef _begin_code_h 30 | 31 | /** 32 | * @file close_code.h 33 | * Reset structure packing at previous byte alignment 34 | */ 35 | #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) 36 | #ifdef __BORLANDC__ 37 | #pragma nopackwarning 38 | #endif 39 | #if (defined(__MWERKS__) && defined(__MACOS__)) 40 | #pragma options align=reset 41 | #pragma enumsalwaysint reset 42 | #else 43 | #pragma pack(pop) 44 | #endif 45 | #endif /* Compiler needs structure packing set */ 46 | 47 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/_mingw.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/include/_mingw.h -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavdevice/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVDEVICE_VERSION_H 20 | #define AVDEVICE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * @ingroup lavd 25 | * Libavdevice version macros 26 | */ 27 | 28 | #include "libavutil/version.h" 29 | 30 | #define LIBAVDEVICE_VERSION_MAJOR 55 31 | #define LIBAVDEVICE_VERSION_MINOR 13 32 | #define LIBAVDEVICE_VERSION_MICRO 101 33 | 34 | #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ 35 | LIBAVDEVICE_VERSION_MINOR, \ 36 | LIBAVDEVICE_VERSION_MICRO) 37 | #define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \ 38 | LIBAVDEVICE_VERSION_MINOR, \ 39 | LIBAVDEVICE_VERSION_MICRO) 40 | #define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT 41 | 42 | #define LIBAVDEVICE_IDENT "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION) 43 | 44 | /** 45 | * FF_API_* defines may be placed below to indicate public API that will be 46 | * dropped at a future version bump. The defines themselves are not part of 47 | * the public API and may change, break or disappear at any time. 48 | */ 49 | 50 | #endif /* AVDEVICE_VERSION_H */ 51 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavfilter/avfiltergraph.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Filter graphs 3 | * copyright (c) 2007 Bobby Bingham 4 | * 5 | * This file is part of FFmpeg. 6 | * 7 | * FFmpeg is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * FFmpeg is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with FFmpeg; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef AVFILTER_AVFILTERGRAPH_H 23 | #define AVFILTER_AVFILTERGRAPH_H 24 | 25 | #include "avfilter.h" 26 | #include "libavutil/log.h" 27 | 28 | #endif /* AVFILTER_AVFILTERGRAPH_H */ 29 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/adler32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_ADLER32_H 22 | #define AVUTIL_ADLER32_H 23 | 24 | #include 25 | #include "attributes.h" 26 | 27 | /** 28 | * @file 29 | * Public header for libavutil Adler32 hasher 30 | * 31 | * @defgroup lavu_adler32 Adler32 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | /** 37 | * Calculate the Adler32 checksum of a buffer. 38 | * 39 | * Passing the return value to a subsequent av_adler32_update() call 40 | * allows the checksum of multiple buffers to be calculated as though 41 | * they were concatenated. 42 | * 43 | * @param adler initial checksum value 44 | * @param buf pointer to input buffer 45 | * @param len size of input buffer 46 | * @return updated checksum 47 | */ 48 | unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, 49 | unsigned int len) av_pure; 50 | 51 | /** 52 | * @} 53 | */ 54 | 55 | #endif /* AVUTIL_ADLER32_H */ 56 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/aes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2007 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_AES_H 22 | #define AVUTIL_AES_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | /** 30 | * @defgroup lavu_aes AES 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | extern const int av_aes_size; 36 | 37 | struct AVAES; 38 | 39 | /** 40 | * Allocate an AVAES context. 41 | */ 42 | struct AVAES *av_aes_alloc(void); 43 | 44 | /** 45 | * Initialize an AVAES context. 46 | * @param key_bits 128, 192 or 256 47 | * @param decrypt 0 for encryption, 1 for decryption 48 | */ 49 | int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); 50 | 51 | /** 52 | * Encrypt or decrypt a buffer using a previously initialized context. 53 | * @param count number of 16 byte blocks 54 | * @param dst destination array, can be equal to src 55 | * @param src source array, can be equal to dst 56 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used 57 | * @param decrypt 0 for encryption, 1 for decryption 58 | */ 59 | void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); 60 | 61 | /** 62 | * @} 63 | */ 64 | 65 | #endif /* AVUTIL_AES_H */ 66 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/audioconvert.h: -------------------------------------------------------------------------------- 1 | 2 | #include "version.h" 3 | 4 | #if FF_API_AUDIOCONVERT 5 | #include "channel_layout.h" 6 | #endif 7 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffconf */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 7 | #endif /* AVUTIL_AVCONFIG_H */ 8 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | #ifndef AVUTIL_FFVERSION_H 2 | #define AVUTIL_FFVERSION_H 3 | #define FFMPEG_VERSION "N-62994-g2baf1c8" 4 | #endif /* AVUTIL_FFVERSION_H */ 5 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/intfloat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_INTFLOAT_H 22 | #define AVUTIL_INTFLOAT_H 23 | 24 | #include 25 | #include "attributes.h" 26 | 27 | union av_intfloat32 { 28 | uint32_t i; 29 | float f; 30 | }; 31 | 32 | union av_intfloat64 { 33 | uint64_t i; 34 | double f; 35 | }; 36 | 37 | /** 38 | * Reinterpret a 32-bit integer as a float. 39 | */ 40 | static av_always_inline float av_int2float(uint32_t i) 41 | { 42 | union av_intfloat32 v; 43 | v.i = i; 44 | return v.f; 45 | } 46 | 47 | /** 48 | * Reinterpret a float as a 32-bit integer. 49 | */ 50 | static av_always_inline uint32_t av_float2int(float f) 51 | { 52 | union av_intfloat32 v; 53 | v.f = f; 54 | return v.i; 55 | } 56 | 57 | /** 58 | * Reinterpret a 64-bit integer as a double. 59 | */ 60 | static av_always_inline double av_int2double(uint64_t i) 61 | { 62 | union av_intfloat64 v; 63 | v.i = i; 64 | return v.f; 65 | } 66 | 67 | /** 68 | * Reinterpret a double as a 64-bit integer. 69 | */ 70 | static av_always_inline uint64_t av_double2int(double f) 71 | { 72 | union av_intfloat64 v; 73 | v.f = f; 74 | return v.i; 75 | } 76 | 77 | #endif /* AVUTIL_INTFLOAT_H */ 78 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/intfloat_readwrite.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2005 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_INTFLOAT_READWRITE_H 22 | #define AVUTIL_INTFLOAT_READWRITE_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | #if FF_API_INTFLOAT 30 | /* IEEE 80 bits extended float */ 31 | typedef struct AVExtFloat { 32 | uint8_t exponent[2]; 33 | uint8_t mantissa[8]; 34 | } AVExtFloat; 35 | 36 | attribute_deprecated double av_int2dbl(int64_t v) av_const; 37 | attribute_deprecated float av_int2flt(int32_t v) av_const; 38 | attribute_deprecated double av_ext2dbl(const AVExtFloat ext) av_const; 39 | attribute_deprecated int64_t av_dbl2int(double d) av_const; 40 | attribute_deprecated int32_t av_flt2int(float d) av_const; 41 | attribute_deprecated AVExtFloat av_dbl2ext(double d) av_const; 42 | #endif /* FF_API_INTFLOAT */ 43 | 44 | #endif /* AVUTIL_INTFLOAT_READWRITE_H */ 45 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | /** 20 | * @file 21 | * @ingroup lavu 22 | * Utility Preprocessor macros 23 | */ 24 | 25 | #ifndef AVUTIL_MACROS_H 26 | #define AVUTIL_MACROS_H 27 | 28 | /** 29 | * @addtogroup preproc_misc Preprocessor String Macros 30 | * 31 | * String manipulation macros 32 | * 33 | * @{ 34 | */ 35 | 36 | #define AV_STRINGIFY(s) AV_TOSTRING(s) 37 | #define AV_TOSTRING(s) #s 38 | 39 | #define AV_GLUE(a, b) a ## b 40 | #define AV_JOIN(a, b) AV_GLUE(a, b) 41 | 42 | /** 43 | * @} 44 | */ 45 | 46 | #define AV_PRAGMA(s) _Pragma(#s) 47 | 48 | #endif /* AVUTIL_MACROS_H */ 49 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/murmur3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Reimar Döffinger 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_MURMUR3_H 22 | #define AVUTIL_MURMUR3_H 23 | 24 | #include 25 | 26 | struct AVMurMur3 *av_murmur3_alloc(void); 27 | void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed); 28 | void av_murmur3_init(struct AVMurMur3 *c); 29 | void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, int len); 30 | void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]); 31 | 32 | #endif /* AVUTIL_MURMUR3_H */ 33 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/random_seed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009 Baptiste Coudurier 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RANDOM_SEED_H 22 | #define AVUTIL_RANDOM_SEED_H 23 | 24 | #include 25 | /** 26 | * @addtogroup lavu_crypto 27 | * @{ 28 | */ 29 | 30 | /** 31 | * Get a seed to use in conjunction with random functions. 32 | * This function tries to provide a good seed at a best effort bases. 33 | * Its possible to call this function multiple times if more bits are needed. 34 | * It can be quite slow, which is why it should only be used as seed for a faster 35 | * PRNG. The quality of the seed depends on the platform. 36 | */ 37 | uint32_t av_get_random_seed(void); 38 | 39 | /** 40 | * @} 41 | */ 42 | 43 | #endif /* AVUTIL_RANDOM_SEED_H */ 44 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/replaygain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * This file is part of FFmpeg. 4 | * 5 | * FFmpeg is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * FFmpeg is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with FFmpeg; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef AVUTIL_REPLAYGAIN_H 21 | #define AVUTIL_REPLAYGAIN_H 22 | 23 | #include 24 | 25 | /** 26 | * ReplayGain information (see 27 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). 28 | * The size of this struct is a part of the public ABI. 29 | */ 30 | typedef struct AVReplayGain { 31 | /** 32 | * Track replay gain in microbels (divide by 100000 to get the value in dB). 33 | * Should be set to INT32_MIN when unknown. 34 | */ 35 | int32_t track_gain; 36 | /** 37 | * Peak track amplitude, with 100000 representing full scale (but values 38 | * may overflow). 0 when unknown. 39 | */ 40 | uint32_t track_peak; 41 | /** 42 | * Same as track_gain, but for the whole album. 43 | */ 44 | int32_t album_gain; 45 | /** 46 | * Same as track_peak, but for the whole album, 47 | */ 48 | uint32_t album_peak; 49 | } AVReplayGain; 50 | 51 | #endif /* AVUTIL_REPLAYGAIN_H */ 52 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libavutil/time.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000-2003 Fabrice Bellard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_TIME_H 22 | #define AVUTIL_TIME_H 23 | 24 | #include 25 | 26 | /** 27 | * Get the current time in microseconds. 28 | */ 29 | int64_t av_gettime(void); 30 | 31 | /** 32 | * Sleep for a period of time. Although the duration is expressed in 33 | * microseconds, the actual delay may be rounded to the precision of the 34 | * system timer. 35 | * 36 | * @param usec Number of microseconds to sleep. 37 | * @return zero on success or (negative) error code. 38 | */ 39 | int av_usleep(unsigned usec); 40 | 41 | #endif /* AVUTIL_TIME_H */ 42 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libpostproc/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef POSTPROC_POSTPROCESS_VERSION_H 22 | #define POSTPROC_POSTPROCESS_VERSION_H 23 | 24 | /** 25 | * @file 26 | * Libpostproc version macros 27 | */ 28 | 29 | #include "libavutil/avutil.h" 30 | 31 | #define LIBPOSTPROC_VERSION_MAJOR 52 32 | #define LIBPOSTPROC_VERSION_MINOR 3 33 | #define LIBPOSTPROC_VERSION_MICRO 100 34 | 35 | #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ 36 | LIBPOSTPROC_VERSION_MINOR, \ 37 | LIBPOSTPROC_VERSION_MICRO) 38 | #define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \ 39 | LIBPOSTPROC_VERSION_MINOR, \ 40 | LIBPOSTPROC_VERSION_MICRO) 41 | #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT 42 | 43 | #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) 44 | 45 | #endif /* POSTPROC_POSTPROCESS_VERSION_H */ 46 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/include/libswresample/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of libswresample 5 | * 6 | * libswresample is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * libswresample is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with libswresample; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef SWR_VERSION_H 22 | #define SWR_VERSION_H 23 | 24 | /** 25 | * @file 26 | * Libswresample version macros 27 | */ 28 | 29 | #include "libavutil/avutil.h" 30 | 31 | #define LIBSWRESAMPLE_VERSION_MAJOR 0 32 | #define LIBSWRESAMPLE_VERSION_MINOR 18 33 | #define LIBSWRESAMPLE_VERSION_MICRO 100 34 | 35 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ 36 | LIBSWRESAMPLE_VERSION_MINOR, \ 37 | LIBSWRESAMPLE_VERSION_MICRO) 38 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \ 39 | LIBSWRESAMPLE_VERSION_MINOR, \ 40 | LIBSWRESAMPLE_VERSION_MICRO) 41 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT 42 | 43 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION) 44 | 45 | #endif /* SWR_VERSION_H */ 46 | -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/SDL.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/SDL.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/SDLmain.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/SDLmain.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/avcodec.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/avcodec.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/avdevice.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/avdevice.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/avfilter.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/avfilter.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/avformat.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/avformat.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/avutil.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/avutil.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/postproc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/postproc.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/swresample.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/swresample.lib -------------------------------------------------------------------------------- /capture/libs/ffmpeg/lib/swscale.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/ffmpeg/lib/swscale.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/include/opencv/cxmisc.h: -------------------------------------------------------------------------------- 1 | #ifndef __OPENCV_OLD_CXMISC_H__ 2 | #define __OPENCV_OLD_CXMISC_H__ 3 | 4 | #include "opencv2/core/internal.hpp" 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/include/opencv2/flann/config.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright 2008-2011 Marius Muja (mariusm@cs.ubc.ca). All rights reserved. 5 | * Copyright 2008-2011 David G. Lowe (lowe@cs.ubc.ca). All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * 1. Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * 2. Redistributions in binary form must reproduce the above copyright 14 | * notice, this list of conditions and the following disclaimer in the 15 | * documentation and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | *************************************************************************/ 28 | 29 | 30 | #ifndef OPENCV_FLANN_CONFIG_H_ 31 | #define OPENCV_FLANN_CONFIG_H_ 32 | 33 | #ifdef FLANN_VERSION_ 34 | #undef FLANN_VERSION_ 35 | #endif 36 | #define FLANN_VERSION_ "1.6.10" 37 | 38 | #endif /* OPENCV_FLANN_CONFIG_H_ */ 39 | -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/include/opencv2/flann/dummy.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef OPENCV_FLANN_DUMMY_H_ 3 | #define OPENCV_FLANN_DUMMY_H_ 4 | 5 | namespace cvflann 6 | { 7 | 8 | #if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS 9 | __declspec(dllexport) 10 | #endif 11 | void dummyfunc(); 12 | 13 | } 14 | 15 | 16 | #endif /* OPENCV_FLANN_DUMMY_H_ */ 17 | -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/include/opencv2/opencv_modules.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * ** File generated automatically, do not modify ** 3 | * 4 | * This file defines the list of modules available in current build configuration 5 | * 6 | * 7 | */ 8 | 9 | #define HAVE_OPENCV_CALIB3D 10 | #define HAVE_OPENCV_CONTRIB 11 | #define HAVE_OPENCV_CORE 12 | #define HAVE_OPENCV_FEATURES2D 13 | #define HAVE_OPENCV_FLANN 14 | #define HAVE_OPENCV_GPU 15 | #define HAVE_OPENCV_HIGHGUI 16 | #define HAVE_OPENCV_IMGPROC 17 | #define HAVE_OPENCV_LEGACY 18 | #define HAVE_OPENCV_ML 19 | #define HAVE_OPENCV_NONFREE 20 | #define HAVE_OPENCV_OBJDETECT 21 | #define HAVE_OPENCV_OCL 22 | #define HAVE_OPENCV_PHOTO 23 | #define HAVE_OPENCV_STITCHING 24 | #define HAVE_OPENCV_SUPERRES 25 | #define HAVE_OPENCV_TS 26 | #define HAVE_OPENCV_VIDEO 27 | #define HAVE_OPENCV_VIDEOSTAB 28 | 29 | 30 | -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_calib3d2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_calib3d2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_calib3d2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_calib3d2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_contrib2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_contrib2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_contrib2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_contrib2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_core2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_core2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_core2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_core2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_features2d2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_features2d2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_features2d2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_features2d2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_flann2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_flann2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_flann2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_flann2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_gpu2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_gpu2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_gpu2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_gpu2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_highgui2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_highgui2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_highgui2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_highgui2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_imgproc2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_imgproc2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_imgproc2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_imgproc2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_legacy2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_legacy2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_legacy2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_legacy2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ml2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ml2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ml2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ml2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_nonfree2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_nonfree2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_nonfree2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_nonfree2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_objdetect2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_objdetect2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_objdetect2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_objdetect2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ocl2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ocl2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ocl2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ocl2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_photo2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_photo2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_photo2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_photo2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_stitching2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_stitching2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_stitching2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_stitching2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_superres2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_superres2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_superres2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_superres2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ts2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ts2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ts2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_ts2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_video2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_video2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_video2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_video2410d.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_videostab2410.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_videostab2410.lib -------------------------------------------------------------------------------- /capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_videostab2410d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/opencv-2.4.10/x86/vc12/lib/opencv_videostab2410d.lib -------------------------------------------------------------------------------- /capture/libs/rtmp/include/librtmp/http.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTMP_HTTP_H__ 2 | #define __RTMP_HTTP_H__ 3 | /* 4 | * Copyright (C) 2010 Howard Chu 5 | * Copyright (C) 2010 Antti Ajanki 6 | * 7 | * This file is part of librtmp. 8 | * 9 | * librtmp is free software; you can redistribute it and/or modify 10 | * it under the terms of the GNU Lesser General Public License as 11 | * published by the Free Software Foundation; either version 2.1, 12 | * or (at your option) any later version. 13 | * 14 | * librtmp is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public License 20 | * along with librtmp see the file COPYING. If not, write to 21 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 22 | * Boston, MA 02110-1301, USA. 23 | * http://www.gnu.org/copyleft/lgpl.html 24 | */ 25 | 26 | typedef enum { 27 | HTTPRES_OK, /* result OK */ 28 | HTTPRES_OK_NOT_MODIFIED, /* not modified since last request */ 29 | HTTPRES_NOT_FOUND, /* not found */ 30 | HTTPRES_BAD_REQUEST, /* client error */ 31 | HTTPRES_SERVER_ERROR, /* server reported an error */ 32 | HTTPRES_REDIRECTED, /* resource has been moved */ 33 | HTTPRES_LOST_CONNECTION /* connection lost while waiting for data */ 34 | } HTTPResult; 35 | 36 | struct HTTP_ctx { 37 | char *date; 38 | int size; 39 | int status; 40 | void *data; 41 | }; 42 | 43 | typedef size_t (HTTP_read_callback)(void *ptr, size_t size, size_t nmemb, void *stream); 44 | 45 | HTTPResult HTTP_get(struct HTTP_ctx *http, const char *url, HTTP_read_callback *cb); 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /capture/libs/rtmp/lib/librtmp.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/rtmp/lib/librtmp.lib -------------------------------------------------------------------------------- /capture/libs/x264/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.a 3 | *.diff 4 | *.orig 5 | *.rej 6 | *.dll* 7 | *.exe 8 | *.def 9 | *.lib 10 | *.pdb 11 | *.mo 12 | *.o 13 | *.patch 14 | *.pc 15 | *.pot 16 | *.so* 17 | *.dylib 18 | .*.swp 19 | .depend 20 | .DS_Store 21 | TAGS 22 | config.h 23 | config.mak 24 | config.log 25 | x264_config.h 26 | x264 27 | checkasm 28 | 29 | *.264 30 | *.h264 31 | *.2pass 32 | *.ffindex 33 | *.avs 34 | *.mkv 35 | *.flv 36 | *.mp4 37 | *.y4m 38 | *.yuv 39 | *.log 40 | *.mbtree 41 | *.temp 42 | *.pyc 43 | *.pgd 44 | *.pgc 45 | 46 | .digress_x264 47 | dataDec.txt 48 | log.dec 49 | common/oclobj.h 50 | x264_lookahead.clbin 51 | -------------------------------------------------------------------------------- /capture/libs/x264/common/aarch64/asm-offsets.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * asm-offsets.h: asm offsets for aarch64 3 | ***************************************************************************** 4 | * Copyright (C) 2014-2019 x264 project 5 | * 6 | * Authors: Janne Grunau 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_AARCH64_ASM_OFFSETS_H 27 | #define X264_AARCH64_ASM_OFFSETS_H 28 | 29 | #define CABAC_I_LOW 0x00 30 | #define CABAC_I_RANGE 0x04 31 | #define CABAC_I_QUEUE 0x08 32 | #define CABAC_I_BYTES_OUTSTANDING 0x0c 33 | #define CABAC_P_START 0x10 34 | #define CABAC_P 0x18 35 | #define CABAC_P_END 0x20 36 | #define CABAC_F8_BITS_ENCODED 0x30 37 | #define CABAC_STATE 0x34 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /capture/libs/x264/common/aarch64/bitstream.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * bitstream.h: aarch64 bitstream functions 3 | ***************************************************************************** 4 | * Copyright (C) 2017-2019 x264 project 5 | * 6 | * Authors: Anton Mitrofanov 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_AARCH64_BITSTREAM_H 27 | #define X264_AARCH64_BITSTREAM_H 28 | 29 | #define x264_nal_escape_neon x264_template(nal_escape_neon) 30 | uint8_t *x264_nal_escape_neon( uint8_t *dst, uint8_t *src, uint8_t *end ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/aarch64/mc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * mc.h: aarch64 motion compensation 3 | ***************************************************************************** 4 | * Copyright (C) 2014-2019 x264 project 5 | * 6 | * Authors: Janne Grunau 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_AARCH64_MC_H 27 | #define X264_AARCH64_MC_H 28 | 29 | #define x264_mc_init_aarch64 x264_template(mc_init_aarch64) 30 | void x264_mc_init_aarch64( int cpu, x264_mc_functions_t *pf ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/arm/bitstream.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * bitstream.h: arm bitstream functions 3 | ***************************************************************************** 4 | * Copyright (C) 2017-2019 x264 project 5 | * 6 | * Authors: Anton Mitrofanov 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_ARM_BITSTREAM_H 27 | #define X264_ARM_BITSTREAM_H 28 | 29 | #define x264_nal_escape_neon x264_template(nal_escape_neon) 30 | uint8_t *x264_nal_escape_neon( uint8_t *dst, uint8_t *src, uint8_t *end ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/arm/mc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * mc.h: arm motion compensation 3 | ***************************************************************************** 4 | * Copyright (C) 2009-2019 x264 project 5 | * 6 | * Authors: David Conrad 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_ARM_MC_H 27 | #define X264_ARM_MC_H 28 | 29 | #define x264_mc_init_arm x264_template(mc_init_arm) 30 | void x264_mc_init_arm( int cpu, x264_mc_functions_t *pf ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/common.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * common.c: misc common functions 3 | ***************************************************************************** 4 | * Copyright (C) 2003-2019 x264 project 5 | * 6 | * Authors: Loren Merritt 7 | * Laurent Aimar 8 | * 9 | * This program is free software; you can redistribute it and/or modify 10 | * it under the terms of the GNU General Public License as published by 11 | * the Free Software Foundation; either version 2 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 22 | * 23 | * This program is also available under a commercial proprietary license. 24 | * For more information, contact us at licensing@x264.com. 25 | *****************************************************************************/ 26 | 27 | #include "common.h" 28 | 29 | /**************************************************************************** 30 | * x264_log: 31 | ****************************************************************************/ 32 | void x264_log( x264_t *h, int i_level, const char *psz_fmt, ... ) 33 | { 34 | if( !h || i_level <= h->param.i_log_level ) 35 | { 36 | va_list arg; 37 | va_start( arg, psz_fmt ); 38 | if( !h ) 39 | x264_log_default( NULL, i_level, psz_fmt, arg ); 40 | else 41 | h->param.pf_log( h->param.p_log_private, i_level, psz_fmt, arg ); 42 | va_end( arg ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /capture/libs/x264/common/mips/mc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * mc.h: msa motion compensation 3 | ***************************************************************************** 4 | * Copyright (C) 2015-2019 x264 project 5 | * 6 | * Authors: Neha Rana 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_MIPS_MC_H 27 | #define X264_MIPS_MC_H 28 | 29 | #define x264_mc_init_mips x264_template(mc_init_mips) 30 | void x264_mc_init_mips( int cpu, x264_mc_functions_t *pf ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/opencl/weightp.cl: -------------------------------------------------------------------------------- 1 | /* Weightp filter a downscaled image into a temporary output buffer. 2 | * This kernel is launched once for each scale. 3 | * 4 | * Launch dimensions: width x height (in pixels) 5 | */ 6 | kernel void weightp_scaled_images( read_only image2d_t in_plane, 7 | write_only image2d_t out_plane, 8 | uint offset, 9 | uint scale, 10 | uint denom ) 11 | { 12 | int gx = get_global_id( 0 ); 13 | int gy = get_global_id( 1 ); 14 | uint4 input_val; 15 | uint4 output_val; 16 | 17 | input_val = read_imageui( in_plane, sampler, (int2)(gx, gy)); 18 | output_val = (uint4)(offset) + ( ( ((uint4)(scale)) * input_val ) >> ((uint4)(denom)) ); 19 | write_imageui( out_plane, (int2)(gx, gy), output_val ); 20 | } 21 | 22 | /* Weightp filter for the half-pel interpolated image 23 | * 24 | * Launch dimensions: width x height (in pixels) 25 | */ 26 | kernel void weightp_hpel( read_only image2d_t in_plane, 27 | write_only image2d_t out_plane, 28 | uint offset, 29 | uint scale, 30 | uint denom ) 31 | { 32 | int gx = get_global_id( 0 ); 33 | int gy = get_global_id( 1 ); 34 | uint input_val; 35 | uint output_val; 36 | 37 | input_val = read_imageui( in_plane, sampler, (int2)(gx, gy)).s0; 38 | //Unpack 39 | uint4 temp; 40 | temp.s0 = input_val & 0x00ff; temp.s1 = (input_val >> 8) & 0x00ff; 41 | temp.s2 = (input_val >> 16) & 0x00ff; temp.s3 = (input_val >> 24) & 0x00ff; 42 | 43 | temp = (uint4)(offset) + ( ( ((uint4)(scale)) * temp ) >> ((uint4)(denom)) ); 44 | 45 | //Pack 46 | output_val = temp.s0 | (temp.s1 << 8) | (temp.s2 << 16) | (temp.s3 << 24); 47 | write_imageui( out_plane, (int2)(gx, gy), output_val ); 48 | } 49 | -------------------------------------------------------------------------------- /capture/libs/x264/common/ppc/deblock.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * deblock.h: ppc deblocking 3 | ***************************************************************************** 4 | * Copyright (C) 2017-2019 x264 project 5 | * 6 | * Authors: Anton Mitrofanov 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_PPC_DEBLOCK_H 27 | #define X264_PPC_DEBLOCK_H 28 | 29 | #define x264_deblock_v_luma_altivec x264_template(deblock_v_luma_altivec) 30 | void x264_deblock_v_luma_altivec( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 ); 31 | #define x264_deblock_h_luma_altivec x264_template(deblock_h_luma_altivec) 32 | void x264_deblock_h_luma_altivec( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 ); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /capture/libs/x264/common/ppc/mc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * mc.h: ppc motion compensation 3 | ***************************************************************************** 4 | * Copyright (C) 2003-2019 x264 project 5 | * 6 | * Authors: Eric Petit 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_PPC_MC_H 27 | #define X264_PPC_MC_H 28 | 29 | #define x264_mc_init_altivec x264_template(mc_init_altivec) 30 | void x264_mc_init_altivec( x264_mc_functions_t *pf ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/ppc/pixel.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * pixel.h: ppc pixel metrics 3 | ***************************************************************************** 4 | * Copyright (C) 2003-2019 x264 project 5 | * 6 | * Authors: Eric Petit 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_PPC_PIXEL_H 27 | #define X264_PPC_PIXEL_H 28 | 29 | #define x264_pixel_init_altivec x264_template(pixel_init_altivec) 30 | void x264_pixel_init_altivec( x264_pixel_function_t *pixf ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /capture/libs/x264/common/ppc/predict.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * predict.h: ppc intra prediction 3 | ***************************************************************************** 4 | * Copyright (C) 2007-2019 x264 project 5 | * 6 | * Authors: Guillaume Poirier 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_PPC_PREDICT_H 27 | #define X264_PPC_PREDICT_H 28 | 29 | #define x264_predict_16x16_init_altivec x264_template(predict_16x16_init_altivec) 30 | void x264_predict_16x16_init_altivec( x264_predict_t pf[7] ); 31 | #define x264_predict_8x8c_init_altivec x264_template(predict_8x8c_init_altivec) 32 | void x264_predict_8x8c_init_altivec( x264_predict_t pf[7] ); 33 | 34 | #endif /* X264_PPC_PREDICT_H */ 35 | -------------------------------------------------------------------------------- /capture/libs/x264/common/x86/mc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * mc.h: x86 motion compensation 3 | ***************************************************************************** 4 | * Copyright (C) 2003-2019 x264 project 5 | * 6 | * Authors: Loren Merritt 7 | * Laurent Aimar 8 | * 9 | * This program is free software; you can redistribute it and/or modify 10 | * it under the terms of the GNU General Public License as published by 11 | * the Free Software Foundation; either version 2 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 22 | * 23 | * This program is also available under a commercial proprietary license. 24 | * For more information, contact us at licensing@x264.com. 25 | *****************************************************************************/ 26 | 27 | #ifndef X264_X86_MC_H 28 | #define X264_X86_MC_H 29 | 30 | #define x264_mc_init_mmx x264_template(mc_init_mmx) 31 | void x264_mc_init_mmx( int cpu, x264_mc_functions_t *pf ); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /capture/libs/x264/doc/regression_test.txt: -------------------------------------------------------------------------------- 1 | Here is one test method which checks that the encoder's 2 | view of decoded pictures in the same as the decoder's view. 3 | This ensures that there is no distortion besides what is 4 | inherently caused by compression. 5 | 6 | # Install and compile x264 : 7 | git clone git://git.videolan.org/x264.git x264 8 | cd x264 9 | ./configure 10 | make 11 | cd .. 12 | 13 | # Install and compile JM reference decoder : 14 | wget http://iphome.hhi.de/suehring/tml/download/jm17.2.zip 15 | unzip jm17.2.zip 16 | cd JM 17 | sh unixprep.sh 18 | cd ldecod 19 | make 20 | cd ../.. 21 | 22 | ./x264/x264 input.yuv --dump-yuv fdec.yuv -o output.h264 23 | ./JM/bin/ldecod.exe -i output.h264 -o ref.yuv 24 | diff ref.yuv fdec.yuv 25 | -------------------------------------------------------------------------------- /capture/libs/x264/doc/standards.txt: -------------------------------------------------------------------------------- 1 | x264 is written in C. The particular variant of C is: intersection of C99 and gcc>=3.4. 2 | checkasm is written in gcc, with no attempt at compatibility with anything else. 3 | 4 | We make the following additional assumptions which are true of real systems but not guaranteed by C99: 5 | * Two's complement. 6 | * Signed right-shifts are sign-extended. 7 | * int is 32-bit or larger. 8 | 9 | x86-specific assumptions: 10 | * The stack is 16-byte aligned. We align it on entry to libx264 and on entry to any thread, but the compiler must preserve alignment after that. 11 | * We call emms before any float operation and before returning from libx264, not after each mmx operation. So bad things could happen if the compiler inserts float operations where they aren't expected. 12 | -------------------------------------------------------------------------------- /capture/libs/x264/encoder/ratecontrol.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/x264/encoder/ratecontrol.c -------------------------------------------------------------------------------- /capture/libs/x264/extras/intel_dispatcher.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * intel_dispatcher.h: intel compiler cpu dispatcher override 3 | ***************************************************************************** 4 | * Copyright (C) 2014-2019 x264 project 5 | * 6 | * Authors: Anton Mitrofanov 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_INTEL_DISPATCHER_H 27 | #define X264_INTEL_DISPATCHER_H 28 | 29 | /* Feature flags using _FEATURE_* defines from immintrin.h */ 30 | extern unsigned long long __intel_cpu_feature_indicator; 31 | extern unsigned long long __intel_cpu_feature_indicator_x; 32 | 33 | /* CPU vendor independent version of dispatcher */ 34 | void __intel_cpu_features_init_x( void ); 35 | 36 | static void x264_intel_dispatcher_override( void ) 37 | { 38 | if( __intel_cpu_feature_indicator & ~1ULL ) 39 | return; 40 | __intel_cpu_feature_indicator = 0; 41 | __intel_cpu_feature_indicator_x = 0; 42 | __intel_cpu_features_init_x(); 43 | __intel_cpu_feature_indicator = __intel_cpu_feature_indicator_x; 44 | } 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /capture/libs/x264/filters/filters.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * filters.h: common filter functions 3 | ***************************************************************************** 4 | * Copyright (C) 2010-2019 x264 project 5 | * 6 | * Authors: Diogo Franco 7 | * Steven Walters 8 | * 9 | * This program is free software; you can redistribute it and/or modify 10 | * it under the terms of the GNU General Public License as published by 11 | * the Free Software Foundation; either version 2 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 22 | * 23 | * This program is also available under a commercial proprietary license. 24 | * For more information, contact us at licensing@x264.com. 25 | *****************************************************************************/ 26 | 27 | #ifndef X264_FILTERS_H 28 | #define X264_FILTERS_H 29 | 30 | #include "x264cli.h" 31 | #include "filters/video/video.h" 32 | 33 | char **x264_split_options( const char *opt_str, const char * const *options ); 34 | char *x264_get_option( const char *name, char **split_options ); 35 | int x264_otob( const char *str, int def ); // option to bool 36 | double x264_otof( const char *str, double def ); // option to float/double 37 | int x264_otoi( const char *str, int def ); // option to int 38 | char *x264_otos( char *str, char *def ); // option to string 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /capture/libs/x264/filters/video/internal.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * internal.h: video filter utilities 3 | ***************************************************************************** 4 | * Copyright (C) 2010-2019 x264 project 5 | * 6 | * Authors: Steven Walters 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #ifndef X264_FILTER_VIDEO_INTERNAL_H 27 | #define X264_FILTER_VIDEO_INTERNAL_H 28 | 29 | #include "video.h" 30 | 31 | void x264_cli_plane_copy( uint8_t *dst, int i_dst, uint8_t *src, int i_src, int w, int h ); 32 | int x264_cli_pic_copy( cli_pic_t *out, cli_pic_t *in ); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/bash-autocomplete.sh: -------------------------------------------------------------------------------- 1 | _x264() 2 | { 3 | local path args cur prev 4 | 5 | path="${COMP_LINE%%[[:blank:]]*}" 6 | args="${COMP_LINE:${#path}:$((COMP_POINT-${#path}))}" 7 | cur="${args##*[[:blank:]=]}" 8 | prev="$(sed 's/[[:blank:]=]*$//; s/^.*[[:blank:]]//' <<< "${args%%"$cur"}")" 9 | 10 | # Expand ~ 11 | printf -v path '%q' "$path" && eval path="${path/#'\~'/'~'}" 12 | 13 | COMPREPLY=($("$path" --autocomplete "$prev" "$cur")) && compopt +o default 14 | } 2>/dev/null 15 | complete -o default -F _x264 x264 16 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/cltostr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Convert standard input to a C char array, write to a file, then create an 4 | # MD5 sum of that file and append said MD5 sum as char array to the file. 5 | 6 | [ -n "$1" ] || exit 1 7 | 8 | # Filter out whitespace, empty lines, and comments. 9 | sanitize() { 10 | sed 's/^[[:space:]]*//; /^$/d; /^\/\//d' 11 | } 12 | 13 | # Convert stdin to a \0-terminated char array. 14 | dump() { 15 | echo "static const char $1[] = {" 16 | od -v -A n -t x1 | sed 's/[[:space:]]*\([[:alnum:]]\{2\}\)/0x\1, /g' 17 | echo '0x00 };' 18 | } 19 | 20 | # Print MD5 hash w/o newline character to not embed the character in the array. 21 | hash() { 22 | # md5sum is not standard, so try different platform-specific alternatives. 23 | { md5sum "$1" || md5 -q "$1" || digest -a md5 "$1"; } 2>/dev/null | 24 | cut -b -32 | tr -d '\n\r' 25 | } 26 | 27 | trap 'rm -f "$1.temp"' EXIT 28 | 29 | sanitize | tee "$1.temp" | 30 | dump 'x264_opencl_source' > "$1" 31 | 32 | hash "$1.temp" | 33 | dump 'x264_opencl_source_hash' >> "$1" 34 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/countquant_x264.pl: -------------------------------------------------------------------------------- 1 | #!/bin/env perl 2 | # countquant_x264.pl: displays statistics from x264 multipass logfiles 3 | # by Loren Merritt, 2005-4-5 4 | 5 | @size{I,P,B} = 6 | @n{I,P,B} = (0)x3; 7 | 8 | sub proc_file { 9 | my $fh = shift; 10 | while(<$fh>) { 11 | /type:(.) q:(\d+\.\d+) tex:(\d+) mv:(\d+) misc:(\d+)/ or next; 12 | $type = uc $1; 13 | $n{$type} ++; 14 | $q[int($2+.5)] ++; 15 | $avgq += $2; 16 | $avgq{$type} += $2; 17 | my $bytes = ($3+$4+$5)/8; 18 | $size{$type} += $bytes; 19 | } 20 | $size = $size{I} + $size{P} + $size{B}; 21 | $n = $n{I} + $n{P} + $n{B}; 22 | $n or die "unrecognized input\n"; 23 | } 24 | 25 | if(@ARGV) { 26 | foreach(@ARGV) { 27 | open $fh, "<", $_ or die "can't open '$_': $!"; 28 | proc_file($fh); 29 | } 30 | } else { 31 | proc_file(STDIN); 32 | } 33 | 34 | for(0..51) { 35 | $q[$_] or next; 36 | printf "q%2d: %6d %4.1f%%\n", $_, $q[$_], 100*$q[$_]/$n; 37 | } 38 | print "\n"; 39 | $digits = int(log($n+1)/log(10))+2; 40 | printf "All: %${digits}d %s avgQP:%5.2f avgBytes:%5d\n", 41 | $n, $n==$n{I}?" ":"", $avgq/$n, $size/$n; 42 | foreach(qw(I P B S)) { 43 | $n{$_} or next; 44 | printf "%s: %${digits}d (%4.1f%%) avgQP:%5.2f avgBytes:%5d\n", 45 | $_, $n{$_}, 100*$n{$_}/$n, $avgq{$_}/$n{$_}, $size{$_}/$n{$_}; 46 | } 47 | print "\n"; 48 | printf "total size: $size B = %.2f KiB = %.2f MiB\n", 49 | $size/2**10, $size/2**20; 50 | print "bitrate: ", join("\n = ", 51 | map sprintf("%.2f kbps @ %s fps", $_*$size*8/1000/$n, $_), 52 | 23.976, 25, 29.97), "\n"; 53 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/digress/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Automated regression/unit testing suite. 3 | """ 4 | 5 | __version__ = '0.2' 6 | 7 | def digress(fixture): 8 | """ 9 | Command-line helper for Digress. 10 | """ 11 | from digress.cli import Dispatcher 12 | Dispatcher(fixture).dispatch() 13 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/digress/constants.py: -------------------------------------------------------------------------------- 1 | """ 2 | All of Digress's constants. 3 | """ 4 | 5 | TEST_PASS = 0 6 | TEST_FAIL = 1 7 | TEST_DISABLED = 2 8 | TEST_SKIPPED = 3 9 | 10 | CASE_PASS = 0 11 | CASE_FAIL = 1 12 | 13 | FIXTURE_PASS = 0 14 | FIXTURE_FAIL = 1 15 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/digress/errors.py: -------------------------------------------------------------------------------- 1 | """ 2 | Digress errors. 3 | """ 4 | 5 | class DigressError(Exception): 6 | """ 7 | Digress error base class. 8 | """ 9 | 10 | class NoSuchTestError(DigressError): 11 | """ 12 | Raised when no such test exists. 13 | """ 14 | 15 | class DisabledTestError(DigressError): 16 | """ 17 | Test is disabled. 18 | """ 19 | 20 | class SkippedTestError(DigressError): 21 | """ 22 | Test is marked as skipped. 23 | """ 24 | 25 | class DisabledCaseError(DigressError): 26 | """ 27 | Case is marked as disabled. 28 | """ 29 | 30 | class SkippedCaseError(DigressError): 31 | """ 32 | Case is marked as skipped. 33 | """ 34 | 35 | class FailedTestError(DigressError): 36 | """ 37 | Test failed. 38 | """ 39 | 40 | class ComparisonError(DigressError): 41 | """ 42 | Comparison failed. 43 | """ 44 | 45 | class IncomparableError(DigressError): 46 | """ 47 | Values cannot be compared. 48 | """ 49 | 50 | class AlreadyRunError(DigressError): 51 | """ 52 | Test/case has already been run. 53 | """ 54 | 55 | class SCMError(DigressError): 56 | """ 57 | Error occurred in SCM. 58 | """ 59 | def __init__(self, message): 60 | self.message = message.replace("\n", " ") 61 | 62 | def __str__(self): 63 | return self.message 64 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/digress/scm/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Source control backends for Digress. 3 | """ 4 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/digress/scm/dummy.py: -------------------------------------------------------------------------------- 1 | """ 2 | Dummy SCM backend for Digress. 3 | """ 4 | 5 | from random import random 6 | 7 | def checkout(revision): 8 | """ 9 | Checkout a revision. 10 | """ 11 | pass 12 | 13 | def current_rev(): 14 | """ 15 | Get the current revision 16 | """ 17 | return str(random()) 18 | 19 | def revisions(rev_a, rev_b): 20 | """ 21 | Get a list of revisions from one to another. 22 | """ 23 | pass 24 | 25 | def stash(): 26 | """ 27 | Stash the repository. 28 | """ 29 | pass 30 | 31 | def unstash(): 32 | """ 33 | Unstash the repository. 34 | """ 35 | pass 36 | 37 | def bisect(command, revision): 38 | """ 39 | Perform a bisection. 40 | """ 41 | raise NotImplementedError("dummy SCM backend does not support bisection") 42 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/msvsdepend.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Output a Makefile rule describing the dependencies of a given source file. 4 | # Expected arguments are $(CC) $(CFLAGS) $(SRC) $(OBJ) 5 | 6 | set -f 7 | 8 | [ -n "$1" ] && [ -n "$3" ] && [ -n "$4" ] || exit 1 9 | 10 | # Add flags to only perform syntax checking and output a list of included files 11 | # Discard all output other than included files 12 | # Convert '\' directory separators to '/' 13 | # Remove system includes (hack: check for "/Program Files" string in path) 14 | # Add the source file itself as a dependency 15 | deps="$($1 $2 -nologo -showIncludes -W0 -Zs "$3" 2>&1 | 16 | grep '^Note: including file:' | 17 | sed 's/^Note: including file:[[:space:]]*\(.*\)$/\1/; s/\\/\//g' | 18 | sed '/\/[Pp]rogram [Ff]iles/d') 19 | $3" 20 | 21 | # Convert Windows paths to Unix paths if possible 22 | if command -v cygpath >/dev/null 2>&1 ; then 23 | IFS=' 24 | ' 25 | deps="$(cygpath -u -- $deps)" 26 | elif grep -q 'Microsoft' /proc/sys/kernel/osrelease 2>/dev/null ; then 27 | # Running under WSL. We don't have access to cygpath but since the Windows 28 | # file system resides under "/mnt//" we can simply replace 29 | # "C:" with "/mnt/c". This command uses a GNU extension to sed but that's 30 | # available on WSL so we don't need to limit ourselves by what POSIX says. 31 | deps="$(printf '%s' "$deps" | sed 's/^\([a-zA-Z]\):/\/mnt\/\L\1/')" 32 | fi 33 | 34 | # Escape characters as required to create valid Makefile file names 35 | escape() { 36 | sed 's/ /\\ /g; s/#/\\#/g; s/\$/\$\$/g' 37 | } 38 | 39 | # Remove prefixes that are equal to the working directory 40 | # Sort and remove duplicate entries 41 | # Escape and collapse the dependencies into one line 42 | deps="$(printf '%s' "$deps" | 43 | sed "s/^$(pwd | sed 's/\//\\\//g')\///; s/^\.\///" | 44 | sort | uniq | 45 | escape | tr -s '\n\r' ' ' | sed 's/^ *\(.*\) $/\1/')" 46 | 47 | # Escape the target file name as well 48 | target="$(printf '%s' "$4" | escape)" 49 | 50 | printf '%s: %s\n' "$target" "$deps" 51 | -------------------------------------------------------------------------------- /capture/libs/x264/tools/q_matrix_jvt.cfg: -------------------------------------------------------------------------------- 1 | # This an example configuration file for initializing the quantization matrix. 2 | # Altogether 6 matrices for 4x4 blocks and 2 matrix for 8x8 blocks. 3 | # The values range from 1 to 255. 4 | # If first value of matrix is equal to 0, default values ("JVT") will be used 5 | # for that matrix. 6 | # If a matrix is completely omitted, it will be filled with 16s. 7 | # 8 | # Note: JM expects CHROMAU and CHROMAV to be specified separately, whereas 9 | # x264 forces them to use the same matrix. If U and V are specified to have 10 | # different matrices, only the first is used. 11 | #################################################################################### 12 | 13 | INTRA4X4_LUMA = 14 | 6,13,20,28, 15 | 13,20,28,32, 16 | 20,28,32,37, 17 | 28,32,37,42 18 | 19 | INTRA4X4_CHROMAU = 20 | 6,13,20,28, 21 | 13,20,28,32, 22 | 20,28,32,37, 23 | 28,32,37,42 24 | 25 | INTRA4X4_CHROMAV = 26 | 6,13,20,28, 27 | 13,20,28,32, 28 | 20,28,32,37, 29 | 28,32,37,42 30 | 31 | INTER4X4_LUMA = 32 | 10,14,20,24, 33 | 14,20,24,27, 34 | 20,24,27,30, 35 | 24,27,30,34 36 | 37 | INTER4X4_CHROMAU = 38 | 10,14,20,24, 39 | 14,20,24,27, 40 | 20,24,27,30, 41 | 24,27,30,34 42 | 43 | INTER4X4_CHROMAV = 44 | 10,14,20,24, 45 | 14,20,24,27, 46 | 20,24,27,30, 47 | 24,27,30,34 48 | 49 | INTRA8X8_LUMA = 50 | 6,10,13,16,18,23,25,27, 51 | 10,11,16,18,23,25,27,29, 52 | 13,16,18,23,25,27,29,31, 53 | 16,18,23,25,27,29,31,33, 54 | 18,23,25,27,29,31,33,36, 55 | 23,25,27,29,31,33,36,38, 56 | 25,27,29,31,33,36,38,40, 57 | 27,29,31,33,36,38,40,42 58 | 59 | INTER8X8_LUMA = 60 | 9,13,15,17,19,21,22,24, 61 | 13,13,17,19,21,22,24,25, 62 | 15,17,19,21,22,24,25,27, 63 | 17,19,21,22,24,25,27,28, 64 | 19,21,22,24,25,27,28,30, 65 | 21,22,24,25,27,28,30,32, 66 | 22,24,25,27,28,30,32,33, 67 | 24,25,27,28,30,32,33,35 68 | 69 | -------------------------------------------------------------------------------- /capture/libs/x264/version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd "$(dirname "$0")" >/dev/null && [ -f x264.h ] || exit 1 4 | 5 | api="$(grep '#define X264_BUILD' < x264.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')" 6 | ver="x" 7 | version="" 8 | 9 | if [ -d .git ] && command -v git >/dev/null 2>&1 ; then 10 | localver="$(($(git rev-list HEAD | wc -l)))" 11 | if [ "$localver" -gt 1 ] ; then 12 | ver_diff="$(($(git rev-list origin/master..HEAD | wc -l)))" 13 | ver="$((localver-ver_diff))" 14 | echo "#define X264_REV $ver" 15 | echo "#define X264_REV_DIFF $ver_diff" 16 | if [ "$ver_diff" -ne 0 ] ; then 17 | ver="$ver+$ver_diff" 18 | fi 19 | if git status | grep -q "modified:" ; then 20 | ver="${ver}M" 21 | fi 22 | ver="$ver $(git rev-list -n 1 HEAD | cut -c 1-7)" 23 | version=" r$ver" 24 | fi 25 | fi 26 | 27 | echo "#define X264_VERSION \"$version\"" 28 | echo "#define X264_POINTVER \"0.$api.$ver\"" 29 | -------------------------------------------------------------------------------- /capture/libs/x264/x264dll.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * x264dll: x264 DLLMain for win32 3 | ***************************************************************************** 4 | * Copyright (C) 2009-2019 x264 project 5 | * 6 | * Authors: Anton Mitrofanov 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 21 | * 22 | * This program is also available under a commercial proprietary license. 23 | * For more information, contact us at licensing@x264.com. 24 | *****************************************************************************/ 25 | 26 | #include "common/base.h" 27 | #include 28 | 29 | /* Callback for our DLL so we can initialize pthread */ 30 | BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) 31 | { 32 | #if PTW32_STATIC_LIB 33 | switch( fdwReason ) 34 | { 35 | case DLL_PROCESS_ATTACH: 36 | pthread_win32_process_attach_np(); 37 | 38 | case DLL_THREAD_ATTACH: 39 | pthread_win32_thread_attach_np(); 40 | break; 41 | 42 | case DLL_THREAD_DETACH: 43 | pthread_win32_thread_detach_np(); 44 | break; 45 | 46 | case DLL_PROCESS_DETACH: 47 | pthread_win32_thread_detach_np(); 48 | pthread_win32_process_detach_np(); 49 | break; 50 | } 51 | #endif 52 | 53 | return TRUE; 54 | } 55 | -------------------------------------------------------------------------------- /capture/libs/x264_wrapper/encode_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/libs/x264_wrapper/encode_wrapper.cpp -------------------------------------------------------------------------------- /capture/libs/x264_wrapper/encode_wrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef ENC_WRAPPER_H__ 2 | #define ENC_WRAPPER_H__ 3 | 4 | #ifdef ENCODE_WRAPPER_EXPORT_API 5 | #define ENCODE_WRAPPER_API __declspec(dllexport) 6 | #else 7 | #define ENCODE_WRAPPER_API __declspec(dllimport) 8 | #endif 9 | 10 | typedef void(*enc_cb_t)(void* h, const char* out_buf, long out_size, int frame_type, void* user_data, unsigned long long time_stamp, int camera_idx); 11 | 12 | extern "C" ENCODE_WRAPPER_API void* open_encoder(int width, int height, int bitrate, int fps, int bitstream_ctl, void* user_data, int camera_idx); 13 | 14 | extern "C" ENCODE_WRAPPER_API int encode(void* h, const char* in_buf, long in_size, enc_cb_t cb, unsigned long long time_stamp, bool force_key_frame); 15 | 16 | extern "C" ENCODE_WRAPPER_API void close_encoder(void* h); 17 | 18 | #endif 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /capture/libs/x264_wrapper/encode_wrapper.mpc: -------------------------------------------------------------------------------- 1 | project(encode_wrapper) { 2 | sharedname = X264EncoderWrapper 3 | 4 | specific(make) { 5 | libout = ../../Release 6 | Release::linkflags = -fvisibility=hidden 7 | Debug::linkflags = -fvisibility=hidden 8 | includes += ../x264-snapshot-20160313-2245 9 | libpaths += ../x264-snapshot-20160313-2245 10 | libs += stdc++ 11 | libs += dl 12 | libs += pthread 13 | libs += x264 14 | cc = gcc 15 | cxx = g++ 16 | optimize = 1 17 | genflags = -O3 18 | dynamicflags = ENCODE_WRAPPER_EXPORT_API 19 | } 20 | 21 | Source_Files { 22 | encode_wrapper.cpp 23 | } 24 | 25 | Header_Files { 26 | encode_wrapper.h 27 | } 28 | } 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /capture/libs/x264_wrapper/make.bat: -------------------------------------------------------------------------------- 1 | %MPC_ROOT%\mpc.pl -type make encode_wrapper.mpc -------------------------------------------------------------------------------- /capture/push_rtmp_stream_man.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/push_rtmp_stream_man.cpp -------------------------------------------------------------------------------- /capture/quartz.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/quartz.lib -------------------------------------------------------------------------------- /capture/sche_timer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/sche_timer.cpp -------------------------------------------------------------------------------- /capture/sche_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | class timer_handler 9 | { 10 | public: 11 | virtual ~timer_handler() 12 | { 13 | ; 14 | } 15 | 16 | public: 17 | unsigned long long id() const 18 | { 19 | return id_; 20 | } 21 | 22 | void id(unsigned long long id) 23 | { 24 | this->id_ = id; 25 | } 26 | 27 | public: 28 | virtual void exec() = 0; 29 | 30 | protected: 31 | unsigned long long id_; 32 | }; 33 | 34 | 35 | class sche_timer 36 | { 37 | public: 38 | sche_timer(); 39 | ~sche_timer(); 40 | 41 | public: 42 | unsigned long long register_timer(int interval, int repeat_cnt, timer_handler* h); 43 | void unregister_timer(unsigned long long id); 44 | 45 | public: 46 | void run_loop(volatile bool& interrupted); 47 | void run(); 48 | 49 | private: 50 | class node 51 | { 52 | public: 53 | typedef std::shared_ptr timer_handler_ptr; 54 | timer_handler_ptr handler_; 55 | int interval_; // ms 56 | int repeat_cnt_; 57 | unsigned long long absloute_tick_; // ms 58 | }; 59 | 60 | enum { MIN_SCHE_INTERVAL = 40 }; // ms 61 | enum { DELETE_TAG = -10 }; 62 | 63 | private: 64 | typedef std::unordered_map node_map; 65 | node_map node_map_; 66 | std::recursive_mutex mutex_; 67 | 68 | }; 69 | 70 | -------------------------------------------------------------------------------- /capture/sound_comm.h: -------------------------------------------------------------------------------- 1 | #ifndef _COMMON_INCLUDE_H__ 2 | #define _COMMON_INCLUDE_H__ 3 | 4 | // STL includes 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define SOUND_AUTOLIB 13 | 14 | typedef std::basic_string UCHAR_STRING; 15 | 16 | #include 17 | // DirectSound includes 18 | #include 19 | #include 20 | #include 21 | 22 | // disable some warnning 23 | #pragma warning(disable:4251) 24 | 25 | // #define SOUND_AUTOLIB to automatically include the libs needed 26 | #ifdef SOUND_AUTOLIB 27 | // #pragma comment( lib, "dxerr.lib" ) 28 | #pragma comment( lib, "dxguid.lib" ) 29 | #pragma comment( lib, "winmm.lib" ) 30 | #pragma comment( lib, "Dsound.lib" ) 31 | #pragma comment( lib, "comctl32.lib" ) 32 | #endif 33 | 34 | #endif 35 | 36 | 37 | -------------------------------------------------------------------------------- /capture/sound_handler.h: -------------------------------------------------------------------------------- 1 | #ifndef sound_handler_H__ 2 | #define sound_handler_H__ 3 | 4 | class sound_handler 5 | { 6 | public: 7 | virtual ~sound_handler() {}; 8 | 9 | public: 10 | virtual void handle(unsigned char* data, unsigned int len) = 0; 11 | }; 12 | 13 | #endif 14 | 15 | -------------------------------------------------------------------------------- /capture/strmiids.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/strmiids.lib -------------------------------------------------------------------------------- /capture/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaozhencn/PushRTMPStreamSync/413681c95332d76c17c9f4d79a8066c0656e334e/capture/targetver.h -------------------------------------------------------------------------------- /capture/util.cpp: -------------------------------------------------------------------------------- 1 | #include "util.h" 2 | 3 | bool get_qpc_time_ms::inited_ = false; 4 | LARGE_INTEGER get_qpc_time_ms::clock_freq = LARGE_INTEGER(); 5 | 6 | -------------------------------------------------------------------------------- /capture/video_effect.cpp: -------------------------------------------------------------------------------- 1 | #include "video_effect.h" 2 | 3 | 4 | video_effect::video_effect(int width, int height, int fps) 5 | { 6 | //const char *filter_descr = "lutyuv='u=128:v=128'"; 7 | const char *filter_descr4 = "boxblur=luma_radius=5:luma_power=1"; 8 | //const char *filter_descr = "hflip"; 9 | //const char *filter_descr = "hue='h=60:s=-3'"; 10 | //const char *filter_descr = "crop=2/3*in_w:2/3*in_h"; 11 | //const char *filter_descr = "drawbox=x=100:y=100:w=100:h=100:color=pink@0.5"; 12 | //const char *filter_descr = "drawtext=fontfile=arial.ttf:fontcolor=green:fontsize=30:text='Lei Xiaohua'"; 13 | const char* filter_descr = "lutyuv='y=1.2*val'"; // "curves=preset=lighter"; 14 | const char* filter_descr2 = "scale=in_w*1.0:in_h*1.2"; 15 | const char* filter_descr3 = "crop=in_w:in_h-96:0:48"; 16 | 17 | this->filter_ptr_ = std::shared_ptr(new filter_wrapper(width, height, width, height, fps, filter_descr)); 18 | this->filter_ptr_->add_filter(new scale_filter_wrapper(width, height, width, height * 1.2, fps)); 19 | this->filter_ptr_->add_filter(new crop_filter_wrapper(width, height * 1.2, width, height, fps)); 20 | this->filter_ptr_->add_filter(new filter_wrapper(width, height, width, height, fps, filter_descr4)); 21 | 22 | } 23 | 24 | 25 | video_effect::~video_effect() 26 | { 27 | } 28 | 29 | 30 | int video_effect::handle(unsigned char* yuv420, int yuv420_len, std::string& out_frame) 31 | { 32 | this->filter_ptr_->handle(std::string((char*)yuv420, (char*)yuv420 + yuv420_len), out_frame); 33 | return 0; 34 | } 35 | 36 | 37 | -------------------------------------------------------------------------------- /capture/video_effect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filter_wrapper.h" 4 | 5 | class video_effect 6 | { 7 | public: 8 | video_effect(int width, int height, int fps); 9 | ~video_effect(); 10 | 11 | public: 12 | int handle(unsigned char* yuv420, int yuv420_len, std::string& out_frame); 13 | 14 | private: 15 | std::shared_ptr filter_ptr_; 16 | }; 17 | 18 | 19 | -------------------------------------------------------------------------------- /capture/x264_encoder.cpp: -------------------------------------------------------------------------------- 1 | #include "x264_encoder.h" 2 | 3 | #include 4 | 5 | 6 | typedef void* (*open_encoder_t)(int width, int height, int bitrate, int fps, int bitstream_ctl, void* user_data, int camera_idx); 7 | typedef int(*encode_t)(void* h, const char* in_buf, long in_size, enc_cb_t cb, unsigned long long time_stamp, bool force_key_frame); 8 | typedef void(*close_encoder_t)(void* h); 9 | 10 | 11 | open_encoder_t open_encoder_fun; 12 | encode_t encode_fun; 13 | close_encoder_t close_encoder_fun; 14 | 15 | HMODULE g_hModule = NULL; 16 | 17 | x264_encoder::x264_encoder(void) 18 | { 19 | if (NULL == g_hModule) 20 | { 21 | g_hModule = ::LoadLibraryEx("libX264EncoderWrapper.so", NULL, LOAD_WITH_ALTERED_SEARCH_PATH); 22 | open_encoder_fun = (open_encoder_t)::GetProcAddress(g_hModule, "open_encoder"); 23 | encode_fun = (encode_t)::GetProcAddress(g_hModule, "encode"); 24 | close_encoder_fun = (close_encoder_t)::GetProcAddress(g_hModule, "close_encoder"); 25 | printf("\n LoadLibrary libx264_encoderWrapper.dll ret: [ %X ] \n", g_hModule); 26 | } 27 | } 28 | 29 | 30 | x264_encoder::~x264_encoder(void) 31 | { 32 | } 33 | 34 | 35 | HANDLE x264_encoder::open_encoder(int width, int height, int bitrate, int fps, int bitstream_ctl, void* user_data, int camera_idx) 36 | { 37 | return open_encoder_fun(width, height, bitrate, fps, bitstream_ctl, user_data, camera_idx); 38 | } 39 | 40 | 41 | int x264_encoder::encode(HANDLE h, const char* in_buf, long in_size, enc_cb_t cb, unsigned long long time_stamp, bool force_key_frame) 42 | { 43 | return encode_fun(h, in_buf, in_size, cb, time_stamp, force_key_frame); 44 | } 45 | 46 | 47 | void x264_encoder::close_encoder(HANDLE h) 48 | { 49 | close_encoder_fun(h); 50 | } 51 | 52 | -------------------------------------------------------------------------------- /capture/x264_encoder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | typedef void(*enc_cb_t)(void* h, const char* out_buf, long out_size, int frame_type, void* user_data, 7 | unsigned long long time_stamp, int camera_idx); 8 | 9 | 10 | class x264_encoder 11 | { 12 | public: 13 | x264_encoder(void); 14 | public: 15 | ~x264_encoder(void); 16 | 17 | public: 18 | HANDLE open_encoder(int width, int height, int bitrate, int fps, int bitstream_ctl, void* user_data, int camera_idx); 19 | int encode(HANDLE h, const char* in_buf, long in_size, enc_cb_t cb, unsigned long long time_stamp, bool force_key_frame); 20 | void close_encoder(HANDLE h); 21 | }; 22 | --------------------------------------------------------------------------------