├── .gitignore ├── DJIVideoParser ├── DJIVideoParser.vcxproj ├── DJIVideoParser.vcxproj.filters ├── Parser.cpp ├── Parser.h ├── Queue.cpp ├── Queue.h ├── RenderSurface │ ├── OpenGLES.cpp │ ├── OpenGLES.h │ ├── RenderSurface.cpp │ ├── RenderSurface.h │ └── Renderer │ │ ├── CalibrationVideoFeedRenderer │ │ ├── CalibrationDataSource.cpp │ │ ├── CalibrationDataSource.h │ │ ├── CalibrationVideoFeedRenderer.cpp │ │ └── CalibrationVideoFeedRenderer.h │ │ ├── VideoFeedRenderer.cpp │ │ └── VideoFeedRenderer.h ├── StructDefinations.h ├── ThirdParties │ ├── x64 │ │ ├── dlls │ │ │ ├── avcodec-x64.dll │ │ │ ├── avformat-x64.dll │ │ │ ├── avutil-x64.dll │ │ │ ├── libcrypto-1_1-x64.dll │ │ │ ├── pthread_dll-x64.dll │ │ │ └── swscale-x64.dll │ │ ├── ffmpeg │ │ │ ├── LICENSE.md │ │ │ ├── include │ │ │ │ ├── libavcodec │ │ │ │ │ ├── avcodec.h │ │ │ │ │ ├── avfft.h │ │ │ │ │ ├── dv_profile.h │ │ │ │ │ ├── dxva2.h │ │ │ │ │ ├── old_codec_ids.h │ │ │ │ │ ├── vaapi.h │ │ │ │ │ ├── vda.h │ │ │ │ │ ├── vdpau.h │ │ │ │ │ ├── version.h │ │ │ │ │ ├── vorbis_parser.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 │ │ │ │ ├── libavresample │ │ │ │ │ ├── avresample.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 │ │ │ │ │ ├── cast5.h │ │ │ │ │ ├── channel_layout.h │ │ │ │ │ ├── common.h │ │ │ │ │ ├── cpu.h │ │ │ │ │ ├── crc.h │ │ │ │ │ ├── dict.h │ │ │ │ │ ├── display.h │ │ │ │ │ ├── downmix_info.h │ │ │ │ │ ├── error.h │ │ │ │ │ ├── eval.h │ │ │ │ │ ├── ffversion.h │ │ │ │ │ ├── fifo.h │ │ │ │ │ ├── file.h │ │ │ │ │ ├── frame.h │ │ │ │ │ ├── hash.h │ │ │ │ │ ├── hmac.h │ │ │ │ │ ├── imgutils.h │ │ │ │ │ ├── intfloat.h │ │ │ │ │ ├── intreadwrite.h │ │ │ │ │ ├── lfg.h │ │ │ │ │ ├── log.h │ │ │ │ │ ├── macros.h │ │ │ │ │ ├── mathematics.h │ │ │ │ │ ├── md5.h │ │ │ │ │ ├── mem.h │ │ │ │ │ ├── motion_vector.h │ │ │ │ │ ├── murmur3.h │ │ │ │ │ ├── old_pix_fmts.h │ │ │ │ │ ├── opt.h │ │ │ │ │ ├── parseutils.h │ │ │ │ │ ├── pixdesc.h │ │ │ │ │ ├── pixelutils.h │ │ │ │ │ ├── pixfmt.h │ │ │ │ │ ├── random_seed.h │ │ │ │ │ ├── rational.h │ │ │ │ │ ├── replaygain.h │ │ │ │ │ ├── ripemd.h │ │ │ │ │ ├── samplefmt.h │ │ │ │ │ ├── sha.h │ │ │ │ │ ├── sha512.h │ │ │ │ │ ├── stereo3d.h │ │ │ │ │ ├── threadmessage.h │ │ │ │ │ ├── time.h │ │ │ │ │ ├── timecode.h │ │ │ │ │ ├── timestamp.h │ │ │ │ │ ├── version.h │ │ │ │ │ └── xtea.h │ │ │ │ ├── libswresample │ │ │ │ │ ├── swresample.h │ │ │ │ │ └── version.h │ │ │ │ └── libswscale │ │ │ │ │ ├── swscale.h │ │ │ │ │ └── version.h │ │ │ └── lib │ │ │ │ ├── avcodec.lib │ │ │ │ ├── avdevice.lib │ │ │ │ ├── avfilter.lib │ │ │ │ ├── avformat.lib │ │ │ │ ├── avresample.lib │ │ │ │ ├── avutil.lib │ │ │ │ ├── swresample.lib │ │ │ │ └── swscale.lib │ │ ├── plog │ │ │ ├── LICENSE.txt │ │ │ └── include │ │ │ │ └── plog │ │ │ │ ├── Appenders │ │ │ │ ├── AndroidAppender.h │ │ │ │ ├── ColorConsoleAppender.h │ │ │ │ ├── ConsoleAppender.h │ │ │ │ ├── DebugOutputAppender.h │ │ │ │ ├── EventLogAppender.h │ │ │ │ ├── IAppender.h │ │ │ │ └── RollingFileAppender.h │ │ │ │ ├── Converters │ │ │ │ └── UTF8Converter.h │ │ │ │ ├── Formatters │ │ │ │ ├── CsvFormatter.h │ │ │ │ ├── FuncMessageFormatter.h │ │ │ │ └── TxtFormatter.h │ │ │ │ ├── Init.h │ │ │ │ ├── Log.h │ │ │ │ ├── Logger.h │ │ │ │ ├── Record.h │ │ │ │ ├── Severity.h │ │ │ │ ├── Util.h │ │ │ │ └── WinApi.h │ │ └── pthread-win32 │ │ │ ├── COPYING.txt │ │ │ ├── bin │ │ │ └── Win32_MSVC2015.Release │ │ │ │ ├── pthread_dll.dll │ │ │ │ └── pthread_dll.lib │ │ │ └── include │ │ │ ├── config.h │ │ │ ├── context.h │ │ │ ├── implement.h │ │ │ ├── need_errno.h │ │ │ ├── pthread.h │ │ │ ├── sched.h │ │ │ └── semaphore.h │ └── x86 │ │ ├── dlls │ │ ├── avcodec-56.dll │ │ ├── avformat-56.dll │ │ ├── avutil-54.dll │ │ ├── pthread_dll.dll │ │ └── swscale-3.dll │ │ ├── ffmpeg │ │ ├── LICENSE.md │ │ ├── include │ │ │ ├── libavcodec │ │ │ │ ├── avcodec.h │ │ │ │ ├── avfft.h │ │ │ │ ├── dv_profile.h │ │ │ │ ├── dxva2.h │ │ │ │ ├── old_codec_ids.h │ │ │ │ ├── vaapi.h │ │ │ │ ├── vda.h │ │ │ │ ├── vdpau.h │ │ │ │ ├── version.h │ │ │ │ ├── vorbis_parser.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 │ │ │ ├── libavresample │ │ │ │ ├── avresample.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 │ │ │ │ ├── cast5.h │ │ │ │ ├── channel_layout.h │ │ │ │ ├── common.h │ │ │ │ ├── cpu.h │ │ │ │ ├── crc.h │ │ │ │ ├── dict.h │ │ │ │ ├── display.h │ │ │ │ ├── downmix_info.h │ │ │ │ ├── error.h │ │ │ │ ├── eval.h │ │ │ │ ├── ffversion.h │ │ │ │ ├── fifo.h │ │ │ │ ├── file.h │ │ │ │ ├── frame.h │ │ │ │ ├── hash.h │ │ │ │ ├── hmac.h │ │ │ │ ├── imgutils.h │ │ │ │ ├── intfloat.h │ │ │ │ ├── intreadwrite.h │ │ │ │ ├── lfg.h │ │ │ │ ├── log.h │ │ │ │ ├── macros.h │ │ │ │ ├── mathematics.h │ │ │ │ ├── md5.h │ │ │ │ ├── mem.h │ │ │ │ ├── motion_vector.h │ │ │ │ ├── murmur3.h │ │ │ │ ├── old_pix_fmts.h │ │ │ │ ├── opt.h │ │ │ │ ├── parseutils.h │ │ │ │ ├── pixdesc.h │ │ │ │ ├── pixelutils.h │ │ │ │ ├── pixfmt.h │ │ │ │ ├── random_seed.h │ │ │ │ ├── rational.h │ │ │ │ ├── replaygain.h │ │ │ │ ├── ripemd.h │ │ │ │ ├── samplefmt.h │ │ │ │ ├── sha.h │ │ │ │ ├── sha512.h │ │ │ │ ├── stereo3d.h │ │ │ │ ├── threadmessage.h │ │ │ │ ├── time.h │ │ │ │ ├── timecode.h │ │ │ │ ├── timestamp.h │ │ │ │ ├── version.h │ │ │ │ └── xtea.h │ │ │ ├── libswresample │ │ │ │ ├── swresample.h │ │ │ │ └── version.h │ │ │ └── libswscale │ │ │ │ ├── swscale.h │ │ │ │ └── version.h │ │ └── lib │ │ │ ├── avcodec.lib │ │ │ ├── avdevice.lib │ │ │ ├── avfilter.lib │ │ │ ├── avformat.lib │ │ │ ├── avresample.lib │ │ │ ├── avutil.lib │ │ │ ├── swresample.lib │ │ │ └── swscale.lib │ │ ├── plog │ │ ├── LICENSE.txt │ │ └── include │ │ │ └── plog │ │ │ ├── Appenders │ │ │ ├── AndroidAppender.h │ │ │ ├── ColorConsoleAppender.h │ │ │ ├── ConsoleAppender.h │ │ │ ├── DebugOutputAppender.h │ │ │ ├── EventLogAppender.h │ │ │ ├── IAppender.h │ │ │ └── RollingFileAppender.h │ │ │ ├── Converters │ │ │ └── UTF8Converter.h │ │ │ ├── Formatters │ │ │ ├── CsvFormatter.h │ │ │ ├── FuncMessageFormatter.h │ │ │ └── TxtFormatter.h │ │ │ ├── Init.h │ │ │ ├── Log.h │ │ │ ├── Logger.h │ │ │ ├── Record.h │ │ │ ├── Severity.h │ │ │ ├── Util.h │ │ │ └── WinApi.h │ │ └── pthread-win32 │ │ ├── COPYING.txt │ │ ├── bin │ │ └── Win32_MSVC2015.Release │ │ │ ├── pthread_dll.dll │ │ │ └── pthread_dll.lib │ │ └── include │ │ ├── config.h │ │ ├── context.h │ │ ├── implement.h │ │ ├── need_errno.h │ │ ├── pthread.h │ │ ├── sched.h │ │ └── semaphore.h ├── Utils.cpp ├── Utils.h ├── VideoWrapper.cpp ├── VideoWrapper.h ├── h264_Decoder.cpp ├── h264_Decoder.h ├── modulemediator.cpp ├── modulemediator.h ├── packages.config ├── pch.cpp ├── pch.h ├── threadsafequeue.h ├── videoparser.cpp ├── videoparser.h ├── videoparsermgr.cpp └── videoparsermgr.h ├── DJIWSDKDemo.sln ├── DJIWSDKFPVDemo ├── App.xaml ├── App.xaml.cs ├── Assets │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ └── Wide310x150Logo.scale-200.png ├── DJIVideoParser │ └── ThirdParties │ │ └── pthread-win32 │ │ └── lib │ │ └── Win32_MSVC2015.Release │ │ ├── pthread_dll.dll │ │ └── pthread_dll.lib ├── DJIWSDKFPVDemo.csproj ├── MainPage.xaml ├── MainPage.xaml.cs ├── Package.appxmanifest ├── Properties │ ├── AssemblyInfo.cs │ └── Default.rd.xml ├── avcodec-56.dll ├── avformat-56.dll ├── avutil-54.dll ├── libcrypto-1_1.dll ├── pthread_dll.dll └── swscale-3.dll ├── DJIWindowsSDK ├── DJIWindowsSDK.XML ├── DJIWindowsSDK.dll ├── DJIWindowsWrapper.dll └── DJIWindowsWrapper.winmd ├── LICENSE └── README.md /DJIVideoParser/Parser.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DJIVideoParser 4 | { 5 | public enum class AircraftCameraType : int { 6 | Mavic2Pro, 7 | Mavic2Zoom, 8 | Others 9 | }; 10 | 11 | public delegate void VideoDataCallback(const Platform::Array^ data, int witdth, int height); 12 | 13 | public delegate void VideoFrameBufferCallback(const Platform::Array^ data, unsigned int uiWidth, unsigned int uiHeight, unsigned __int64 ulTimeStamp); 14 | 15 | //User should set this handler to call "DJISDKManager.Instance.VideoFeeder.ParseAssitantDecodingInfo(0, data);" inside. This would help DJIWindowsSDK to handle the image data and ask Mavic 2 for i frame and do some calibration jobs. 16 | public delegate Platform::Array^ VideoAssistantInfoParserHandle(const Platform::Array^ data); 17 | 18 | public ref class Parser sealed 19 | { 20 | public: 21 | Parser(); 22 | void Initialize(VideoAssistantInfoParserHandle^ handle); 23 | void Uninitialize(); 24 | //would return RGBA image 25 | void SetSurfaceAndVideoCallback(int product_id, int index, Windows::UI::Xaml::Controls::SwapChainPanel^ swap_chain_panel, VideoDataCallback^ callback); 26 | void PushVideoData(int product_id, int index, const Platform::Array^ data, int size); 27 | void SetCameraSensor(AircraftCameraType sensor); 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /DJIVideoParser/Queue.h: -------------------------------------------------------------------------------- 1 | #ifndef __FRAME_QUEUE__ 2 | #define __FRAME_QUEUE__ 3 | 4 | //#include 5 | #include 6 | 7 | extern "C" { 8 | #include "libavcodec/avcodec.h" 9 | #include "libavformat/avformat.h" 10 | #include "libswscale/swscale.h" 11 | #include "libavutil/mem.h" 12 | #include "libavutil/time.h" 13 | } 14 | 15 | #define MAX_QUEUE_SIZE 1000 16 | 17 | enum FrameType { 18 | FrameType_VideoLive, 19 | FrameType_Video, 20 | FrameType_Audio 21 | }; 22 | 23 | typedef struct stBuffNode { 24 | 25 | uint64_t pts; 26 | uint8_t* m_pFrameBuff; 27 | short* m_pAudioBuff; 28 | stBuffNode* next; 29 | FrameType type; 30 | int m_iSize; 31 | int m_width; 32 | int m_height; 33 | int isIFrame; 34 | int hasSps; 35 | int hasPps; 36 | int frameNum; 37 | int timeStamp; 38 | 39 | stBuffNode() { 40 | pts = -1; 41 | m_pFrameBuff = NULL; 42 | m_pAudioBuff = NULL; 43 | next = NULL; 44 | m_iSize = 0; 45 | m_width = 0; 46 | m_height = 0; 47 | type = FrameType_Video; 48 | } 49 | 50 | ~stBuffNode() { 51 | if (m_pFrameBuff) { 52 | av_free(m_pFrameBuff); 53 | } 54 | if (m_pAudioBuff) { 55 | free(m_pAudioBuff); 56 | } 57 | } 58 | }stBuffNode; 59 | 60 | class CFrameQueue { 61 | public: 62 | CFrameQueue(); 63 | ~CFrameQueue(); 64 | void clear(); 65 | int Size(); 66 | void Delete(); 67 | stBuffNode* Get(); 68 | int Push(uint8_t* pBuff, int iSize); 69 | int Push(uint8_t* pBuff, int iSize, FrameType type, uint64_t pts); 70 | int Push(uint8_t* pBuff, int iSize, FrameType type, uint64_t pts, int isKeyFrame, int hasSps, int hasPps, int frameNum); 71 | int Push(uint8_t* pBuff, int iSize, FrameType type, int width, int height); 72 | int Push(uint8_t* pBuff, int iSize, FrameType type, uint64_t pts, int width, int height); 73 | int Push(uint8_t* pBuff, int iSize, FrameType type, uint64_t pts, int width, int height, int isKeyFrame, int hasSps, int hasPps, int frameNum); 74 | int Push(short* pBuff, int iSize, FrameType type, int timeStamp); 75 | 76 | // int Push(uint8_t* pBuff,int iSize, int type); 77 | // int Push(short* pBuff, int iSize, int type); 78 | // int PushStreaming(uint8_t* pBuff,int iSize, int type); 79 | int Push(uint8_t* pBuff, int iSize, FrameType type, int width, int height, int isIFrame, int timeStamp); 80 | 81 | private: 82 | int m_iCurrentSize; 83 | stBuffNode* m_pQueueHead; 84 | stBuffNode* m_pQueueRear; 85 | pthread_mutex_t m_Lock; 86 | pthread_cond_t m_cond; 87 | private: 88 | }; 89 | 90 | #endif // FFMPEG_MEDIAPLAYER_H 91 | 92 | 93 | -------------------------------------------------------------------------------- /DJIVideoParser/RenderSurface/OpenGLES.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Enable function definitions in the GL headers below 4 | #define GL_GLEXT_PROTOTYPES 5 | 6 | // OpenGL ES includes 7 | #include 8 | #include 9 | 10 | // EGL includes 11 | #include 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | class OpenGLES 18 | { 19 | public: 20 | OpenGLES(); 21 | ~OpenGLES(); 22 | 23 | EGLSurface CreateSurface(Windows::UI::Xaml::Controls::SwapChainPanel^ panel, const Windows::Foundation::Size* renderSurfaceSize, const float* renderResolutionScale); 24 | void GetSurfaceDimensions(const EGLSurface surface, EGLint *width, EGLint *height); 25 | void DestroySurface(const EGLSurface surface); 26 | void MakeCurrent(const EGLSurface surface); 27 | EGLBoolean SwapBuffers(const EGLSurface surface); 28 | void Reset(); 29 | 30 | private: 31 | void Initialize(); 32 | void Cleanup(); 33 | 34 | private: 35 | EGLDisplay mEglDisplay; 36 | EGLContext mEglContext; 37 | EGLConfig mEglConfig; 38 | }; 39 | -------------------------------------------------------------------------------- /DJIVideoParser/RenderSurface/RenderSurface.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "Windows.UI.Core.h" 6 | #include 7 | 8 | #define GL_GLEXT_PROTOTYPES 9 | //#define GL2_PROTOTYPES 1 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | using namespace Platform; 20 | using namespace Windows::Foundation::Collections; 21 | using namespace Windows::UI::Core; 22 | 23 | class RenderSurface final 24 | { 25 | public: 26 | RenderSurface(); 27 | ~RenderSurface(); 28 | 29 | //To draw with OpenGL, we need a SwapChainPanel. 30 | bool Initialize(const std::string& source_path, Windows::UI::Xaml::Controls::SwapChainPanel^ swap_chain_panel); 31 | void Uninitialize(); 32 | 33 | bool Ready() const; 34 | 35 | //Set the sensor type. We need to calibrate the images of some sensors. 36 | void UpdateDeviceCameraSensor(DeviceCameraSensor sensor); 37 | void RenderRGBImageData(const unsigned char *data, int width, int height); 38 | void SetVideoInfo(int fov_state, int lut_index); 39 | 40 | private: 41 | class impl; 42 | impl* pImpl = nullptr; 43 | }; -------------------------------------------------------------------------------- /DJIVideoParser/RenderSurface/Renderer/CalibrationVideoFeedRenderer/CalibrationDataSource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | class CalibrationDataSource final 7 | { 8 | public: 9 | CalibrationDataSource(); 10 | virtual ~CalibrationDataSource(); 11 | 12 | bool Initialize(const std::string &files_path, DeviceCameraSensor sensor); 13 | void Uninitialize(); 14 | 15 | int DataIndexForResolution(int width, int height, int lut_index, int fov_state); 16 | 17 | public: 18 | void LoadDataFromSize(int width, int height); 19 | void GetVertexIndex(int width, int height, uint32_t*& data, int& size); 20 | void GetVertexData(int width, int height, float32*& data, int& stride_for_index, int& index_count); 21 | bool DataReady(int width, int height); 22 | bool GetIsLoading() { return m_is_loading; }; 23 | private: 24 | uint32_t ValidIndexCountForResulotion(int width, int height); 25 | std::vector TextureCoordinateData(int width, int height, int index); 26 | std::string GetSensorName(); 27 | 28 | private: 29 | void InternalLoadIndex(); 30 | void InternalLoadData(); 31 | 32 | private: 33 | DeviceCameraSensor m_sensor = DeviceCameraSensor::Unknown; 34 | std::string m_files_path; 35 | 36 | bool m_is_loading = false; 37 | 38 | int m_last_width = 0; 39 | int m_last_height = 0; 40 | 41 | void *m_data_loaded = nullptr; 42 | int m_loaded_len = 0; 43 | 44 | void *m_index_loaded = nullptr; 45 | int m_index_len = 0; 46 | 47 | bool use_calbration_file = true; 48 | 49 | std::mutex m_mutex; 50 | }; 51 | 52 | -------------------------------------------------------------------------------- /DJIVideoParser/RenderSurface/Renderer/CalibrationVideoFeedRenderer/CalibrationVideoFeedRenderer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "../VideoFeedRenderer.h" 5 | #include "CalibrationDataSource.h" 6 | 7 | //Calibrate the image and draw 8 | class CalibrationVideoFeedRenderer final : public VideoFeedRenderer 9 | { 10 | public: 11 | CalibrationVideoFeedRenderer(std::string source_path); 12 | virtual ~CalibrationVideoFeedRenderer(); 13 | 14 | virtual void RenderRGBImage(const uint8_t *data, int width, int height, int window_width, int window_height) override; 15 | void SetDeviceSensor(DeviceCameraSensor sensor); 16 | 17 | private: 18 | void UpdateVertextBuffer(int width, int height); 19 | void UpdateIndexBuffer(int width, int height); 20 | 21 | void ReleaseCachedData(); 22 | 23 | private: 24 | std::string m_source_path; 25 | DeviceCameraSensor m_sensor = DeviceCameraSensor::Unknown; 26 | CalibrationDataSource * m_data_source = nullptr; 27 | 28 | uint8_t * m_res_data = nullptr; 29 | int m_res_data_size = 0; 30 | 31 | GLuint m_vertex_buffer = 0; 32 | GLuint m_index_buffer = 0; 33 | std::vector m_vector_vertex_buffer; 34 | }; -------------------------------------------------------------------------------- /DJIVideoParser/RenderSurface/Renderer/VideoFeedRenderer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define GL_GLEXT_PROTOTYPES 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | 14 | //Simple Video Feed Renderer by which we could draw the RGB Video Feed on the screen 15 | class VideoFeedRenderer 16 | { 17 | public: 18 | VideoFeedRenderer(); 19 | virtual ~VideoFeedRenderer(); 20 | 21 | virtual void RenderRGBImage(const uint8_t *data, int width, int height, int window_width, int window_height); 22 | 23 | public: 24 | int m_lut_index = 0; 25 | int m_fov_state = 0; 26 | 27 | 28 | protected: 29 | virtual void HandleImageTexture(const uint8_t *data, int width, int height, int window_width, int window_height); 30 | //virtual void DrawImageProcess(); 31 | GLuint CompileShader(GLenum type, const std::string &source); 32 | GLuint CompileProgram(const std::string &vsSource, const std::string &fsSource); 33 | 34 | protected: 35 | 36 | GLuint mProgram; 37 | GLsizei mWindowWidth; 38 | GLsizei mWindowHeight; 39 | 40 | GLsizei mPreWidth = 0; 41 | GLsizei mPreHeight = 0; 42 | 43 | // Attribute locations 44 | GLint mPositionLoc; 45 | GLint mTexCoordLoc; 46 | 47 | // Sampler location 48 | GLint mSamplerLoc; 49 | 50 | // Texture handle 51 | GLuint mTexture; 52 | 53 | }; -------------------------------------------------------------------------------- /DJIVideoParser/StructDefinations.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | enum class DeviceCameraSensor 7 | { 8 | imx283, 9 | imx477, 10 | Unknown 11 | }; 12 | 13 | #pragma pack(1) 14 | typedef struct { 15 | uint8_t has_lut_idx; // lut index 16 | uint8_t has_time_stamp; // the global time stamp 17 | uint8_t should_ignore;//render and processor ignore this frame after decoding 18 | uint8_t force_30_fps;//when liveview fps = 60,downsample to keep 30fps rendering and encoding 19 | uint8_t lut_idx; //has_lut_idx == 0,ignored 20 | uint8_t fov_state;//has_lut_idx == 0,ignored 21 | uint32_t timestamp; //has_time_stamp == 0,ignored 22 | } DJIDecodingAssistInfo; 23 | #pragma pack() -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/avcodec-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/avcodec-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/avformat-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/avformat-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/avutil-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/avutil-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/libcrypto-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/libcrypto-1_1-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/pthread_dll-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/pthread_dll-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/dlls/swscale-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/dlls/swscale-x64.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavcodec/dxva2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * DXVA2 HW acceleration 3 | * 4 | * copyright (c) 2009 Laurent Aimar 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * FFmpeg 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 GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_DXVA_H 24 | #define AVCODEC_DXVA_H 25 | 26 | /** 27 | * @file 28 | * @ingroup lavc_codec_hwaccel_dxva2 29 | * Public libavcodec DXVA2 header. 30 | */ 31 | 32 | #if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600 33 | #undef _WIN32_WINNT 34 | #define _WIN32_WINNT 0x0600 35 | #endif 36 | 37 | #include 38 | #include 39 | #include 40 | 41 | /** 42 | * @defgroup lavc_codec_hwaccel_dxva2 DXVA2 43 | * @ingroup lavc_codec_hwaccel 44 | * 45 | * @{ 46 | */ 47 | 48 | #define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards 49 | #define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface 50 | 51 | /** 52 | * This structure is used to provides the necessary configurations and data 53 | * to the DXVA2 FFmpeg HWAccel implementation. 54 | * 55 | * The application must make it available as AVCodecContext.hwaccel_context. 56 | */ 57 | struct dxva_context { 58 | /** 59 | * DXVA2 decoder object 60 | */ 61 | IDirectXVideoDecoder *decoder; 62 | 63 | /** 64 | * DXVA2 configuration used to create the decoder 65 | */ 66 | const DXVA2_ConfigPictureDecode *cfg; 67 | 68 | /** 69 | * The number of surface in the surface array 70 | */ 71 | unsigned surface_count; 72 | 73 | /** 74 | * The array of Direct3D surfaces used to create the decoder 75 | */ 76 | LPDIRECT3DSURFACE9 *surface; 77 | 78 | /** 79 | * A bit field configuring the workarounds needed for using the decoder 80 | */ 81 | uint64_t workaround; 82 | 83 | /** 84 | * Private to the FFmpeg AVHWAccel implementation 85 | */ 86 | unsigned report_id; 87 | }; 88 | 89 | /** 90 | * @} 91 | */ 92 | 93 | #endif /* AVCODEC_DXVA_H */ 94 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavcodec/vorbis_parser.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 | /** 21 | * @file 22 | * A public API for Vorbis parsing 23 | * 24 | * Determines the duration for each packet. 25 | */ 26 | 27 | #ifndef AVCODEC_VORBIS_PARSE_H 28 | #define AVCODEC_VORBIS_PARSE_H 29 | 30 | #include 31 | 32 | typedef struct AVVorbisParseContext AVVorbisParseContext; 33 | 34 | /** 35 | * Allocate and initialize the Vorbis parser using headers in the extradata. 36 | * 37 | * @param avctx codec context 38 | * @param s Vorbis parser context 39 | */ 40 | AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata, 41 | int extradata_size); 42 | 43 | /** 44 | * Free the parser and everything associated with it. 45 | */ 46 | void av_vorbis_parse_free(AVVorbisParseContext **s); 47 | 48 | #define VORBIS_FLAG_HEADER 0x00000001 49 | #define VORBIS_FLAG_COMMENT 0x00000002 50 | 51 | /** 52 | * Get the duration for a Vorbis packet. 53 | * 54 | * If @p flags is @c NULL, 55 | * special frames are considered invalid. 56 | * 57 | * @param s Vorbis parser context 58 | * @param buf buffer containing a Vorbis frame 59 | * @param buf_size size of the buffer 60 | * @param flags flags for special frames 61 | */ 62 | int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, 63 | int buf_size, int *flags); 64 | 65 | /** 66 | * Get the duration for a Vorbis packet. 67 | * 68 | * @param s Vorbis parser context 69 | * @param buf buffer containing a Vorbis frame 70 | * @param buf_size size of the buffer 71 | */ 72 | int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, 73 | int buf_size); 74 | 75 | void av_vorbis_parse_reset(AVVorbisParseContext *s); 76 | 77 | #endif /* AVCODEC_VORBIS_PARSE_H */ 78 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 56 31 | #define LIBAVDEVICE_VERSION_MINOR 3 32 | #define LIBAVDEVICE_VERSION_MICRO 100 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavfilter/avcodec.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 AVFILTER_AVCODEC_H 20 | #define AVFILTER_AVCODEC_H 21 | 22 | /** 23 | * @file 24 | * libavcodec/libavfilter gluing utilities 25 | * 26 | * This should be included in an application ONLY if the installed 27 | * libavfilter has been compiled with libavcodec support, otherwise 28 | * symbols defined below will not be available. 29 | */ 30 | 31 | #include "avfilter.h" 32 | 33 | #if FF_API_AVFILTERBUFFER 34 | /** 35 | * Create and return a picref reference from the data and properties 36 | * contained in frame. 37 | * 38 | * @param perms permissions to assign to the new buffer reference 39 | * @deprecated avfilter APIs work natively with AVFrame instead. 40 | */ 41 | attribute_deprecated 42 | AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms); 43 | 44 | 45 | /** 46 | * Create and return a picref reference from the data and properties 47 | * contained in frame. 48 | * 49 | * @param perms permissions to assign to the new buffer reference 50 | * @deprecated avfilter APIs work natively with AVFrame instead. 51 | */ 52 | attribute_deprecated 53 | AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame, 54 | int perms); 55 | 56 | /** 57 | * Create and return a buffer reference from the data and properties 58 | * contained in frame. 59 | * 60 | * @param perms permissions to assign to the new buffer reference 61 | * @deprecated avfilter APIs work natively with AVFrame instead. 62 | */ 63 | attribute_deprecated 64 | AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type, 65 | const AVFrame *frame, 66 | int perms); 67 | #endif 68 | 69 | #endif /* AVFILTER_AVCODEC_H */ 70 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavformat/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 AVFORMAT_VERSION_H 22 | #define AVFORMAT_VERSION_H 23 | 24 | /** 25 | * @file 26 | * @ingroup libavf 27 | * Libavformat version macros 28 | */ 29 | 30 | #include "libavutil/version.h" 31 | 32 | #define LIBAVFORMAT_VERSION_MAJOR 56 33 | #define LIBAVFORMAT_VERSION_MINOR 15 34 | #define LIBAVFORMAT_VERSION_MICRO 102 35 | 36 | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ 37 | LIBAVFORMAT_VERSION_MINOR, \ 38 | LIBAVFORMAT_VERSION_MICRO) 39 | #define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ 40 | LIBAVFORMAT_VERSION_MINOR, \ 41 | LIBAVFORMAT_VERSION_MICRO) 42 | #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT 43 | 44 | #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) 45 | 46 | /** 47 | * FF_API_* defines may be placed below to indicate public API that will be 48 | * dropped at a future version bump. The defines themselves are not part of 49 | * the public API and may change, break or disappear at any time. 50 | */ 51 | #ifndef FF_API_LAVF_BITEXACT 52 | #define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 57) 53 | #endif 54 | #ifndef FF_API_LAVF_FRAC 55 | #define FF_API_LAVF_FRAC (LIBAVFORMAT_VERSION_MAJOR < 57) 56 | #endif 57 | #ifndef FF_API_LAVF_CODEC_TB 58 | #define FF_API_LAVF_CODEC_TB (LIBAVFORMAT_VERSION_MAJOR < 57) 59 | #endif 60 | #ifndef FF_API_URL_FEOF 61 | #define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 57) 62 | #endif 63 | 64 | #ifndef FF_API_R_FRAME_RATE 65 | #define FF_API_R_FRAME_RATE 1 66 | #endif 67 | #endif /* AVFORMAT_VERSION_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavresample/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 AVRESAMPLE_VERSION_H 20 | #define AVRESAMPLE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * @ingroup lavr 25 | * Libavresample version macros. 26 | */ 27 | 28 | #include "libavutil/version.h" 29 | 30 | #define LIBAVRESAMPLE_VERSION_MAJOR 2 31 | #define LIBAVRESAMPLE_VERSION_MINOR 1 32 | #define LIBAVRESAMPLE_VERSION_MICRO 0 33 | 34 | #define LIBAVRESAMPLE_VERSION_INT AV_VERSION_INT(LIBAVRESAMPLE_VERSION_MAJOR, \ 35 | LIBAVRESAMPLE_VERSION_MINOR, \ 36 | LIBAVRESAMPLE_VERSION_MICRO) 37 | #define LIBAVRESAMPLE_VERSION AV_VERSION(LIBAVRESAMPLE_VERSION_MAJOR, \ 38 | LIBAVRESAMPLE_VERSION_MINOR, \ 39 | LIBAVRESAMPLE_VERSION_MICRO) 40 | #define LIBAVRESAMPLE_BUILD LIBAVRESAMPLE_VERSION_INT 41 | 42 | #define LIBAVRESAMPLE_IDENT "Lavr" AV_STRINGIFY(LIBAVRESAMPLE_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 | #ifndef FF_API_RESAMPLE_CLOSE_OPEN 51 | #define FF_API_RESAMPLE_CLOSE_OPEN (LIBAVRESAMPLE_VERSION_MAJOR < 3) 52 | #endif 53 | 54 | #endif /* AVRESAMPLE_VERSION_H */ 55 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/audioconvert.h: -------------------------------------------------------------------------------- 1 | 2 | #include "version.h" 3 | 4 | #if FF_API_AUDIOCONVERT 5 | #include "channel_layout.h" 6 | #endif 7 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/avassert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2010 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 | /** 22 | * @file 23 | * simple assert() macros that are a bit more flexible than ISO C assert(). 24 | * @author Michael Niedermayer 25 | */ 26 | 27 | #ifndef AVUTIL_AVASSERT_H 28 | #define AVUTIL_AVASSERT_H 29 | 30 | #include 31 | #include "avutil.h" 32 | #include "log.h" 33 | 34 | /** 35 | * assert() equivalent, that is always enabled. 36 | */ 37 | #define av_assert0(cond) do { \ 38 | if (!(cond)) { \ 39 | av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \ 40 | AV_STRINGIFY(cond), __FILE__, __LINE__); \ 41 | abort(); \ 42 | } \ 43 | } while (0) 44 | 45 | 46 | /** 47 | * assert() equivalent, that does not lie in speed critical code. 48 | * These asserts() thus can be enabled without fearing speedloss. 49 | */ 50 | #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 51 | #define av_assert1(cond) av_assert0(cond) 52 | #else 53 | #define av_assert1(cond) ((void)0) 54 | #endif 55 | 56 | 57 | /** 58 | * assert() equivalent, that does lie in speed critical code. 59 | */ 60 | #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 61 | #define av_assert2(cond) av_assert0(cond) 62 | #else 63 | #define av_assert2(cond) ((void)0) 64 | #endif 65 | 66 | #endif /* AVUTIL_AVASSERT_H */ 67 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) 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_BASE64_H 22 | #define AVUTIL_BASE64_H 23 | 24 | #include 25 | 26 | /** 27 | * @defgroup lavu_base64 Base64 28 | * @ingroup lavu_crypto 29 | * @{ 30 | */ 31 | 32 | 33 | /** 34 | * Decode a base64-encoded string. 35 | * 36 | * @param out buffer for decoded data 37 | * @param in null-terminated input string 38 | * @param out_size size in bytes of the out buffer, must be at 39 | * least 3/4 of the length of in 40 | * @return number of bytes written, or a negative value in case of 41 | * invalid input 42 | */ 43 | int av_base64_decode(uint8_t *out, const char *in, int out_size); 44 | 45 | /** 46 | * Encode data to base64 and null-terminate. 47 | * 48 | * @param out buffer for encoded data 49 | * @param out_size size in bytes of the out buffer (including the 50 | * null terminator), must be at least AV_BASE64_SIZE(in_size) 51 | * @param in input buffer containing the data to encode 52 | * @param in_size size in bytes of the in buffer 53 | * @return out or NULL in case of error 54 | */ 55 | char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); 56 | 57 | /** 58 | * Calculate the output size needed to base64-encode x bytes to a 59 | * null-terminated string. 60 | */ 61 | #define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) 62 | 63 | /** 64 | * @} 65 | */ 66 | 67 | #endif /* AVUTIL_BASE64_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/blowfish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Blowfish algorithm 3 | * Copyright (c) 2012 Samuel Pitoiset 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 AVUTIL_BLOWFISH_H 23 | #define AVUTIL_BLOWFISH_H 24 | 25 | #include 26 | 27 | /** 28 | * @defgroup lavu_blowfish Blowfish 29 | * @ingroup lavu_crypto 30 | * @{ 31 | */ 32 | 33 | #define AV_BF_ROUNDS 16 34 | 35 | typedef struct AVBlowfish { 36 | uint32_t p[AV_BF_ROUNDS + 2]; 37 | uint32_t s[4][256]; 38 | } AVBlowfish; 39 | 40 | /** 41 | * Initialize an AVBlowfish context. 42 | * 43 | * @param ctx an AVBlowfish context 44 | * @param key a key 45 | * @param key_len length of the key 46 | */ 47 | void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len); 48 | 49 | /** 50 | * Encrypt or decrypt a buffer using a previously initialized context. 51 | * 52 | * @param ctx an AVBlowfish context 53 | * @param xl left four bytes halves of input to be encrypted 54 | * @param xr right four bytes halves of input to be encrypted 55 | * @param decrypt 0 for encryption, 1 for decryption 56 | */ 57 | void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr, 58 | int decrypt); 59 | 60 | /** 61 | * Encrypt or decrypt a buffer using a previously initialized context. 62 | * 63 | * @param ctx an AVBlowfish context 64 | * @param dst destination array, can be equal to src 65 | * @param src source array, can be equal to dst 66 | * @param count number of 8 byte blocks 67 | * @param iv initialization vector for CBC mode, if NULL ECB will be used 68 | * @param decrypt 0 for encryption, 1 for decryption 69 | */ 70 | void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, 71 | int count, uint8_t *iv, int decrypt); 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | #endif /* AVUTIL_BLOWFISH_H */ 78 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/cast5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * An implementation of the CAST128 algorithm as mentioned in RFC2144 3 | * Copyright (c) 2014 Supraja Meedinti 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 AVUTIL_CAST5_H 23 | #define AVUTIL_CAST5_H 24 | 25 | #include 26 | 27 | 28 | /** 29 | * @file 30 | * @brief Public header for libavutil CAST5 algorithm 31 | * @defgroup lavu_cast5 CAST5 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_cast5_size; 37 | 38 | struct AVCAST5; 39 | 40 | /** 41 | * Allocate an AVCAST5 context 42 | * To free the struct: av_free(ptr) 43 | */ 44 | struct AVCAST5 *av_cast5_alloc(void); 45 | /** 46 | * Initialize an AVCAST5 context. 47 | * 48 | * @param ctx an AVCAST5 context 49 | * @param key a key of 5,6,...16 bytes used for encryption/decryption 50 | * @param key_bits number of keybits: possible are 40,48,...,128 51 | */ 52 | int av_cast5_init(struct AVCAST5 *ctx, const uint8_t *key, int key_bits); 53 | 54 | /** 55 | * Encrypt or decrypt a buffer using a previously initialized context 56 | * 57 | * @param ctx an AVCAST5 context 58 | * @param dst destination array, can be equal to src 59 | * @param src source array, can be equal to dst 60 | * @param count number of 8 byte blocks 61 | * @param decrypt 0 for encryption, 1 for decryption 62 | */ 63 | void av_cast5_crypt(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count,int decrypt); 64 | /** 65 | * @} 66 | */ 67 | #endif /* AVUTIL_CAST5_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | #ifndef AVUTIL_FFVERSION_H 2 | #define AVUTIL_FFVERSION_H 3 | #define FFMPEG_VERSION "66c8733ded" 4 | #endif /* AVUTIL_FFVERSION_H */ 5 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/file.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 AVUTIL_FILE_H 20 | #define AVUTIL_FILE_H 21 | 22 | #include 23 | 24 | #include "avutil.h" 25 | 26 | /** 27 | * @file 28 | * Misc file utilities. 29 | */ 30 | 31 | /** 32 | * Read the file with name filename, and put its content in a newly 33 | * allocated buffer or map it with mmap() when available. 34 | * In case of success set *bufptr to the read or mmapped buffer, and 35 | * *size to the size in bytes of the buffer in *bufptr. 36 | * The returned buffer must be released with av_file_unmap(). 37 | * 38 | * @param log_offset loglevel offset used for logging 39 | * @param log_ctx context used for logging 40 | * @return a non negative number in case of success, a negative value 41 | * corresponding to an AVERROR error code in case of failure 42 | */ 43 | int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, 44 | int log_offset, void *log_ctx); 45 | 46 | /** 47 | * Unmap or free the buffer bufptr created by av_file_map(). 48 | * 49 | * @param size size in bytes of bufptr, must be the same as returned 50 | * by av_file_map() 51 | */ 52 | void av_file_unmap(uint8_t *bufptr, size_t size); 53 | 54 | /** 55 | * Wrapper to work around the lack of mkstemp() on mingw. 56 | * Also, tries to create file in /tmp first, if possible. 57 | * *prefix can be a character constant; *filename will be allocated internally. 58 | * @return file descriptor of opened file (or negative value corresponding to an 59 | * AVERROR code on error) 60 | * and opened file name in **filename. 61 | * @note On very old libcs it is necessary to set a secure umask before 62 | * calling this, av_tempfile() can't call umask itself as it is used in 63 | * libraries and could interfere with the calling application. 64 | */ 65 | int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx); 66 | 67 | #endif /* AVUTIL_FILE_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/lfg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Lagged Fibonacci PRNG 3 | * Copyright (c) 2008 Michael Niedermayer 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 AVUTIL_LFG_H 23 | #define AVUTIL_LFG_H 24 | 25 | typedef struct AVLFG { 26 | unsigned int state[64]; 27 | int index; 28 | } AVLFG; 29 | 30 | void av_lfg_init(AVLFG *c, unsigned int seed); 31 | 32 | /** 33 | * Get the next random unsigned 32-bit number using an ALFG. 34 | * 35 | * Please also consider a simple LCG like state= state*1664525+1013904223, 36 | * it may be good enough and faster for your specific use case. 37 | */ 38 | static inline unsigned int av_lfg_get(AVLFG *c){ 39 | c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; 40 | return c->state[c->index++ & 63]; 41 | } 42 | 43 | /** 44 | * Get the next random unsigned 32-bit number using a MLFG. 45 | * 46 | * Please also consider av_lfg_get() above, it is faster. 47 | */ 48 | static inline unsigned int av_mlfg_get(AVLFG *c){ 49 | unsigned int a= c->state[(c->index-55) & 63]; 50 | unsigned int b= c->state[(c->index-24) & 63]; 51 | return c->state[c->index++ & 63] = 2*a*b+a+b; 52 | } 53 | 54 | /** 55 | * Get the next two numbers generated by a Box-Muller Gaussian 56 | * generator using the random numbers issued by lfg. 57 | * 58 | * @param out array where the two generated numbers are placed 59 | */ 60 | void av_bmg_get(AVLFG *lfg, double out[2]); 61 | 62 | #endif /* AVUTIL_LFG_H */ 63 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/md5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 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_MD5_H 22 | #define AVUTIL_MD5_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | /** 30 | * @defgroup lavu_md5 MD5 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | extern const int av_md5_size; 36 | 37 | struct AVMD5; 38 | 39 | /** 40 | * Allocate an AVMD5 context. 41 | */ 42 | struct AVMD5 *av_md5_alloc(void); 43 | 44 | /** 45 | * Initialize MD5 hashing. 46 | * 47 | * @param ctx pointer to the function context (of size av_md5_size) 48 | */ 49 | void av_md5_init(struct AVMD5 *ctx); 50 | 51 | /** 52 | * Update hash value. 53 | * 54 | * @param ctx hash function context 55 | * @param src input data to update hash with 56 | * @param len input data length 57 | */ 58 | void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, int len); 59 | 60 | /** 61 | * Finish hashing and output digest value. 62 | * 63 | * @param ctx hash function context 64 | * @param dst buffer where output digest value is stored 65 | */ 66 | void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); 67 | 68 | /** 69 | * Hash an array of data. 70 | * 71 | * @param dst The output buffer to write the digest into 72 | * @param src The data to hash 73 | * @param len The length of the data, in bytes 74 | */ 75 | void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len); 76 | 77 | /** 78 | * @} 79 | */ 80 | 81 | #endif /* AVUTIL_MD5_H */ 82 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/motion_vector.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 AVUTIL_MOTION_VECTOR_H 20 | #define AVUTIL_MOTION_VECTOR_H 21 | 22 | #include 23 | 24 | typedef struct AVMotionVector { 25 | /** 26 | * Where the current macroblock comes from; negative value when it comes 27 | * from the past, positive value when it comes from the future. 28 | * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". 29 | */ 30 | int32_t source; 31 | /** 32 | * Width and height of the block. 33 | */ 34 | uint8_t w, h; 35 | /** 36 | * Absolute source position. Can be outside the frame area. 37 | */ 38 | int16_t src_x, src_y; 39 | /** 40 | * Absolute destination position. Can be outside the frame area. 41 | */ 42 | int16_t dst_x, dst_y; 43 | /** 44 | * Extra flag information. 45 | * Currently unused. 46 | */ 47 | uint64_t flags; 48 | } AVMotionVector; 49 | 50 | #endif /* AVUTIL_MOTION_VECTOR_H */ 51 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/pixelutils.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 AVUTIL_PIXELUTILS_H 20 | #define AVUTIL_PIXELUTILS_H 21 | 22 | #include 23 | #include 24 | #include "common.h" 25 | 26 | /** 27 | * Sum of abs(src1[x] - src2[x]) 28 | */ 29 | typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1, 30 | const uint8_t *src2, ptrdiff_t stride2); 31 | 32 | /** 33 | * Get a potentially optimized pointer to a Sum-of-absolute-differences 34 | * function (see the av_pixelutils_sad_fn prototype). 35 | * 36 | * @param w_bits 1< 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/ripemd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Michael Niedermayer 3 | * Copyright (C) 2013 James Almer 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 AVUTIL_RIPEMD_H 23 | #define AVUTIL_RIPEMD_H 24 | 25 | #include 26 | 27 | #include "attributes.h" 28 | #include "version.h" 29 | 30 | /** 31 | * @defgroup lavu_ripemd RIPEMD 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_ripemd_size; 37 | 38 | struct AVRIPEMD; 39 | 40 | /** 41 | * Allocate an AVRIPEMD context. 42 | */ 43 | struct AVRIPEMD *av_ripemd_alloc(void); 44 | 45 | /** 46 | * Initialize RIPEMD hashing. 47 | * 48 | * @param context pointer to the function context (of size av_ripemd_size) 49 | * @param bits number of bits in digest (128, 160, 256 or 320 bits) 50 | * @return zero if initialization succeeded, -1 otherwise 51 | */ 52 | int av_ripemd_init(struct AVRIPEMD* context, int bits); 53 | 54 | /** 55 | * Update hash value. 56 | * 57 | * @param context hash function context 58 | * @param data input data to update hash with 59 | * @param len input data length 60 | */ 61 | void av_ripemd_update(struct AVRIPEMD* context, const uint8_t* data, unsigned int len); 62 | 63 | /** 64 | * Finish hashing and output digest value. 65 | * 66 | * @param context hash function context 67 | * @param digest buffer where output digest value is stored 68 | */ 69 | void av_ripemd_final(struct AVRIPEMD* context, uint8_t *digest); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | #endif /* AVUTIL_RIPEMD_H */ 76 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/sha.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_SHA_H 22 | #define AVUTIL_SHA_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | /** 30 | * @defgroup lavu_sha SHA 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | extern const int av_sha_size; 36 | 37 | struct AVSHA; 38 | 39 | /** 40 | * Allocate an AVSHA context. 41 | */ 42 | struct AVSHA *av_sha_alloc(void); 43 | 44 | /** 45 | * Initialize SHA-1 or SHA-2 hashing. 46 | * 47 | * @param context pointer to the function context (of size av_sha_size) 48 | * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) 49 | * @return zero if initialization succeeded, -1 otherwise 50 | */ 51 | int av_sha_init(struct AVSHA* context, int bits); 52 | 53 | /** 54 | * Update hash value. 55 | * 56 | * @param context hash function context 57 | * @param data input data to update hash with 58 | * @param len input data length 59 | */ 60 | void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len); 61 | 62 | /** 63 | * Finish hashing and output digest value. 64 | * 65 | * @param context hash function context 66 | * @param digest buffer where output digest value is stored 67 | */ 68 | void av_sha_final(struct AVSHA* context, uint8_t *digest); 69 | 70 | /** 71 | * @} 72 | */ 73 | 74 | #endif /* AVUTIL_SHA_H */ 75 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/sha512.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Michael Niedermayer 3 | * Copyright (C) 2013 James Almer 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 AVUTIL_SHA512_H 23 | #define AVUTIL_SHA512_H 24 | 25 | #include 26 | 27 | #include "attributes.h" 28 | #include "version.h" 29 | 30 | /** 31 | * @defgroup lavu_sha512 SHA512 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_sha512_size; 37 | 38 | struct AVSHA512; 39 | 40 | /** 41 | * Allocate an AVSHA512 context. 42 | */ 43 | struct AVSHA512 *av_sha512_alloc(void); 44 | 45 | /** 46 | * Initialize SHA-2 512 hashing. 47 | * 48 | * @param context pointer to the function context (of size av_sha512_size) 49 | * @param bits number of bits in digest (224, 256, 384 or 512 bits) 50 | * @return zero if initialization succeeded, -1 otherwise 51 | */ 52 | int av_sha512_init(struct AVSHA512* context, int bits); 53 | 54 | /** 55 | * Update hash value. 56 | * 57 | * @param context hash function context 58 | * @param data input data to update hash with 59 | * @param len input data length 60 | */ 61 | void av_sha512_update(struct AVSHA512* context, const uint8_t* data, unsigned int len); 62 | 63 | /** 64 | * Finish hashing and output digest value. 65 | * 66 | * @param context hash function context 67 | * @param digest buffer where output digest value is stored 68 | */ 69 | void av_sha512_final(struct AVSHA512* context, uint8_t *digest); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | #endif /* AVUTIL_SHA512_H */ 76 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 | * Get the current time in microseconds since some unspecified starting point. 33 | * On platforms that support it, the time comes from a monotonic clock 34 | * This property makes this time source ideal for measuring relative time. 35 | * The returned values may not be monotonic on platforms where a monotonic 36 | * clock is not available. 37 | */ 38 | int64_t av_gettime_relative(void); 39 | 40 | /** 41 | * Indicates with a boolean result if the av_gettime_relative() time source 42 | * is monotonic. 43 | */ 44 | int av_gettime_relative_is_monotonic(void); 45 | 46 | /** 47 | * Sleep for a period of time. Although the duration is expressed in 48 | * microseconds, the actual delay may be rounded to the precision of the 49 | * system timer. 50 | * 51 | * @param usec Number of microseconds to sleep. 52 | * @return zero on success or (negative) error code. 53 | */ 54 | int av_usleep(unsigned usec); 55 | 56 | #endif /* AVUTIL_TIME_H */ 57 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/timestamp.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 | * timestamp utils, mostly useful for debugging/logging purposes 22 | */ 23 | 24 | #ifndef AVUTIL_TIMESTAMP_H 25 | #define AVUTIL_TIMESTAMP_H 26 | 27 | #include "common.h" 28 | 29 | #if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64) 30 | #error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS 31 | #endif 32 | 33 | #define AV_TS_MAX_STRING_SIZE 32 34 | 35 | /** 36 | * Fill the provided buffer with a string containing a timestamp 37 | * representation. 38 | * 39 | * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE 40 | * @param ts the timestamp to represent 41 | * @return the buffer in input 42 | */ 43 | static inline char *av_ts_make_string(char *buf, int64_t ts) 44 | { 45 | if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); 46 | else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64, ts); 47 | return buf; 48 | } 49 | 50 | /** 51 | * Convenience macro, the return value should be used only directly in 52 | * function arguments but never stand-alone. 53 | */ 54 | #define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts) 55 | 56 | /** 57 | * Fill the provided buffer with a string containing a timestamp time 58 | * representation. 59 | * 60 | * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE 61 | * @param ts the timestamp to represent 62 | * @param tb the timebase of the timestamp 63 | * @return the buffer in input 64 | */ 65 | static inline char *av_ts_make_time_string(char *buf, int64_t ts, AVRational *tb) 66 | { 67 | if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); 68 | else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts); 69 | return buf; 70 | } 71 | 72 | /** 73 | * Convenience macro, the return value should be used only directly in 74 | * function arguments but never stand-alone. 75 | */ 76 | #define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb) 77 | 78 | #endif /* AVUTIL_TIMESTAMP_H */ 79 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libavutil/xtea.h: -------------------------------------------------------------------------------- 1 | /* 2 | * A 32-bit implementation of the XTEA algorithm 3 | * Copyright (c) 2012 Samuel Pitoiset 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 AVUTIL_XTEA_H 23 | #define AVUTIL_XTEA_H 24 | 25 | #include 26 | 27 | /** 28 | * @file 29 | * @brief Public header for libavutil XTEA algorithm 30 | * @defgroup lavu_xtea XTEA 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | typedef struct AVXTEA { 36 | uint32_t key[16]; 37 | } AVXTEA; 38 | 39 | /** 40 | * Initialize an AVXTEA context. 41 | * 42 | * @param ctx an AVXTEA context 43 | * @param key a key of 16 bytes used for encryption/decryption 44 | */ 45 | void av_xtea_init(struct AVXTEA *ctx, const uint8_t key[16]); 46 | 47 | /** 48 | * Encrypt or decrypt a buffer using a previously initialized context. 49 | * 50 | * @param ctx an AVXTEA context 51 | * @param dst destination array, can be equal to src 52 | * @param src source array, can be equal to dst 53 | * @param count number of 8 byte blocks 54 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used 55 | * @param decrypt 0 for encryption, 1 for decryption 56 | */ 57 | void av_xtea_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, 58 | int count, uint8_t *iv, int decrypt); 59 | 60 | /** 61 | * @} 62 | */ 63 | 64 | #endif /* AVUTIL_XTEA_H */ 65 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/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 1 32 | #define LIBSWRESAMPLE_VERSION_MINOR 1 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/include/libswscale/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 SWSCALE_VERSION_H 20 | #define SWSCALE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * swscale version macros 25 | */ 26 | 27 | #include "libavutil/version.h" 28 | 29 | #define LIBSWSCALE_VERSION_MAJOR 3 30 | #define LIBSWSCALE_VERSION_MINOR 1 31 | #define LIBSWSCALE_VERSION_MICRO 101 32 | 33 | #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ 34 | LIBSWSCALE_VERSION_MINOR, \ 35 | LIBSWSCALE_VERSION_MICRO) 36 | #define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ 37 | LIBSWSCALE_VERSION_MINOR, \ 38 | LIBSWSCALE_VERSION_MICRO) 39 | #define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT 40 | 41 | #define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) 42 | 43 | /** 44 | * FF_API_* defines may be placed below to indicate public API that will be 45 | * dropped at a future version bump. The defines themselves are not part of 46 | * the public API and may change, break or disappear at any time. 47 | */ 48 | 49 | #ifndef FF_API_SWS_CPU_CAPS 50 | #define FF_API_SWS_CPU_CAPS (LIBSWSCALE_VERSION_MAJOR < 4) 51 | #endif 52 | #ifndef FF_API_ARCH_BFIN 53 | #define FF_API_ARCH_BFIN (LIBSWSCALE_VERSION_MAJOR < 4) 54 | #endif 55 | 56 | #endif /* SWSCALE_VERSION_H */ 57 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avcodec.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avcodec.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avdevice.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avdevice.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avfilter.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avfilter.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avformat.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avformat.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avresample.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avresample.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avutil.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/avutil.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/swresample.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/swresample.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/ffmpeg/lib/swscale.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/ffmpeg/lib/swscale.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Appenders/AndroidAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | template 7 | class AndroidAppender : public IAppender 8 | { 9 | public: 10 | AndroidAppender(const char* tag) : m_tag(tag) 11 | { 12 | } 13 | 14 | virtual void write(const Record& record) 15 | { 16 | std::string str = Formatter::format(record); 17 | 18 | __android_log_print(toPriority(record.getSeverity()), m_tag, "%s", str.c_str()); 19 | } 20 | 21 | private: 22 | static android_LogPriority toPriority(Severity severity) 23 | { 24 | switch (severity) 25 | { 26 | case fatal: 27 | return ANDROID_LOG_FATAL; 28 | case error: 29 | return ANDROID_LOG_ERROR; 30 | case warning: 31 | return ANDROID_LOG_WARN; 32 | case info: 33 | return ANDROID_LOG_INFO; 34 | case debug: 35 | return ANDROID_LOG_DEBUG; 36 | case verbose: 37 | return ANDROID_LOG_VERBOSE; 38 | default: 39 | return ANDROID_LOG_UNKNOWN; 40 | } 41 | } 42 | 43 | private: 44 | const char* const m_tag; 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Appenders/ConsoleAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | template 8 | class ConsoleAppender : public IAppender 9 | { 10 | public: 11 | ConsoleAppender() 12 | { 13 | #ifdef _WIN32 14 | ::setlocale(LC_ALL, ""); 15 | #endif 16 | } 17 | 18 | virtual void write(const Record& record) 19 | { 20 | util::nstring str = Formatter::format(record); 21 | util::MutexLock lock(m_mutex); 22 | 23 | writestr(str); 24 | } 25 | 26 | protected: 27 | void writestr(const util::nstring& str) 28 | { 29 | #ifdef _WIN32 30 | std::wcout << str << std::flush; 31 | #else 32 | std::cout << str << std::flush; 33 | #endif 34 | } 35 | 36 | protected: 37 | util::Mutex m_mutex; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Appenders/DebugOutputAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | template 7 | class DebugOutputAppender : public IAppender 8 | { 9 | public: 10 | virtual void write(const Record& record) 11 | { 12 | OutputDebugStringW(Formatter::format(record).c_str()); 13 | } 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Appenders/IAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace plog 4 | { 5 | class IAppender 6 | { 7 | public: 8 | virtual ~IAppender() 9 | { 10 | } 11 | 12 | virtual void write(const Record& record) = 0; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Converters/UTF8Converter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | class UTF8Converter 7 | { 8 | public: 9 | static std::string header(const util::nstring& str) 10 | { 11 | const char kBOM[] = "\xEF\xBB\xBF"; 12 | 13 | return std::string(kBOM) + convert(str); 14 | } 15 | 16 | #ifdef WIN32 17 | static std::string convert(const util::nstring& str) 18 | { 19 | return util::toUTF8(str); 20 | } 21 | #else 22 | static const std::string& convert(const util::nstring& str) 23 | { 24 | return str; 25 | } 26 | #endif 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Formatters/CsvFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace plog 7 | { 8 | class CsvFormatter 9 | { 10 | public: 11 | static util::nstring header() 12 | { 13 | return PLOG_NSTR("Date;Time;Severity;TID;This;Function;Message\n"); 14 | } 15 | 16 | static util::nstring format(const Record& record) 17 | { 18 | tm t; 19 | util::localtime_s(&t, &record.getTime().time); 20 | 21 | util::nstringstream ss; 22 | ss << t.tm_year + 1900 << "/" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mon + 1 << "/" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mday << ";"; 23 | ss << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_hour << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_min << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_sec << "." << std::setfill(PLOG_NSTR('0')) << std::setw(3) << record.getTime().millitm << ";"; 24 | ss << severityToString(record.getSeverity()) << ";"; 25 | ss << record.getTid() << ";"; 26 | ss << record.getObject() << ";"; 27 | ss << record.getFunc() << "@" << record.getLine() << ";"; 28 | 29 | util::nstring message = record.getMessage(); 30 | 31 | if (message.size() > kMaxMessageSize) 32 | { 33 | message.resize(kMaxMessageSize); 34 | message.append(PLOG_NSTR("...")); 35 | } 36 | 37 | util::nstringstream split(message); 38 | util::nstring token; 39 | 40 | while (!split.eof()) 41 | { 42 | std::getline(split, token, PLOG_NSTR('"')); 43 | ss << "\"" << token << "\""; 44 | } 45 | 46 | ss << "\n"; 47 | 48 | return ss.str(); 49 | } 50 | 51 | static const size_t kMaxMessageSize = 32000; 52 | }; 53 | } 54 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Formatters/FuncMessageFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | class FuncMessageFormatter 8 | { 9 | public: 10 | static util::nstring header() 11 | { 12 | return util::nstring(); 13 | } 14 | 15 | static util::nstring format(const Record& record) 16 | { 17 | util::nstringstream ss; 18 | ss << record.getFunc() << "@" << record.getLine() << ": "; 19 | ss << record.getMessage() << "\n"; 20 | 21 | return ss.str(); 22 | } 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Formatters/TxtFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | class TxtFormatter 8 | { 9 | public: 10 | static util::nstring header() 11 | { 12 | return util::nstring(); 13 | } 14 | 15 | static util::nstring format(const Record& record) 16 | { 17 | tm t; 18 | util::localtime_s(&t, &record.getTime().time); 19 | 20 | util::nstringstream ss; 21 | ss << t.tm_year + 1900 << "-" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mon + 1 << "-" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mday << " "; 22 | ss << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_hour << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_min << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_sec << "." << std::setfill(PLOG_NSTR('0')) << std::setw(3) << record.getTime().millitm << " "; 23 | ss << std::setfill(PLOG_NSTR(' ')) << std::setw(5) << std::left << severityToString(record.getSeverity()) << " "; 24 | ss << "[" << record.getTid() << "] "; 25 | ss << "[" << record.getFunc() << "@" << record.getLine() << "] "; 26 | ss << record.getMessage() << "\n"; 27 | 28 | return ss.str(); 29 | } 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Logger.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #ifndef PLOG_DEFAULT_INSTANCE 7 | # define PLOG_DEFAULT_INSTANCE 0 8 | #endif 9 | 10 | extern void RemoteLog(const std::string& log); 11 | 12 | namespace plog 13 | { 14 | template 15 | class Logger : public util::Singleton >, public IAppender 16 | { 17 | public: 18 | Logger(Severity maxSeverity = none) : m_maxSeverity(maxSeverity) 19 | { 20 | } 21 | 22 | Logger& addAppender(IAppender* appender) 23 | { 24 | assert(appender != this); 25 | m_appenders.push_back(appender); 26 | return *this; 27 | } 28 | 29 | Severity getMaxSeverity() const 30 | { 31 | return m_maxSeverity; 32 | } 33 | 34 | void setMaxSeverity(Severity severity) 35 | { 36 | m_maxSeverity = severity; 37 | } 38 | 39 | bool checkSeverity(Severity severity) const 40 | { 41 | return severity <= m_maxSeverity; 42 | } 43 | 44 | virtual void write(const Record& record) 45 | { 46 | if (checkSeverity(record.getSeverity())) 47 | { 48 | *this += record; 49 | } 50 | } 51 | 52 | void operator+=(const Record& record) 53 | { 54 | for (std::vector::iterator it = m_appenders.begin(); it != m_appenders.end(); ++it) 55 | { 56 | (*it)->write(record); 57 | } 58 | 59 | util::nstring str = TxtFormatter::format(record); 60 | #ifndef _WIN32 61 | RemoteLog(str); 62 | #endif 63 | } 64 | 65 | private: 66 | Severity m_maxSeverity; 67 | std::vector m_appenders; 68 | }; 69 | 70 | template 71 | inline Logger* get() 72 | { 73 | return Logger::getInstance(); 74 | } 75 | 76 | inline Logger* get() 77 | { 78 | return Logger::getInstance(); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/plog/include/plog/Severity.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace plog 4 | { 5 | enum Severity 6 | { 7 | none = 0, 8 | fatal = 1, 9 | error = 2, 10 | warning = 3, 11 | info = 4, 12 | debug = 5, 13 | verbose = 6 14 | }; 15 | 16 | inline const char* severityToString(Severity severity) 17 | { 18 | switch (severity) 19 | { 20 | case fatal: 21 | return "FATAL"; 22 | case error: 23 | return "ERROR"; 24 | case warning: 25 | return "WARN"; 26 | case info: 27 | return "INFO"; 28 | case debug: 29 | return "DEBUG"; 30 | case verbose: 31 | return "VERB"; 32 | default: 33 | return "NONE"; 34 | } 35 | } 36 | 37 | inline Severity severityFromString(const char* str) 38 | { 39 | for (Severity severity = fatal; severity <= verbose; severity = static_cast(severity + 1)) 40 | { 41 | if (severityToString(severity)[0] == str[0]) 42 | { 43 | return severity; 44 | } 45 | } 46 | 47 | return none; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x64/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x64/pthread-win32/include/context.h: -------------------------------------------------------------------------------- 1 | /* 2 | * context.h 3 | * 4 | * Description: 5 | * POSIX thread macros related to thread cancellation. 6 | * 7 | * -------------------------------------------------------------------------- 8 | * 9 | * Pthreads-win32 - POSIX Threads Library for Win32 10 | * Copyright(C) 1998 John E. Bossom 11 | * Copyright(C) 1999,2012 Pthreads-win32 contributors 12 | * 13 | * Homepage1: http://sourceware.org/pthreads-win32/ 14 | * Homepage2: http://sourceforge.net/projects/pthreads4w/ 15 | * 16 | * The current list of contributors is contained 17 | * in the file CONTRIBUTORS included with the source 18 | * code distribution. The list can also be seen at the 19 | * following World Wide Web location: 20 | * http://sources.redhat.com/pthreads-win32/contributors.html 21 | * 22 | * This library is free software; you can redistribute it and/or 23 | * modify it under the terms of the GNU Lesser General Public 24 | * License as published by the Free Software Foundation; either 25 | * version 2 of the License, or (at your option) any later version. 26 | * 27 | * This library is distributed in the hope that it will be useful, 28 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 29 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 30 | * Lesser General Public License for more details. 31 | * 32 | * You should have received a copy of the GNU Lesser General Public 33 | * License along with this library in the file COPYING.LIB; 34 | * if not, write to the Free Software Foundation, Inc., 35 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 36 | */ 37 | 38 | #ifndef PTW32_CONTEXT_H 39 | #define PTW32_CONTEXT_H 40 | 41 | #undef PTW32_PROGCTR 42 | 43 | #if defined(_M_IX86) || (defined(_X86_) && !defined(__amd64__)) 44 | #define PTW32_PROGCTR(Context) ((Context).Eip) 45 | #endif 46 | 47 | #if defined (_M_IA64) || defined(_IA64) 48 | #define PTW32_PROGCTR(Context) ((Context).StIIP) 49 | #endif 50 | 51 | #if defined(_MIPS_) || defined(MIPS) 52 | #define PTW32_PROGCTR(Context) ((Context).Fir) 53 | #endif 54 | 55 | #if defined(_ALPHA_) 56 | #define PTW32_PROGCTR(Context) ((Context).Fir) 57 | #endif 58 | 59 | #if defined(_PPC_) 60 | #define PTW32_PROGCTR(Context) ((Context).Iar) 61 | #endif 62 | 63 | #if defined(_AMD64_) || defined(__amd64__) 64 | #define PTW32_PROGCTR(Context) ((Context).Rip) 65 | #endif 66 | 67 | #if defined(_ARM_) || defined(ARM) 68 | #define PTW32_PROGCTR(Context) ((Context).Pc) 69 | #endif 70 | 71 | #if !defined(PTW32_PROGCTR) 72 | #error Module contains CPU-specific code; modify and recompile. 73 | #endif 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/dlls/avcodec-56.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/dlls/avcodec-56.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/dlls/avformat-56.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/dlls/avformat-56.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/dlls/avutil-54.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/dlls/avutil-54.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/dlls/pthread_dll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/dlls/pthread_dll.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/dlls/swscale-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/dlls/swscale-3.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavcodec/dxva2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * DXVA2 HW acceleration 3 | * 4 | * copyright (c) 2009 Laurent Aimar 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * FFmpeg 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 GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_DXVA_H 24 | #define AVCODEC_DXVA_H 25 | 26 | /** 27 | * @file 28 | * @ingroup lavc_codec_hwaccel_dxva2 29 | * Public libavcodec DXVA2 header. 30 | */ 31 | 32 | #if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600 33 | #undef _WIN32_WINNT 34 | #define _WIN32_WINNT 0x0600 35 | #endif 36 | 37 | #include 38 | #include 39 | #include 40 | 41 | /** 42 | * @defgroup lavc_codec_hwaccel_dxva2 DXVA2 43 | * @ingroup lavc_codec_hwaccel 44 | * 45 | * @{ 46 | */ 47 | 48 | #define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards 49 | #define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface 50 | 51 | /** 52 | * This structure is used to provides the necessary configurations and data 53 | * to the DXVA2 FFmpeg HWAccel implementation. 54 | * 55 | * The application must make it available as AVCodecContext.hwaccel_context. 56 | */ 57 | struct dxva_context { 58 | /** 59 | * DXVA2 decoder object 60 | */ 61 | IDirectXVideoDecoder *decoder; 62 | 63 | /** 64 | * DXVA2 configuration used to create the decoder 65 | */ 66 | const DXVA2_ConfigPictureDecode *cfg; 67 | 68 | /** 69 | * The number of surface in the surface array 70 | */ 71 | unsigned surface_count; 72 | 73 | /** 74 | * The array of Direct3D surfaces used to create the decoder 75 | */ 76 | LPDIRECT3DSURFACE9 *surface; 77 | 78 | /** 79 | * A bit field configuring the workarounds needed for using the decoder 80 | */ 81 | uint64_t workaround; 82 | 83 | /** 84 | * Private to the FFmpeg AVHWAccel implementation 85 | */ 86 | unsigned report_id; 87 | }; 88 | 89 | /** 90 | * @} 91 | */ 92 | 93 | #endif /* AVCODEC_DXVA_H */ 94 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavcodec/vorbis_parser.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 | /** 21 | * @file 22 | * A public API for Vorbis parsing 23 | * 24 | * Determines the duration for each packet. 25 | */ 26 | 27 | #ifndef AVCODEC_VORBIS_PARSE_H 28 | #define AVCODEC_VORBIS_PARSE_H 29 | 30 | #include 31 | 32 | typedef struct AVVorbisParseContext AVVorbisParseContext; 33 | 34 | /** 35 | * Allocate and initialize the Vorbis parser using headers in the extradata. 36 | * 37 | * @param avctx codec context 38 | * @param s Vorbis parser context 39 | */ 40 | AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata, 41 | int extradata_size); 42 | 43 | /** 44 | * Free the parser and everything associated with it. 45 | */ 46 | void av_vorbis_parse_free(AVVorbisParseContext **s); 47 | 48 | #define VORBIS_FLAG_HEADER 0x00000001 49 | #define VORBIS_FLAG_COMMENT 0x00000002 50 | 51 | /** 52 | * Get the duration for a Vorbis packet. 53 | * 54 | * If @p flags is @c NULL, 55 | * special frames are considered invalid. 56 | * 57 | * @param s Vorbis parser context 58 | * @param buf buffer containing a Vorbis frame 59 | * @param buf_size size of the buffer 60 | * @param flags flags for special frames 61 | */ 62 | int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, 63 | int buf_size, int *flags); 64 | 65 | /** 66 | * Get the duration for a Vorbis packet. 67 | * 68 | * @param s Vorbis parser context 69 | * @param buf buffer containing a Vorbis frame 70 | * @param buf_size size of the buffer 71 | */ 72 | int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, 73 | int buf_size); 74 | 75 | void av_vorbis_parse_reset(AVVorbisParseContext *s); 76 | 77 | #endif /* AVCODEC_VORBIS_PARSE_H */ 78 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 56 31 | #define LIBAVDEVICE_VERSION_MINOR 3 32 | #define LIBAVDEVICE_VERSION_MICRO 100 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavfilter/avcodec.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 AVFILTER_AVCODEC_H 20 | #define AVFILTER_AVCODEC_H 21 | 22 | /** 23 | * @file 24 | * libavcodec/libavfilter gluing utilities 25 | * 26 | * This should be included in an application ONLY if the installed 27 | * libavfilter has been compiled with libavcodec support, otherwise 28 | * symbols defined below will not be available. 29 | */ 30 | 31 | #include "avfilter.h" 32 | 33 | #if FF_API_AVFILTERBUFFER 34 | /** 35 | * Create and return a picref reference from the data and properties 36 | * contained in frame. 37 | * 38 | * @param perms permissions to assign to the new buffer reference 39 | * @deprecated avfilter APIs work natively with AVFrame instead. 40 | */ 41 | attribute_deprecated 42 | AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms); 43 | 44 | 45 | /** 46 | * Create and return a picref reference from the data and properties 47 | * contained in frame. 48 | * 49 | * @param perms permissions to assign to the new buffer reference 50 | * @deprecated avfilter APIs work natively with AVFrame instead. 51 | */ 52 | attribute_deprecated 53 | AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame, 54 | int perms); 55 | 56 | /** 57 | * Create and return a buffer reference from the data and properties 58 | * contained in frame. 59 | * 60 | * @param perms permissions to assign to the new buffer reference 61 | * @deprecated avfilter APIs work natively with AVFrame instead. 62 | */ 63 | attribute_deprecated 64 | AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type, 65 | const AVFrame *frame, 66 | int perms); 67 | #endif 68 | 69 | #endif /* AVFILTER_AVCODEC_H */ 70 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavformat/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 AVFORMAT_VERSION_H 22 | #define AVFORMAT_VERSION_H 23 | 24 | /** 25 | * @file 26 | * @ingroup libavf 27 | * Libavformat version macros 28 | */ 29 | 30 | #include "libavutil/version.h" 31 | 32 | #define LIBAVFORMAT_VERSION_MAJOR 56 33 | #define LIBAVFORMAT_VERSION_MINOR 15 34 | #define LIBAVFORMAT_VERSION_MICRO 102 35 | 36 | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ 37 | LIBAVFORMAT_VERSION_MINOR, \ 38 | LIBAVFORMAT_VERSION_MICRO) 39 | #define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ 40 | LIBAVFORMAT_VERSION_MINOR, \ 41 | LIBAVFORMAT_VERSION_MICRO) 42 | #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT 43 | 44 | #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) 45 | 46 | /** 47 | * FF_API_* defines may be placed below to indicate public API that will be 48 | * dropped at a future version bump. The defines themselves are not part of 49 | * the public API and may change, break or disappear at any time. 50 | */ 51 | #ifndef FF_API_LAVF_BITEXACT 52 | #define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 57) 53 | #endif 54 | #ifndef FF_API_LAVF_FRAC 55 | #define FF_API_LAVF_FRAC (LIBAVFORMAT_VERSION_MAJOR < 57) 56 | #endif 57 | #ifndef FF_API_LAVF_CODEC_TB 58 | #define FF_API_LAVF_CODEC_TB (LIBAVFORMAT_VERSION_MAJOR < 57) 59 | #endif 60 | #ifndef FF_API_URL_FEOF 61 | #define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 57) 62 | #endif 63 | 64 | #ifndef FF_API_R_FRAME_RATE 65 | #define FF_API_R_FRAME_RATE 1 66 | #endif 67 | #endif /* AVFORMAT_VERSION_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavresample/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 AVRESAMPLE_VERSION_H 20 | #define AVRESAMPLE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * @ingroup lavr 25 | * Libavresample version macros. 26 | */ 27 | 28 | #include "libavutil/version.h" 29 | 30 | #define LIBAVRESAMPLE_VERSION_MAJOR 2 31 | #define LIBAVRESAMPLE_VERSION_MINOR 1 32 | #define LIBAVRESAMPLE_VERSION_MICRO 0 33 | 34 | #define LIBAVRESAMPLE_VERSION_INT AV_VERSION_INT(LIBAVRESAMPLE_VERSION_MAJOR, \ 35 | LIBAVRESAMPLE_VERSION_MINOR, \ 36 | LIBAVRESAMPLE_VERSION_MICRO) 37 | #define LIBAVRESAMPLE_VERSION AV_VERSION(LIBAVRESAMPLE_VERSION_MAJOR, \ 38 | LIBAVRESAMPLE_VERSION_MINOR, \ 39 | LIBAVRESAMPLE_VERSION_MICRO) 40 | #define LIBAVRESAMPLE_BUILD LIBAVRESAMPLE_VERSION_INT 41 | 42 | #define LIBAVRESAMPLE_IDENT "Lavr" AV_STRINGIFY(LIBAVRESAMPLE_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 | #ifndef FF_API_RESAMPLE_CLOSE_OPEN 51 | #define FF_API_RESAMPLE_CLOSE_OPEN (LIBAVRESAMPLE_VERSION_MAJOR < 3) 52 | #endif 53 | 54 | #endif /* AVRESAMPLE_VERSION_H */ 55 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/audioconvert.h: -------------------------------------------------------------------------------- 1 | 2 | #include "version.h" 3 | 4 | #if FF_API_AUDIOCONVERT 5 | #include "channel_layout.h" 6 | #endif 7 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/avassert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2010 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 | /** 22 | * @file 23 | * simple assert() macros that are a bit more flexible than ISO C assert(). 24 | * @author Michael Niedermayer 25 | */ 26 | 27 | #ifndef AVUTIL_AVASSERT_H 28 | #define AVUTIL_AVASSERT_H 29 | 30 | #include 31 | #include "avutil.h" 32 | #include "log.h" 33 | 34 | /** 35 | * assert() equivalent, that is always enabled. 36 | */ 37 | #define av_assert0(cond) do { \ 38 | if (!(cond)) { \ 39 | av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \ 40 | AV_STRINGIFY(cond), __FILE__, __LINE__); \ 41 | abort(); \ 42 | } \ 43 | } while (0) 44 | 45 | 46 | /** 47 | * assert() equivalent, that does not lie in speed critical code. 48 | * These asserts() thus can be enabled without fearing speedloss. 49 | */ 50 | #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 51 | #define av_assert1(cond) av_assert0(cond) 52 | #else 53 | #define av_assert1(cond) ((void)0) 54 | #endif 55 | 56 | 57 | /** 58 | * assert() equivalent, that does lie in speed critical code. 59 | */ 60 | #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 61 | #define av_assert2(cond) av_assert0(cond) 62 | #else 63 | #define av_assert2(cond) ((void)0) 64 | #endif 65 | 66 | #endif /* AVUTIL_AVASSERT_H */ 67 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) 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_BASE64_H 22 | #define AVUTIL_BASE64_H 23 | 24 | #include 25 | 26 | /** 27 | * @defgroup lavu_base64 Base64 28 | * @ingroup lavu_crypto 29 | * @{ 30 | */ 31 | 32 | 33 | /** 34 | * Decode a base64-encoded string. 35 | * 36 | * @param out buffer for decoded data 37 | * @param in null-terminated input string 38 | * @param out_size size in bytes of the out buffer, must be at 39 | * least 3/4 of the length of in 40 | * @return number of bytes written, or a negative value in case of 41 | * invalid input 42 | */ 43 | int av_base64_decode(uint8_t *out, const char *in, int out_size); 44 | 45 | /** 46 | * Encode data to base64 and null-terminate. 47 | * 48 | * @param out buffer for encoded data 49 | * @param out_size size in bytes of the out buffer (including the 50 | * null terminator), must be at least AV_BASE64_SIZE(in_size) 51 | * @param in input buffer containing the data to encode 52 | * @param in_size size in bytes of the in buffer 53 | * @return out or NULL in case of error 54 | */ 55 | char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); 56 | 57 | /** 58 | * Calculate the output size needed to base64-encode x bytes to a 59 | * null-terminated string. 60 | */ 61 | #define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) 62 | 63 | /** 64 | * @} 65 | */ 66 | 67 | #endif /* AVUTIL_BASE64_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/blowfish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Blowfish algorithm 3 | * Copyright (c) 2012 Samuel Pitoiset 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 AVUTIL_BLOWFISH_H 23 | #define AVUTIL_BLOWFISH_H 24 | 25 | #include 26 | 27 | /** 28 | * @defgroup lavu_blowfish Blowfish 29 | * @ingroup lavu_crypto 30 | * @{ 31 | */ 32 | 33 | #define AV_BF_ROUNDS 16 34 | 35 | typedef struct AVBlowfish { 36 | uint32_t p[AV_BF_ROUNDS + 2]; 37 | uint32_t s[4][256]; 38 | } AVBlowfish; 39 | 40 | /** 41 | * Initialize an AVBlowfish context. 42 | * 43 | * @param ctx an AVBlowfish context 44 | * @param key a key 45 | * @param key_len length of the key 46 | */ 47 | void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len); 48 | 49 | /** 50 | * Encrypt or decrypt a buffer using a previously initialized context. 51 | * 52 | * @param ctx an AVBlowfish context 53 | * @param xl left four bytes halves of input to be encrypted 54 | * @param xr right four bytes halves of input to be encrypted 55 | * @param decrypt 0 for encryption, 1 for decryption 56 | */ 57 | void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr, 58 | int decrypt); 59 | 60 | /** 61 | * Encrypt or decrypt a buffer using a previously initialized context. 62 | * 63 | * @param ctx an AVBlowfish context 64 | * @param dst destination array, can be equal to src 65 | * @param src source array, can be equal to dst 66 | * @param count number of 8 byte blocks 67 | * @param iv initialization vector for CBC mode, if NULL ECB will be used 68 | * @param decrypt 0 for encryption, 1 for decryption 69 | */ 70 | void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, 71 | int count, uint8_t *iv, int decrypt); 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | #endif /* AVUTIL_BLOWFISH_H */ 78 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/cast5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * An implementation of the CAST128 algorithm as mentioned in RFC2144 3 | * Copyright (c) 2014 Supraja Meedinti 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 AVUTIL_CAST5_H 23 | #define AVUTIL_CAST5_H 24 | 25 | #include 26 | 27 | 28 | /** 29 | * @file 30 | * @brief Public header for libavutil CAST5 algorithm 31 | * @defgroup lavu_cast5 CAST5 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_cast5_size; 37 | 38 | struct AVCAST5; 39 | 40 | /** 41 | * Allocate an AVCAST5 context 42 | * To free the struct: av_free(ptr) 43 | */ 44 | struct AVCAST5 *av_cast5_alloc(void); 45 | /** 46 | * Initialize an AVCAST5 context. 47 | * 48 | * @param ctx an AVCAST5 context 49 | * @param key a key of 5,6,...16 bytes used for encryption/decryption 50 | * @param key_bits number of keybits: possible are 40,48,...,128 51 | */ 52 | int av_cast5_init(struct AVCAST5 *ctx, const uint8_t *key, int key_bits); 53 | 54 | /** 55 | * Encrypt or decrypt a buffer using a previously initialized context 56 | * 57 | * @param ctx an AVCAST5 context 58 | * @param dst destination array, can be equal to src 59 | * @param src source array, can be equal to dst 60 | * @param count number of 8 byte blocks 61 | * @param decrypt 0 for encryption, 1 for decryption 62 | */ 63 | void av_cast5_crypt(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count,int decrypt); 64 | /** 65 | * @} 66 | */ 67 | #endif /* AVUTIL_CAST5_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | #ifndef AVUTIL_FFVERSION_H 2 | #define AVUTIL_FFVERSION_H 3 | #define FFMPEG_VERSION "66c8733ded" 4 | #endif /* AVUTIL_FFVERSION_H */ 5 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/file.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 AVUTIL_FILE_H 20 | #define AVUTIL_FILE_H 21 | 22 | #include 23 | 24 | #include "avutil.h" 25 | 26 | /** 27 | * @file 28 | * Misc file utilities. 29 | */ 30 | 31 | /** 32 | * Read the file with name filename, and put its content in a newly 33 | * allocated buffer or map it with mmap() when available. 34 | * In case of success set *bufptr to the read or mmapped buffer, and 35 | * *size to the size in bytes of the buffer in *bufptr. 36 | * The returned buffer must be released with av_file_unmap(). 37 | * 38 | * @param log_offset loglevel offset used for logging 39 | * @param log_ctx context used for logging 40 | * @return a non negative number in case of success, a negative value 41 | * corresponding to an AVERROR error code in case of failure 42 | */ 43 | int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, 44 | int log_offset, void *log_ctx); 45 | 46 | /** 47 | * Unmap or free the buffer bufptr created by av_file_map(). 48 | * 49 | * @param size size in bytes of bufptr, must be the same as returned 50 | * by av_file_map() 51 | */ 52 | void av_file_unmap(uint8_t *bufptr, size_t size); 53 | 54 | /** 55 | * Wrapper to work around the lack of mkstemp() on mingw. 56 | * Also, tries to create file in /tmp first, if possible. 57 | * *prefix can be a character constant; *filename will be allocated internally. 58 | * @return file descriptor of opened file (or negative value corresponding to an 59 | * AVERROR code on error) 60 | * and opened file name in **filename. 61 | * @note On very old libcs it is necessary to set a secure umask before 62 | * calling this, av_tempfile() can't call umask itself as it is used in 63 | * libraries and could interfere with the calling application. 64 | */ 65 | int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx); 66 | 67 | #endif /* AVUTIL_FILE_H */ 68 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/lfg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Lagged Fibonacci PRNG 3 | * Copyright (c) 2008 Michael Niedermayer 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 AVUTIL_LFG_H 23 | #define AVUTIL_LFG_H 24 | 25 | typedef struct AVLFG { 26 | unsigned int state[64]; 27 | int index; 28 | } AVLFG; 29 | 30 | void av_lfg_init(AVLFG *c, unsigned int seed); 31 | 32 | /** 33 | * Get the next random unsigned 32-bit number using an ALFG. 34 | * 35 | * Please also consider a simple LCG like state= state*1664525+1013904223, 36 | * it may be good enough and faster for your specific use case. 37 | */ 38 | static inline unsigned int av_lfg_get(AVLFG *c){ 39 | c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; 40 | return c->state[c->index++ & 63]; 41 | } 42 | 43 | /** 44 | * Get the next random unsigned 32-bit number using a MLFG. 45 | * 46 | * Please also consider av_lfg_get() above, it is faster. 47 | */ 48 | static inline unsigned int av_mlfg_get(AVLFG *c){ 49 | unsigned int a= c->state[(c->index-55) & 63]; 50 | unsigned int b= c->state[(c->index-24) & 63]; 51 | return c->state[c->index++ & 63] = 2*a*b+a+b; 52 | } 53 | 54 | /** 55 | * Get the next two numbers generated by a Box-Muller Gaussian 56 | * generator using the random numbers issued by lfg. 57 | * 58 | * @param out array where the two generated numbers are placed 59 | */ 60 | void av_bmg_get(AVLFG *lfg, double out[2]); 61 | 62 | #endif /* AVUTIL_LFG_H */ 63 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/md5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 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_MD5_H 22 | #define AVUTIL_MD5_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | /** 30 | * @defgroup lavu_md5 MD5 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | extern const int av_md5_size; 36 | 37 | struct AVMD5; 38 | 39 | /** 40 | * Allocate an AVMD5 context. 41 | */ 42 | struct AVMD5 *av_md5_alloc(void); 43 | 44 | /** 45 | * Initialize MD5 hashing. 46 | * 47 | * @param ctx pointer to the function context (of size av_md5_size) 48 | */ 49 | void av_md5_init(struct AVMD5 *ctx); 50 | 51 | /** 52 | * Update hash value. 53 | * 54 | * @param ctx hash function context 55 | * @param src input data to update hash with 56 | * @param len input data length 57 | */ 58 | void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, int len); 59 | 60 | /** 61 | * Finish hashing and output digest value. 62 | * 63 | * @param ctx hash function context 64 | * @param dst buffer where output digest value is stored 65 | */ 66 | void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); 67 | 68 | /** 69 | * Hash an array of data. 70 | * 71 | * @param dst The output buffer to write the digest into 72 | * @param src The data to hash 73 | * @param len The length of the data, in bytes 74 | */ 75 | void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len); 76 | 77 | /** 78 | * @} 79 | */ 80 | 81 | #endif /* AVUTIL_MD5_H */ 82 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/motion_vector.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 AVUTIL_MOTION_VECTOR_H 20 | #define AVUTIL_MOTION_VECTOR_H 21 | 22 | #include 23 | 24 | typedef struct AVMotionVector { 25 | /** 26 | * Where the current macroblock comes from; negative value when it comes 27 | * from the past, positive value when it comes from the future. 28 | * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". 29 | */ 30 | int32_t source; 31 | /** 32 | * Width and height of the block. 33 | */ 34 | uint8_t w, h; 35 | /** 36 | * Absolute source position. Can be outside the frame area. 37 | */ 38 | int16_t src_x, src_y; 39 | /** 40 | * Absolute destination position. Can be outside the frame area. 41 | */ 42 | int16_t dst_x, dst_y; 43 | /** 44 | * Extra flag information. 45 | * Currently unused. 46 | */ 47 | uint64_t flags; 48 | } AVMotionVector; 49 | 50 | #endif /* AVUTIL_MOTION_VECTOR_H */ 51 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/pixelutils.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 AVUTIL_PIXELUTILS_H 20 | #define AVUTIL_PIXELUTILS_H 21 | 22 | #include 23 | #include 24 | #include "common.h" 25 | 26 | /** 27 | * Sum of abs(src1[x] - src2[x]) 28 | */ 29 | typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1, 30 | const uint8_t *src2, ptrdiff_t stride2); 31 | 32 | /** 33 | * Get a potentially optimized pointer to a Sum-of-absolute-differences 34 | * function (see the av_pixelutils_sad_fn prototype). 35 | * 36 | * @param w_bits 1< 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/ripemd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Michael Niedermayer 3 | * Copyright (C) 2013 James Almer 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 AVUTIL_RIPEMD_H 23 | #define AVUTIL_RIPEMD_H 24 | 25 | #include 26 | 27 | #include "attributes.h" 28 | #include "version.h" 29 | 30 | /** 31 | * @defgroup lavu_ripemd RIPEMD 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_ripemd_size; 37 | 38 | struct AVRIPEMD; 39 | 40 | /** 41 | * Allocate an AVRIPEMD context. 42 | */ 43 | struct AVRIPEMD *av_ripemd_alloc(void); 44 | 45 | /** 46 | * Initialize RIPEMD hashing. 47 | * 48 | * @param context pointer to the function context (of size av_ripemd_size) 49 | * @param bits number of bits in digest (128, 160, 256 or 320 bits) 50 | * @return zero if initialization succeeded, -1 otherwise 51 | */ 52 | int av_ripemd_init(struct AVRIPEMD* context, int bits); 53 | 54 | /** 55 | * Update hash value. 56 | * 57 | * @param context hash function context 58 | * @param data input data to update hash with 59 | * @param len input data length 60 | */ 61 | void av_ripemd_update(struct AVRIPEMD* context, const uint8_t* data, unsigned int len); 62 | 63 | /** 64 | * Finish hashing and output digest value. 65 | * 66 | * @param context hash function context 67 | * @param digest buffer where output digest value is stored 68 | */ 69 | void av_ripemd_final(struct AVRIPEMD* context, uint8_t *digest); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | #endif /* AVUTIL_RIPEMD_H */ 76 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/sha.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_SHA_H 22 | #define AVUTIL_SHA_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | #include "version.h" 28 | 29 | /** 30 | * @defgroup lavu_sha SHA 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | extern const int av_sha_size; 36 | 37 | struct AVSHA; 38 | 39 | /** 40 | * Allocate an AVSHA context. 41 | */ 42 | struct AVSHA *av_sha_alloc(void); 43 | 44 | /** 45 | * Initialize SHA-1 or SHA-2 hashing. 46 | * 47 | * @param context pointer to the function context (of size av_sha_size) 48 | * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) 49 | * @return zero if initialization succeeded, -1 otherwise 50 | */ 51 | int av_sha_init(struct AVSHA* context, int bits); 52 | 53 | /** 54 | * Update hash value. 55 | * 56 | * @param context hash function context 57 | * @param data input data to update hash with 58 | * @param len input data length 59 | */ 60 | void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len); 61 | 62 | /** 63 | * Finish hashing and output digest value. 64 | * 65 | * @param context hash function context 66 | * @param digest buffer where output digest value is stored 67 | */ 68 | void av_sha_final(struct AVSHA* context, uint8_t *digest); 69 | 70 | /** 71 | * @} 72 | */ 73 | 74 | #endif /* AVUTIL_SHA_H */ 75 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/sha512.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Michael Niedermayer 3 | * Copyright (C) 2013 James Almer 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 AVUTIL_SHA512_H 23 | #define AVUTIL_SHA512_H 24 | 25 | #include 26 | 27 | #include "attributes.h" 28 | #include "version.h" 29 | 30 | /** 31 | * @defgroup lavu_sha512 SHA512 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | extern const int av_sha512_size; 37 | 38 | struct AVSHA512; 39 | 40 | /** 41 | * Allocate an AVSHA512 context. 42 | */ 43 | struct AVSHA512 *av_sha512_alloc(void); 44 | 45 | /** 46 | * Initialize SHA-2 512 hashing. 47 | * 48 | * @param context pointer to the function context (of size av_sha512_size) 49 | * @param bits number of bits in digest (224, 256, 384 or 512 bits) 50 | * @return zero if initialization succeeded, -1 otherwise 51 | */ 52 | int av_sha512_init(struct AVSHA512* context, int bits); 53 | 54 | /** 55 | * Update hash value. 56 | * 57 | * @param context hash function context 58 | * @param data input data to update hash with 59 | * @param len input data length 60 | */ 61 | void av_sha512_update(struct AVSHA512* context, const uint8_t* data, unsigned int len); 62 | 63 | /** 64 | * Finish hashing and output digest value. 65 | * 66 | * @param context hash function context 67 | * @param digest buffer where output digest value is stored 68 | */ 69 | void av_sha512_final(struct AVSHA512* context, uint8_t *digest); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | #endif /* AVUTIL_SHA512_H */ 76 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 | * Get the current time in microseconds since some unspecified starting point. 33 | * On platforms that support it, the time comes from a monotonic clock 34 | * This property makes this time source ideal for measuring relative time. 35 | * The returned values may not be monotonic on platforms where a monotonic 36 | * clock is not available. 37 | */ 38 | int64_t av_gettime_relative(void); 39 | 40 | /** 41 | * Indicates with a boolean result if the av_gettime_relative() time source 42 | * is monotonic. 43 | */ 44 | int av_gettime_relative_is_monotonic(void); 45 | 46 | /** 47 | * Sleep for a period of time. Although the duration is expressed in 48 | * microseconds, the actual delay may be rounded to the precision of the 49 | * system timer. 50 | * 51 | * @param usec Number of microseconds to sleep. 52 | * @return zero on success or (negative) error code. 53 | */ 54 | int av_usleep(unsigned usec); 55 | 56 | #endif /* AVUTIL_TIME_H */ 57 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/timestamp.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 | * timestamp utils, mostly useful for debugging/logging purposes 22 | */ 23 | 24 | #ifndef AVUTIL_TIMESTAMP_H 25 | #define AVUTIL_TIMESTAMP_H 26 | 27 | #include "common.h" 28 | 29 | #if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64) 30 | #error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS 31 | #endif 32 | 33 | #define AV_TS_MAX_STRING_SIZE 32 34 | 35 | /** 36 | * Fill the provided buffer with a string containing a timestamp 37 | * representation. 38 | * 39 | * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE 40 | * @param ts the timestamp to represent 41 | * @return the buffer in input 42 | */ 43 | static inline char *av_ts_make_string(char *buf, int64_t ts) 44 | { 45 | if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); 46 | else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64, ts); 47 | return buf; 48 | } 49 | 50 | /** 51 | * Convenience macro, the return value should be used only directly in 52 | * function arguments but never stand-alone. 53 | */ 54 | #define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts) 55 | 56 | /** 57 | * Fill the provided buffer with a string containing a timestamp time 58 | * representation. 59 | * 60 | * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE 61 | * @param ts the timestamp to represent 62 | * @param tb the timebase of the timestamp 63 | * @return the buffer in input 64 | */ 65 | static inline char *av_ts_make_time_string(char *buf, int64_t ts, AVRational *tb) 66 | { 67 | if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); 68 | else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts); 69 | return buf; 70 | } 71 | 72 | /** 73 | * Convenience macro, the return value should be used only directly in 74 | * function arguments but never stand-alone. 75 | */ 76 | #define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb) 77 | 78 | #endif /* AVUTIL_TIMESTAMP_H */ 79 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libavutil/xtea.h: -------------------------------------------------------------------------------- 1 | /* 2 | * A 32-bit implementation of the XTEA algorithm 3 | * Copyright (c) 2012 Samuel Pitoiset 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 AVUTIL_XTEA_H 23 | #define AVUTIL_XTEA_H 24 | 25 | #include 26 | 27 | /** 28 | * @file 29 | * @brief Public header for libavutil XTEA algorithm 30 | * @defgroup lavu_xtea XTEA 31 | * @ingroup lavu_crypto 32 | * @{ 33 | */ 34 | 35 | typedef struct AVXTEA { 36 | uint32_t key[16]; 37 | } AVXTEA; 38 | 39 | /** 40 | * Initialize an AVXTEA context. 41 | * 42 | * @param ctx an AVXTEA context 43 | * @param key a key of 16 bytes used for encryption/decryption 44 | */ 45 | void av_xtea_init(struct AVXTEA *ctx, const uint8_t key[16]); 46 | 47 | /** 48 | * Encrypt or decrypt a buffer using a previously initialized context. 49 | * 50 | * @param ctx an AVXTEA context 51 | * @param dst destination array, can be equal to src 52 | * @param src source array, can be equal to dst 53 | * @param count number of 8 byte blocks 54 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used 55 | * @param decrypt 0 for encryption, 1 for decryption 56 | */ 57 | void av_xtea_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, 58 | int count, uint8_t *iv, int decrypt); 59 | 60 | /** 61 | * @} 62 | */ 63 | 64 | #endif /* AVUTIL_XTEA_H */ 65 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/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 1 32 | #define LIBSWRESAMPLE_VERSION_MINOR 1 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 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/include/libswscale/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 SWSCALE_VERSION_H 20 | #define SWSCALE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * swscale version macros 25 | */ 26 | 27 | #include "libavutil/version.h" 28 | 29 | #define LIBSWSCALE_VERSION_MAJOR 3 30 | #define LIBSWSCALE_VERSION_MINOR 1 31 | #define LIBSWSCALE_VERSION_MICRO 101 32 | 33 | #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ 34 | LIBSWSCALE_VERSION_MINOR, \ 35 | LIBSWSCALE_VERSION_MICRO) 36 | #define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ 37 | LIBSWSCALE_VERSION_MINOR, \ 38 | LIBSWSCALE_VERSION_MICRO) 39 | #define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT 40 | 41 | #define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) 42 | 43 | /** 44 | * FF_API_* defines may be placed below to indicate public API that will be 45 | * dropped at a future version bump. The defines themselves are not part of 46 | * the public API and may change, break or disappear at any time. 47 | */ 48 | 49 | #ifndef FF_API_SWS_CPU_CAPS 50 | #define FF_API_SWS_CPU_CAPS (LIBSWSCALE_VERSION_MAJOR < 4) 51 | #endif 52 | #ifndef FF_API_ARCH_BFIN 53 | #define FF_API_ARCH_BFIN (LIBSWSCALE_VERSION_MAJOR < 4) 54 | #endif 55 | 56 | #endif /* SWSCALE_VERSION_H */ 57 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avcodec.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avcodec.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avdevice.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avdevice.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avfilter.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avfilter.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avformat.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avformat.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avresample.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avresample.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avutil.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/avutil.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/swresample.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/swresample.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/ffmpeg/lib/swscale.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/ffmpeg/lib/swscale.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Appenders/AndroidAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | template 7 | class AndroidAppender : public IAppender 8 | { 9 | public: 10 | AndroidAppender(const char* tag) : m_tag(tag) 11 | { 12 | } 13 | 14 | virtual void write(const Record& record) 15 | { 16 | std::string str = Formatter::format(record); 17 | 18 | __android_log_print(toPriority(record.getSeverity()), m_tag, "%s", str.c_str()); 19 | } 20 | 21 | private: 22 | static android_LogPriority toPriority(Severity severity) 23 | { 24 | switch (severity) 25 | { 26 | case fatal: 27 | return ANDROID_LOG_FATAL; 28 | case error: 29 | return ANDROID_LOG_ERROR; 30 | case warning: 31 | return ANDROID_LOG_WARN; 32 | case info: 33 | return ANDROID_LOG_INFO; 34 | case debug: 35 | return ANDROID_LOG_DEBUG; 36 | case verbose: 37 | return ANDROID_LOG_VERBOSE; 38 | default: 39 | return ANDROID_LOG_UNKNOWN; 40 | } 41 | } 42 | 43 | private: 44 | const char* const m_tag; 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Appenders/ConsoleAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | template 8 | class ConsoleAppender : public IAppender 9 | { 10 | public: 11 | ConsoleAppender() 12 | { 13 | #ifdef _WIN32 14 | ::setlocale(LC_ALL, ""); 15 | #endif 16 | } 17 | 18 | virtual void write(const Record& record) 19 | { 20 | util::nstring str = Formatter::format(record); 21 | util::MutexLock lock(m_mutex); 22 | 23 | writestr(str); 24 | } 25 | 26 | protected: 27 | void writestr(const util::nstring& str) 28 | { 29 | #ifdef _WIN32 30 | std::wcout << str << std::flush; 31 | #else 32 | std::cout << str << std::flush; 33 | #endif 34 | } 35 | 36 | protected: 37 | util::Mutex m_mutex; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Appenders/DebugOutputAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | template 7 | class DebugOutputAppender : public IAppender 8 | { 9 | public: 10 | virtual void write(const Record& record) 11 | { 12 | OutputDebugStringW(Formatter::format(record).c_str()); 13 | } 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Appenders/IAppender.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace plog 4 | { 5 | class IAppender 6 | { 7 | public: 8 | virtual ~IAppender() 9 | { 10 | } 11 | 12 | virtual void write(const Record& record) = 0; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Converters/UTF8Converter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace plog 5 | { 6 | class UTF8Converter 7 | { 8 | public: 9 | static std::string header(const util::nstring& str) 10 | { 11 | const char kBOM[] = "\xEF\xBB\xBF"; 12 | 13 | return std::string(kBOM) + convert(str); 14 | } 15 | 16 | #ifdef WIN32 17 | static std::string convert(const util::nstring& str) 18 | { 19 | return util::toUTF8(str); 20 | } 21 | #else 22 | static const std::string& convert(const util::nstring& str) 23 | { 24 | return str; 25 | } 26 | #endif 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Formatters/CsvFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace plog 7 | { 8 | class CsvFormatter 9 | { 10 | public: 11 | static util::nstring header() 12 | { 13 | return PLOG_NSTR("Date;Time;Severity;TID;This;Function;Message\n"); 14 | } 15 | 16 | static util::nstring format(const Record& record) 17 | { 18 | tm t; 19 | util::localtime_s(&t, &record.getTime().time); 20 | 21 | util::nstringstream ss; 22 | ss << t.tm_year + 1900 << "/" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mon + 1 << "/" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mday << ";"; 23 | ss << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_hour << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_min << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_sec << "." << std::setfill(PLOG_NSTR('0')) << std::setw(3) << record.getTime().millitm << ";"; 24 | ss << severityToString(record.getSeverity()) << ";"; 25 | ss << record.getTid() << ";"; 26 | ss << record.getObject() << ";"; 27 | ss << record.getFunc() << "@" << record.getLine() << ";"; 28 | 29 | util::nstring message = record.getMessage(); 30 | 31 | if (message.size() > kMaxMessageSize) 32 | { 33 | message.resize(kMaxMessageSize); 34 | message.append(PLOG_NSTR("...")); 35 | } 36 | 37 | util::nstringstream split(message); 38 | util::nstring token; 39 | 40 | while (!split.eof()) 41 | { 42 | std::getline(split, token, PLOG_NSTR('"')); 43 | ss << "\"" << token << "\""; 44 | } 45 | 46 | ss << "\n"; 47 | 48 | return ss.str(); 49 | } 50 | 51 | static const size_t kMaxMessageSize = 32000; 52 | }; 53 | } 54 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Formatters/FuncMessageFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | class FuncMessageFormatter 8 | { 9 | public: 10 | static util::nstring header() 11 | { 12 | return util::nstring(); 13 | } 14 | 15 | static util::nstring format(const Record& record) 16 | { 17 | util::nstringstream ss; 18 | ss << record.getFunc() << "@" << record.getLine() << ": "; 19 | ss << record.getMessage() << "\n"; 20 | 21 | return ss.str(); 22 | } 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Formatters/TxtFormatter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace plog 6 | { 7 | class TxtFormatter 8 | { 9 | public: 10 | static util::nstring header() 11 | { 12 | return util::nstring(); 13 | } 14 | 15 | static util::nstring format(const Record& record) 16 | { 17 | tm t; 18 | util::localtime_s(&t, &record.getTime().time); 19 | 20 | util::nstringstream ss; 21 | ss << t.tm_year + 1900 << "-" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mon + 1 << "-" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mday << " "; 22 | ss << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_hour << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_min << ":" << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_sec << "." << std::setfill(PLOG_NSTR('0')) << std::setw(3) << record.getTime().millitm << " "; 23 | ss << std::setfill(PLOG_NSTR(' ')) << std::setw(5) << std::left << severityToString(record.getSeverity()) << " "; 24 | ss << "[" << record.getTid() << "] "; 25 | ss << "[" << record.getFunc() << "@" << record.getLine() << "] "; 26 | ss << record.getMessage() << "\n"; 27 | 28 | return ss.str(); 29 | } 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Logger.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #ifndef PLOG_DEFAULT_INSTANCE 7 | # define PLOG_DEFAULT_INSTANCE 0 8 | #endif 9 | 10 | extern void RemoteLog(const std::string& log); 11 | 12 | namespace plog 13 | { 14 | template 15 | class Logger : public util::Singleton >, public IAppender 16 | { 17 | public: 18 | Logger(Severity maxSeverity = none) : m_maxSeverity(maxSeverity) 19 | { 20 | } 21 | 22 | Logger& addAppender(IAppender* appender) 23 | { 24 | assert(appender != this); 25 | m_appenders.push_back(appender); 26 | return *this; 27 | } 28 | 29 | Severity getMaxSeverity() const 30 | { 31 | return m_maxSeverity; 32 | } 33 | 34 | void setMaxSeverity(Severity severity) 35 | { 36 | m_maxSeverity = severity; 37 | } 38 | 39 | bool checkSeverity(Severity severity) const 40 | { 41 | return severity <= m_maxSeverity; 42 | } 43 | 44 | virtual void write(const Record& record) 45 | { 46 | if (checkSeverity(record.getSeverity())) 47 | { 48 | *this += record; 49 | } 50 | } 51 | 52 | void operator+=(const Record& record) 53 | { 54 | for (std::vector::iterator it = m_appenders.begin(); it != m_appenders.end(); ++it) 55 | { 56 | (*it)->write(record); 57 | } 58 | 59 | util::nstring str = TxtFormatter::format(record); 60 | #ifndef _WIN32 61 | RemoteLog(str); 62 | #endif 63 | } 64 | 65 | private: 66 | Severity m_maxSeverity; 67 | std::vector m_appenders; 68 | }; 69 | 70 | template 71 | inline Logger* get() 72 | { 73 | return Logger::getInstance(); 74 | } 75 | 76 | inline Logger* get() 77 | { 78 | return Logger::getInstance(); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/plog/include/plog/Severity.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace plog 4 | { 5 | enum Severity 6 | { 7 | none = 0, 8 | fatal = 1, 9 | error = 2, 10 | warning = 3, 11 | info = 4, 12 | debug = 5, 13 | verbose = 6 14 | }; 15 | 16 | inline const char* severityToString(Severity severity) 17 | { 18 | switch (severity) 19 | { 20 | case fatal: 21 | return "FATAL"; 22 | case error: 23 | return "ERROR"; 24 | case warning: 25 | return "WARN"; 26 | case info: 27 | return "INFO"; 28 | case debug: 29 | return "DEBUG"; 30 | case verbose: 31 | return "VERB"; 32 | default: 33 | return "NONE"; 34 | } 35 | } 36 | 37 | inline Severity severityFromString(const char* str) 38 | { 39 | for (Severity severity = fatal; severity <= verbose; severity = static_cast(severity + 1)) 40 | { 41 | if (severityToString(severity)[0] == str[0]) 42 | { 43 | return severity; 44 | } 45 | } 46 | 47 | return none; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.dll -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIVideoParser/ThirdParties/x86/pthread-win32/bin/Win32_MSVC2015.Release/pthread_dll.lib -------------------------------------------------------------------------------- /DJIVideoParser/ThirdParties/x86/pthread-win32/include/context.h: -------------------------------------------------------------------------------- 1 | /* 2 | * context.h 3 | * 4 | * Description: 5 | * POSIX thread macros related to thread cancellation. 6 | * 7 | * -------------------------------------------------------------------------- 8 | * 9 | * Pthreads-win32 - POSIX Threads Library for Win32 10 | * Copyright(C) 1998 John E. Bossom 11 | * Copyright(C) 1999,2012 Pthreads-win32 contributors 12 | * 13 | * Homepage1: http://sourceware.org/pthreads-win32/ 14 | * Homepage2: http://sourceforge.net/projects/pthreads4w/ 15 | * 16 | * The current list of contributors is contained 17 | * in the file CONTRIBUTORS included with the source 18 | * code distribution. The list can also be seen at the 19 | * following World Wide Web location: 20 | * http://sources.redhat.com/pthreads-win32/contributors.html 21 | * 22 | * This library is free software; you can redistribute it and/or 23 | * modify it under the terms of the GNU Lesser General Public 24 | * License as published by the Free Software Foundation; either 25 | * version 2 of the License, or (at your option) any later version. 26 | * 27 | * This library is distributed in the hope that it will be useful, 28 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 29 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 30 | * Lesser General Public License for more details. 31 | * 32 | * You should have received a copy of the GNU Lesser General Public 33 | * License along with this library in the file COPYING.LIB; 34 | * if not, write to the Free Software Foundation, Inc., 35 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 36 | */ 37 | 38 | #ifndef PTW32_CONTEXT_H 39 | #define PTW32_CONTEXT_H 40 | 41 | #undef PTW32_PROGCTR 42 | 43 | #if defined(_M_IX86) || (defined(_X86_) && !defined(__amd64__)) 44 | #define PTW32_PROGCTR(Context) ((Context).Eip) 45 | #endif 46 | 47 | #if defined (_M_IA64) || defined(_IA64) 48 | #define PTW32_PROGCTR(Context) ((Context).StIIP) 49 | #endif 50 | 51 | #if defined(_MIPS_) || defined(MIPS) 52 | #define PTW32_PROGCTR(Context) ((Context).Fir) 53 | #endif 54 | 55 | #if defined(_ALPHA_) 56 | #define PTW32_PROGCTR(Context) ((Context).Fir) 57 | #endif 58 | 59 | #if defined(_PPC_) 60 | #define PTW32_PROGCTR(Context) ((Context).Iar) 61 | #endif 62 | 63 | #if defined(_AMD64_) || defined(__amd64__) 64 | #define PTW32_PROGCTR(Context) ((Context).Rip) 65 | #endif 66 | 67 | #if defined(_ARM_) || defined(ARM) 68 | #define PTW32_PROGCTR(Context) ((Context).Pc) 69 | #endif 70 | 71 | #if !defined(PTW32_PROGCTR) 72 | #error Module contains CPU-specific code; modify and recompile. 73 | #endif 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /DJIVideoParser/Utils.h: -------------------------------------------------------------------------------- 1 | #ifndef __UTILS_H__ 2 | #define __UTILS_H__ 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #ifdef WIN32 11 | #include 12 | #include 13 | #else 14 | #include 15 | #include 16 | #endif 17 | 18 | int32_t getTickCount(); 19 | 20 | long getTickCount2(); 21 | 22 | long djiSleep(long long ns); 23 | 24 | int32_t findSPSPPSHeader(unsigned char* bufPtr, int bufLen, unsigned char* nalBuf, int* nalLen); 25 | 26 | //int32_t kmpMatch(uint8_t* str, int ls, uint8_t* pat, int lp); 27 | 28 | int h264_decode_seq_parameter_set(unsigned char * buf, unsigned int nLen, int *Width, int *Height, int *framerate, int *log2_max_frame_num); 29 | 30 | int find_SPS_PPS(uint8_t* pInBuff, int iSize, uint8_t* pSPS, int* iSpsLen, uint8_t* pPpsBuf, int* iPpsLen); 31 | 32 | void parseSpsPps(uint8_t* _buffer, int checkEnd, int& sps_start, int& sps_size, int&pps_start, int&pps_size); 33 | 34 | int32_t convertOSD(uint8_t* osdBuf, int osdLen, uint8_t* convBuf, int* convLen); 35 | 36 | int findNALU(void* buffer, int i, int end, int mask, int compare); 37 | 38 | //long djiSleep(long delay); 39 | 40 | long getComprehensivePts(long ptsMs, long frameIndex, long frameNum); 41 | 42 | #endif 43 | 44 | -------------------------------------------------------------------------------- /DJIVideoParser/VideoWrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "VideoWrapper.h" 7 | #include "Utils.h" 8 | #include "videoparser.h" 9 | 10 | 11 | #undef LOG_TAG 12 | #define LOG_TAG "VideoWrapper.cpp" 13 | namespace dji 14 | { 15 | namespace videoparser 16 | { 17 | static int s_rate = 30; 18 | static int s_sleep = 1 * 1000 * 1000 / 33; 19 | static long s_cur_time = 0; 20 | 21 | VideoWrapper::VideoWrapper(void) 22 | { 23 | } 24 | 25 | VideoWrapper::~VideoWrapper(void) 26 | { 27 | } 28 | 29 | bool VideoWrapper::Initialize(VideoParser* owner, std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> decoding_assist_info_parser) 30 | { 31 | if (owner == nullptr) 32 | return false; 33 | m_owner = owner; 34 | 35 | m_current_pts = 0; 36 | 37 | m_video_parser.Initialize(this, decoding_assist_info_parser); 38 | return true; 39 | } 40 | 41 | void VideoWrapper::Uninitialize() 42 | { 43 | m_video_parser.Uninitialize(); 44 | 45 | m_is_pause = false; 46 | m_owner = nullptr; 47 | } 48 | 49 | void VideoWrapper::SetVideoFrameCallBack(std::function func) 50 | { 51 | if (nullptr != func) 52 | { 53 | m_dataObserver = func; 54 | } 55 | } 56 | 57 | int VideoWrapper::PauseParserThread(bool isPause) { 58 | m_is_pause = isPause; 59 | return 0; 60 | } 61 | 62 | void VideoWrapper::ClearFrame() { 63 | m_current_pts = 0; 64 | m_video_queue.clear(); 65 | } 66 | 67 | int VideoWrapper::PutToQueue(const uint8_t* buffer, int size, uint64_t pts) 68 | { 69 | m_video_parser.videoFrameParse(buffer, size, pts == 0 ? FrameType_VideoLive : FrameType_Video, pts); 70 | return 0; 71 | } 72 | 73 | int VideoWrapper::PutVideoToQueue(const uint8_t* buffer, int size, uint64_t pts) 74 | { 75 | m_video_parser.videoFrameParse(buffer, size, FrameType_Video, pts); 76 | return 0; 77 | } 78 | 79 | int VideoWrapper::FramePacket(uint8_t* buff, int size, FrameType type, int width, int height, const DJIDecodingAssistInfo & assistant_info) 80 | { 81 | if (nullptr != m_dataObserver) 82 | { 83 | m_dataObserver(buff, width, height, assistant_info); 84 | } 85 | return 0; 86 | } 87 | } 88 | } 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /DJIVideoParser/VideoWrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef __DJIVIDEO_VIDEOWRAPPER_H_ 2 | #define __DJIVIDEO_VIDEOWRAPPER_H_ 3 | 4 | #include 5 | #include 6 | #include "h264_Decoder.h" 7 | #include "Queue.h" 8 | 9 | namespace dji { 10 | namespace videoparser { 11 | class VideoParser; 12 | 13 | class VideoWrapper final 14 | { 15 | public: 16 | VideoWrapper(void); 17 | 18 | ~VideoWrapper(void); 19 | 20 | bool Initialize(VideoParser *owner, std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> decoding_assist_info_parser); 21 | 22 | void Uninitialize(); 23 | 24 | int PauseParserThread(bool is_pause); 25 | 26 | 27 | int FramePacket(uint8_t *buff, int size, FrameType type, int width, int height, const DJIDecodingAssistInfo & assistant_info); 28 | 29 | void SetVideoFrameCallBack(std::function func); 30 | 31 | void ClearFrame(); 32 | 33 | int PutToQueue(const uint8_t *pBuff, int size, uint64_t pts); 34 | 35 | int PutVideoToQueue(const uint8_t *pBuff, int size, uint64_t pts); 36 | 37 | private: 38 | VideoParser * m_owner = nullptr; 39 | uint64_t m_current_pts = 0; 40 | 41 | h264_Decoder m_video_parser; 42 | CFrameQueue m_video_queue; 43 | 44 | bool m_is_pause = false; 45 | std::function m_dataObserver; 46 | 47 | }; 48 | } 49 | } 50 | #endif //__DJIVIDEO_VIDEOWRAPPER_H_ 51 | -------------------------------------------------------------------------------- /DJIVideoParser/h264_Decoder.h: -------------------------------------------------------------------------------- 1 | #ifndef _H264_DECODER_ 2 | #define _H264_DECODER_ 3 | 4 | #include "Queue.h" 5 | #include "threadsafequeue.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include "Windows.UI.Core.h" 13 | 14 | extern "C" { 15 | 16 | #include "libavformat/avformat.h" 17 | #include "libswscale/swscale.h" 18 | #include "libavcodec/avcodec.h" 19 | } 20 | 21 | 22 | namespace dji { 23 | namespace videoparser { 24 | class VideoWrapper; 25 | } 26 | } 27 | 28 | class h264_Decoder { 29 | public: 30 | h264_Decoder(); 31 | ~h264_Decoder(); 32 | 33 | AVFrame* m_av_frame = nullptr; 34 | AVFrame* m_dst_frame = nullptr; 35 | 36 | uint8_t* m_outBuffer = nullptr; 37 | AVCodecContext* m_codec_context = nullptr; 38 | AVCodec* m_av_codec = nullptr; 39 | AVCodecParserContext* m_codec_paser = nullptr; 40 | 41 | SwsContext* m_sws_ctx = nullptr; 42 | 43 | int videoFrameParse(const uint8_t* buff, int video_size, FrameType type, uint64_t pts); 44 | 45 | void Stop(); 46 | 47 | void Initialize(dji::videoparser::VideoWrapper* video_wrapper = nullptr, std::function decoding_assist_info_parser = nullptr); 48 | void Uninitialize(); 49 | 50 | protected: 51 | bool InitFFMPEG(); 52 | 53 | bool InitFrameBuffer(); 54 | 55 | void DecoderThread(); 56 | 57 | int m_preWidth = 0; 58 | int m_preHeight = 0; 59 | 60 | std::thread *m_thread_decoder = nullptr; 61 | 62 | bool m_bInitBuffer = false; 63 | bool m_bDecoderRun = false; 64 | 65 | dji::videoparser::VideoWrapper * m_videoWrapperPtr = nullptr; 66 | 67 | dji::videoparser::threadsafe_queue> m_vectorSafeQueue; 68 | 69 | std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> m_assistInfoParser; 70 | 71 | }; 72 | 73 | #endif //_H264DECODER_ 74 | -------------------------------------------------------------------------------- /DJIVideoParser/modulemediator.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // modulemediator.cpp 3 | // djisdk 4 | // 5 | // Created by ccbben on 2017/9/25. 6 | // 7 | // 8 | 9 | #include "pch.h" 10 | #include 11 | #include "modulemediator.h" 12 | 13 | namespace dji 14 | { 15 | namespace videoparser 16 | { 17 | ModuleMediator* g_pModuleMediator = new ModuleMediator(); 18 | 19 | ModuleMediator::ModuleMediator() 20 | { 21 | 22 | } 23 | 24 | ModuleMediator::~ModuleMediator() 25 | { 26 | 27 | } 28 | 29 | bool ModuleMediator::Initialize(const std::string & source_path, std::function decoding_assist_info_parser) 30 | { 31 | m_video_parser_mgr = std::make_shared(); 32 | if (!m_video_parser_mgr->Initialize(source_path, decoding_assist_info_parser)) 33 | { 34 | return false; 35 | } 36 | return true; 37 | } 38 | 39 | void ModuleMediator::Uninitialize() 40 | { 41 | if (m_video_parser_mgr) 42 | { 43 | m_video_parser_mgr->Uninitialize(); 44 | m_video_parser_mgr = nullptr; 45 | } 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /DJIVideoParser/modulemediator.h: -------------------------------------------------------------------------------- 1 | // 2 | // modulemediator.h 3 | // djisdk 4 | // 5 | // Created by ccbben on 2017/9/25. 6 | // 7 | // 8 | 9 | #ifndef modulemediator_h 10 | #define modulemediator_h 11 | 12 | #include 13 | #include "videoparsermgr.h" 14 | #include "Windows.UI.Core.h" 15 | 16 | namespace dji 17 | { 18 | namespace videoparser 19 | { 20 | class ModuleMediator final 21 | { 22 | public: 23 | ModuleMediator(); 24 | ~ModuleMediator(); 25 | 26 | bool Initialize(const std::string & source_path, std::function < DJIDecodingAssistInfo (uint8_t* data, int length) > decoding_assist_info_parser); 27 | void Uninitialize(); 28 | 29 | inline std::weak_ptr GetVideoParserMgr() { return m_video_parser_mgr; } 30 | private: 31 | std::shared_ptr m_video_parser_mgr; 32 | }; 33 | 34 | extern ModuleMediator* g_pModuleMediator; 35 | } 36 | } 37 | 38 | #endif /* modulemediator_h */ 39 | -------------------------------------------------------------------------------- /DJIVideoParser/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /DJIVideoParser/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /DJIVideoParser/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "StructDefinations.h" -------------------------------------------------------------------------------- /DJIVideoParser/videoparser.h: -------------------------------------------------------------------------------- 1 | #ifndef __videoparsar__ 2 | #define __videoparsar__ 3 | 4 | #ifdef _ANDROID_ 5 | #include 6 | #include "videoparser/previewer.h" 7 | #include "videoparser/djicodec.h" 8 | #else 9 | #include "VideoWrapper.h" 10 | 11 | #endif 12 | 13 | #include 14 | #include 15 | 16 | 17 | namespace dji 18 | { 19 | namespace videoparser 20 | { 21 | class VideoParser : public std::enable_shared_from_this 22 | { 23 | public: 24 | VideoParser(); 25 | ~VideoParser(); 26 | 27 | bool Initialize(int product_type, std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> decoding_assist_info_parser); 28 | void Uninitialize(); 29 | 30 | void PauseParserThread(bool is_pause); 31 | void ParserData(const unsigned char* data, unsigned int len); 32 | 33 | inline void SetDecoderType(int type) { m_decoder_type = type; } 34 | inline int GetDecoderType() { return m_decoder_type; } 35 | 36 | inline void SetFrameRate(int frame_rate) { if (frame_rate > 0) m_frame_rate = frame_rate; } 37 | inline int GetFrameRate() { return m_frame_rate; } 38 | 39 | inline void SetIsFixRate(bool is_fix_rate) { m_is_fix_rate = is_fix_rate; } 40 | inline bool GetIsFixRate() { return m_is_fix_rate; } 41 | 42 | inline void SetIsAuthValue(bool is_auth_value) { m_is_auth_value = is_auth_value; } 43 | inline bool getIsAuthValue() { return m_is_auth_value; } 44 | #ifdef _ANDROID_ 45 | inline DjiCodec* GetCodec() { return m_dji_codec; } 46 | #else 47 | inline dji::videoparser::VideoWrapper* GetVideoWrapper() { return m_videoWrapper; } 48 | #endif 49 | 50 | 51 | 52 | private: 53 | bool m_is_initialized = false; 54 | 55 | //Hardware(0), Software(1), None(2) 56 | int m_decoder_type = 2; 57 | 58 | int m_frame_rate = 29; 59 | 60 | bool m_is_fix_rate = true; 61 | 62 | bool m_is_auth_value = true; 63 | 64 | #ifdef _ANDROID_ 65 | DjiCodec* m_dji_codec = nullptr; 66 | Previewer* m_previewer = nullptr; 67 | #else 68 | dji::videoparser::VideoWrapper* m_videoWrapper = nullptr; 69 | #endif 70 | }; 71 | 72 | } 73 | } 74 | 75 | #endif 76 | 77 | //#endif 78 | -------------------------------------------------------------------------------- /DJIVideoParser/videoparsermgr.h: -------------------------------------------------------------------------------- 1 | #ifndef __videoparsarmgr__ 2 | #define __videoparsarmgr__ 3 | 4 | #ifdef _ANDROID_ 5 | #include 6 | #endif 7 | 8 | #include 9 | #include 10 | #include 11 | #include "videoparser.h" 12 | #include 13 | #include 14 | #include "RenderSurface/RenderSurface.h" 15 | 16 | namespace dji 17 | { 18 | namespace videoparser 19 | { 20 | 21 | typedef std::unordered_map> IndexParserMap; 22 | typedef std::unordered_map ParserMap; 23 | 24 | class VideoParserMgr final : public std::enable_shared_from_this 25 | { 26 | public: 27 | VideoParserMgr(); 28 | ~VideoParserMgr(); 29 | 30 | bool Initialize(const std::string & source_path, std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> decoding_assist_info_parser); 31 | void Uninitialize(); 32 | 33 | bool AddDevice(int product_id); 34 | void RemoveDevice(int product_id); 35 | 36 | bool SetWindow(int product_id, int component_index, std::function func, Windows::UI::Xaml::Controls::SwapChainPanel^ swap_chain_panel); 37 | 38 | void SetSensor(DeviceCameraSensor sensor); 39 | 40 | bool StartRecord(int product_id, int component_index) { return true; } 41 | bool StopRecord(int product_id, int component_index) { return true; } 42 | 43 | void ParserData(int product_id, int component_index, const unsigned char* data, unsigned int len); 44 | protected: 45 | void FreeMap(); 46 | private: 47 | std::string m_source_path; 48 | ParserMap m_map_parser; 49 | std::recursive_mutex m_mutex_map_parser; 50 | Windows::UI::Xaml::Controls::SwapChainPanel^ m_swap_chain_panel = nullptr; 51 | 52 | std::unique_ptr m_render_surface = std::make_unique(); 53 | std::function< DJIDecodingAssistInfo (uint8_t* data, int length)> m_decoding_assist_info_parser; 54 | }; 55 | 56 | } 57 | } 58 | //#endif 59 | #endif 60 | -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/App.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/StoreLogo.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/DJIVideoParser/ThirdParties/pthread-win32/lib/Win32_MSVC2015.Release/pthread_dll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/DJIVideoParser/ThirdParties/pthread-win32/lib/Win32_MSVC2015.Release/pthread_dll.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/DJIVideoParser/ThirdParties/pthread-win32/lib/Win32_MSVC2015.Release/pthread_dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/DJIVideoParser/ThirdParties/pthread-win32/lib/Win32_MSVC2015.Release/pthread_dll.lib -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Current Mode: 29 | Unknown 30 | Current Record Time: 31 | 0 32 | 33 | 34 | 35 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | DJIWSDKDemo 7 | developer 8 | Assets\StoreLogo.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("DJIWSDKDemo")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("DJIWSDKDemo")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/avcodec-56.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/avcodec-56.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/avformat-56.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/avformat-56.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/avutil-54.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/avutil-54.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/libcrypto-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/libcrypto-1_1.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/pthread_dll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/pthread_dll.dll -------------------------------------------------------------------------------- /DJIWSDKFPVDemo/swscale-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWSDKFPVDemo/swscale-3.dll -------------------------------------------------------------------------------- /DJIWindowsSDK/DJIWindowsSDK.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWindowsSDK/DJIWindowsSDK.dll -------------------------------------------------------------------------------- /DJIWindowsSDK/DJIWindowsWrapper.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWindowsSDK/DJIWindowsWrapper.dll -------------------------------------------------------------------------------- /DJIWindowsSDK/DJIWindowsWrapper.winmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DJI-Windows-SDK-Tutorials/Windows-FPVDemo/6fc1ab33583d164779c3e8b48e68a4021704fed8/DJIWindowsSDK/DJIWindowsWrapper.winmd -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | Copyright (c) 2018 DJI 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Windows-FPVDemo 2 | 3 | ## Introduction 4 | 5 | This FPVDemo is design for you to gain a basic understanding of the DJI Windows SDK. It will implement the FPV view and two basic camera functionalities: **Take Photo** and **Record Video**. 6 | 7 | A demo to introduce how to implement the FPV view, take photo and record video using DJI Windows SDK. 8 | 9 | ## Requirements 10 | 11 | - DJI Windows SDK Public Beta 0.3.1 12 | - A device with Windows 10 (Version 1803 or higher) 13 | - Visual Studio 2017 14 | - Windows 10 SDK (Version 1803 or higher) 15 | 16 | ## Tutorial 17 | 18 | For this demo's tutorial: **Creating a Camera Application**, please refer to . 19 | 20 | ## Feedback 21 | 22 | We’d love to hear your feedback for this demo and tutorial. 23 | 24 | Please use **Stack Overflow** [dji-sdk](https://stackoverflow.com/questions/tagged/dji-sdk) or **email** [dev@dji.com](dev@dji.com) when you meet any problems of using this demo. At a minimum please let us know: 25 | 26 | * Which DJI Product you are using? 27 | * A short description of your problem includes debug logs or screenshots. 28 | * Any bugs or typos you come across. 29 | 30 | ## License 31 | 32 | Windows-FPVDemo is available under the MIT license. Please see the LICENSE file for more info. 33 | 34 | ## Join Us 35 | 36 | DJI is looking for all kinds of Software Engineers to continue building the Future of Possible. Available positions in Shenzhen, China and around the world. If you are interested, please send your resume to . For more details, and list of all our global offices, please check . 37 | 38 | DJI 招软件工程师啦,based在深圳,如果你想和我们一起把DJI产品做得更好,请发送简历到 . 详情请浏览 . --------------------------------------------------------------------------------