// StorageParserLib.h #ifndef STORAGE_PARSER_LIB_H #define STORAGE_PARSER_LIB_H #pragma pack( push, STORAGE_PARSER_LIB_H ) #pragma pack(8) #if defined(PASDLL_EXPORTS) # define PAS_API __declspec(dllexport) __stdcall #else # define PAS_API __declspec(dllimport) __stdcall #endif // data type // { #define PAS_DT_VIDEO (1<<0) #define PAS_DT_AUDIO (1<<1) // } // frame type // { #define PAS_FT_MP4_I 1 #define PAS_FT_MP4_P 2 #define PAS_FT_MP4_B 3 #define PAS_FT_MP2_I 4 #define PAS_FT_MP2_P 5 #define PAS_FT_MP2_B 6 #define PAS_FT_MJPEG 7 #define PAS_FT_PCM 8 #define PAS_FT_ULAW 9 #define PAS_FT_ALAW 10 // } typedef struct _PAS_MEDIA_INFO { union { ULONG uAll[4]; struct { ULONG uWidth; ULONG uHeight; }; struct { ULONG uSampleRate; // kHz ULONG uDataBits; // 0: 8, 1: 16 ULONG uChannel; // 0: mono, 1: stereo }; }; } PAS_MEDIA_INFO; typedef struct _PAS_DATA_INFO { union { ULONG uAll[16]; struct { ULONG uDataType; ULONG uFrameType; ULONG uChannelNum; ULONG uDataSize; BYTE *pBuffer; LARGE_INTEGER TimeStamp; PAS_MEDIA_INFO MediaInfo; // Additional information }; }; } PAS_DATA_INFO; extern "C" { BOOL PAS_API PasInit(char *pszPath); void PAS_API PasRelease(); BOOL PAS_API PasGetData(PAS_DATA_INFO *pInfo); } #pragma pack( pop, STORAGE_PARSER_LIB_H ) #endif