Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksoid <aleksoid@users.sourceforge.net>2009-09-08 03:28:15 +0400
committerAleksoid <aleksoid@users.sourceforge.net>2009-09-08 03:28:15 +0400
commit7c892bb6a0a0ca09b9bfc003ab149a5f0fc16e2b (patch)
treeb8b00a5184cb3e029335046e375ee0202de827ae /include
parentb4235166b69bdf8c0f456a36210680107ebea3f2 (diff)
Update : MediaInfo header(0.7.21.0);
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1275 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'include')
-rw-r--r--include/MediaInfoDLL.h192
1 files changed, 166 insertions, 26 deletions
diff --git a/include/MediaInfoDLL.h b/include/MediaInfoDLL.h
index 16c4fcc5d..ae185ead2 100644
--- a/include/MediaInfoDLL.h
+++ b/include/MediaInfoDLL.h
@@ -26,15 +26,112 @@
#ifndef MediaInfoDLLH
#define MediaInfoDLLH
+//***************************************************************************
+// Platforms (from libzen)
+//***************************************************************************
+
+/*---------------------------------------------------------------------------*/
+/*Win32*/
+#if defined(__NT__) || defined(_WIN32) || defined(WIN32)
+ #ifndef WIN32
+ #define WIN32
+ #endif
+ #ifndef _WIN32
+ #define _WIN32
+ #endif
+ #ifndef __WIN32__
+ #define __WIN32__ 1
+ #endif
+#endif
+
+/*---------------------------------------------------------------------------*/
+/*Win64*/
+#if defined(_WIN64) || defined(WIN64)
+ #ifndef WIN64
+ #define WIN64
+ #endif
+ #ifndef _WIN64
+ #define _WIN64
+ #endif
+ #ifndef __WIN64__
+ #define __WIN64__ 1
+ #endif
+#endif
+
+/*---------------------------------------------------------------------------*/
+/*Windows*/
+#if defined(WIN32) || defined(WIN64)
+ #ifndef WINDOWS
+ #define WINDOWS
+ #endif
+ #ifndef _WINDOWS
+ #define _WINDOWS
+ #endif
+ #ifndef __WINDOWS__
+ #define __WINDOWS__ 1
+ #endif
+#endif
+
+/*---------------------------------------------------------------------------*/
+/*Unix (Linux, HP, Sun, BeOS...)*/
+#if defined(UNIX) || defined(_UNIX) || defined(__UNIX__) \
+ || defined(__unix) || defined(__unix__) \
+ || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) \
+ || defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) \
+ || defined(__EMX__) || defined(__VMS) || defined(__BEOS__)
+ #ifndef UNIX
+ #define UNIX
+ #endif
+ #ifndef _UNIX
+ #define _UNIX
+ #endif
+ #ifndef __UNIX__
+ #define __UNIX__ 1
+ #endif
+#endif
+
+/*---------------------------------------------------------------------------*/
+/*MacOS Classic*/
+#if defined(macintosh)
+ #ifndef MACOS
+ #define MACOS
+ #endif
+ #ifndef _MACOS
+ #define _MACOS
+ #endif
+ #ifndef __MACOS__
+ #define __MACOS__ 1
+ #endif
+#endif
+
+/*---------------------------------------------------------------------------*/
+/*MacOS X*/
+#if defined(__APPLE__) && defined(__MACH__)
+ #ifndef MACOSX
+ #define MACOSX
+ #endif
+ #ifndef _MACOSX
+ #define _MACOSX
+ #endif
+ #ifndef __MACOSX__
+ #define __MACOSX__ 1
+ #endif
+#endif
+
+/*Test of targets*/
+#if defined(WINDOWS) && defined(UNIX) && defined(MACOS) && defined(MACOSX)
+ #pragma message Multiple platforms???
+#endif
+
+#if !defined(WIN32) && !defined(UNIX) && !defined(MACOS) && !defined(MACOSX)
+ #pragma message No known platforms, assume default
+#endif
+
/*-------------------------------------------------------------------------*/
#if defined (_WIN32) || defined (WIN32)
- #ifdef _DEBUG
- #define MEDIAINFODLL_NAME "MediaInfod.dll"
- #else
- #define MEDIAINFODLL_NAME "MediaInfo.dll"
- #endif //_DEBUG
+ #define MEDIAINFODLL_NAME "MediaInfo.dll"
#elif defined(__APPLE__) && defined(__MACH__)
- #define MEDIAINFODLL_NAME "libmediainfo.dynlib.0"
+ #define MEDIAINFODLL_NAME "libmediainfo.0.dylib"
#define __stdcall
#else
#define MEDIAINFODLL_NAME "libmediainfo.so.0"
@@ -60,6 +157,26 @@
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
+/*8-bit int */
+typedef unsigned char MediaInfo_int8u;
+/*-------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------*/
+/*64-bit int */
+#if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__UNIX__) || defined(__MACOSX__)
+ #undef MAXTYPE_INT
+ #define MAXTYPE_INT 64
+ typedef unsigned long long MediaInfo_int64u;
+#elif defined(__WIN32__) || defined(_WIN32)
+ #undef MAXTYPE_INT
+ #define MAXTYPE_INT 64
+ typedef unsigned __int64 MediaInfo_int64u;
+#else
+ #pragma message This machine has no 64-bit integer type?
+#endif
+/*-------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------*/
/*NULL */
#ifndef NULL
#define NULL 0
@@ -107,7 +224,7 @@ typedef enum MediaInfo_infooptions_t
typedef enum MediaInfo_fileoptions_t
{
MediaInfo_FileOption_Nothing =0x00,
- MediaInfo_FileOption_Recursive =0x01,
+ MediaInfo_FileOption_NoRecursive =0x01,
MediaInfo_FileOption_CloseAll =0x02,
MediaInfo_FileOption_Max =0x04
} MediaInfo_fileoptions_C;
@@ -133,19 +250,22 @@ static size_t Module_Count=0;
#ifdef MEDIAINFO_GLIBC
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
if (!g_module_symbol (Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfo_##_Name)) \
- Errors++; \
+ Errors++;
+#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
if (!g_module_symbol (Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfoList_##_Name)) \
Errors++;
#elif defined (_WIN32) || defined (WIN32)
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
- if (MediaInfo_##_Name==NULL) Errors++; \
+ if (MediaInfo_##_Name==NULL) Errors++;
+#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfoList_##_Name==NULL) Errors++;
#else
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
- if (MediaInfo_##_Name==NULL) Errors++; \
+ if (MediaInfo_##_Name==NULL) Errors++;
+#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfoList_##_Name==NULL) Errors++;
#endif
@@ -156,6 +276,10 @@ typedef void (__stdcall *MEDIAINFO_Delete)(void*); static MEDIAINFO_Delete Media
typedef void (__stdcall *MEDIAINFOLIST_Delete)(void*); static MEDIAINFOLIST_Delete MediaInfoList_Delete;
typedef size_t (__stdcall *MEDIAINFO_Open)(void*, const MediaInfo_Char*); static MEDIAINFO_Open MediaInfo_Open;
typedef size_t (__stdcall *MEDIAINFOLIST_Open)(void*, const MediaInfo_Char*, const MediaInfo_fileoptions_C); static MEDIAINFOLIST_Open MediaInfoList_Open;
+typedef size_t (__stdcall *MEDIAINFO_Open_Buffer_Init)(void*, MediaInfo_int64u File_Size, MediaInfo_int64u File_Offset); static MEDIAINFO_Open_Buffer_Init MediaInfo_Open_Buffer_Init;
+typedef size_t (__stdcall *MEDIAINFO_Open_Buffer_Continue)(void*, MediaInfo_int8u* Buffer, size_t Buffer_Size); static MEDIAINFO_Open_Buffer_Continue MediaInfo_Open_Buffer_Continue;
+typedef MediaInfo_int64u (__stdcall *MEDIAINFO_Open_Buffer_Continue_GoTo_Get)(void*); static MEDIAINFO_Open_Buffer_Continue_GoTo_Get MediaInfo_Open_Buffer_Continue_GoTo_Get;
+typedef size_t (__stdcall *MEDIAINFO_Open_Buffer_Finalize)(void*); static MEDIAINFO_Open_Buffer_Finalize MediaInfo_Open_Buffer_Finalize;
typedef void (__stdcall *MEDIAINFO_Close)(void*); static MEDIAINFO_Close MediaInfo_Close;
typedef void (__stdcall *MEDIAINFOLIST_Close)(void*, size_t); static MEDIAINFOLIST_Close MediaInfoList_Close;
typedef const MediaInfo_Char* (__stdcall *MEDIAINFO_Inform)(void*, size_t Reserved); static MEDIAINFO_Inform MediaInfo_Inform;
@@ -204,18 +328,32 @@ static size_t MediaInfoDLL_Load()
/* Load methods */
size_t Errors=0;
- MEDIAINFO_ASSIGN(New,"New")
- MEDIAINFO_ASSIGN(Delete,"Delete")
- MEDIAINFO_ASSIGN(Open,"Open")
- MEDIAINFO_ASSIGN(Close,"Close")
- MEDIAINFO_ASSIGN(Inform,"Inform")
- MEDIAINFO_ASSIGN(GetI,"GetI")
- MEDIAINFO_ASSIGN(Get,"Get")
- MEDIAINFO_ASSIGN(Option,"Option")
- MEDIAINFO_ASSIGN(State_Get,"State_Get")
- MEDIAINFO_ASSIGN(Count_Get,"Count_Get")
- MEDIAINFO_ASSIGN(Count_Get_Files,"Count_Get_Files")
- if (Errors>1) //Normal for Count_Get_Files, MediaInfo has no one.
+ MEDIAINFO_ASSIGN (New,"New")
+ MEDIAINFOLIST_ASSIGN(New,"New")
+ MEDIAINFO_ASSIGN (Delete,"Delete")
+ MEDIAINFOLIST_ASSIGN(Delete,"Delete")
+ MEDIAINFO_ASSIGN (Open,"Open")
+ MEDIAINFOLIST_ASSIGN(Open,"Open")
+ MEDIAINFO_ASSIGN (Open_Buffer_Init,"Open_Buffer_Init")
+ MEDIAINFO_ASSIGN (Open_Buffer_Continue,"Open_Buffer_Continue")
+ MEDIAINFO_ASSIGN (Open_Buffer_Continue_GoTo_Get,"Open_Buffer_Continue_GoTo_Get")
+ MEDIAINFO_ASSIGN (Open_Buffer_Finalize,"Open_Buffer_Finalize")
+ MEDIAINFO_ASSIGN (Close,"Close")
+ MEDIAINFOLIST_ASSIGN(Close,"Close")
+ MEDIAINFO_ASSIGN (Inform,"Inform")
+ MEDIAINFOLIST_ASSIGN(Inform,"Inform")
+ MEDIAINFO_ASSIGN (GetI,"GetI")
+ MEDIAINFOLIST_ASSIGN(GetI,"GetI")
+ MEDIAINFO_ASSIGN (Get,"Get")
+ MEDIAINFOLIST_ASSIGN(Get,"Get")
+ MEDIAINFO_ASSIGN (Option,"Option")
+ MEDIAINFOLIST_ASSIGN(Option,"Option")
+ MEDIAINFO_ASSIGN (State_Get,"State_Get")
+ MEDIAINFOLIST_ASSIGN(State_Get,"State_Get")
+ MEDIAINFO_ASSIGN (Count_Get,"Count_Get")
+ MEDIAINFOLIST_ASSIGN(Count_Get,"Count_Get")
+ MEDIAINFOLIST_ASSIGN(Count_Get_Files,"Count_Get_Files")
+ if (Errors>0)
return (size_t)-1;
Module_Count++;
@@ -330,7 +468,7 @@ enum infooptions_t
enum fileoptions_t
{
FileOption_Nothing =0x00,
- FileOption_Recursive =0x01, ///< Browse folders recursively
+ FileOption_NoRecursive =0x01, ///< Do not browse folders recursively
FileOption_CloseAll =0x02, ///< Close all files before open
FileOption_Max =0x04
};
@@ -354,7 +492,10 @@ public :
//File
size_t Open (const String &File) {MEDIAINFO_TEST_INT; return MediaInfo_Open(Handle, File.c_str());};
- //size_t Open (const unsigned char* Begin, size_t Begin_Size, const unsigned char* End=NULL, size_t End_Size=NULL) {MEDIAINFO_TEST_INT; return MediaInfo_Open_Buffer(Handle, Begin, Begin_Size, End, End_Size);};
+ size_t Open_Buffer_Init (MediaInfo_int64u File_Size, MediaInfo_int64u File_Offset) {MEDIAINFO_TEST_INT; return MediaInfo_Open_Buffer_Init(Handle, File_Size, File_Offset);};
+ size_t Open_Buffer_Continue (MediaInfo_int8u* Buffer, size_t Buffer_Size) {MEDIAINFO_TEST_INT; return MediaInfo_Open_Buffer_Continue(Handle, Buffer, Buffer_Size);};
+ MediaInfo_int64u Open_Buffer_Continue_GoTo_Get () {MEDIAINFO_TEST_INT; return MediaInfo_Open_Buffer_Continue_GoTo_Get(Handle);};
+ size_t Open_Buffer_Finalize () {MEDIAINFO_TEST_INT; return MediaInfo_Open_Buffer_Finalize(Handle);};
//size_t Save () {MEDIAINFO_TEST_INT; return MediaInfo_Save(Handle);};
void Close () {MEDIAINFO_TEST_VOID; return MediaInfo_Close(Handle);};
@@ -383,7 +524,6 @@ public :
//File
size_t Open (const String &File, const fileoptions_t Options=FileOption_Nothing) {MEDIAINFO_TEST_INT; return MediaInfoList_Open(Handle, File.c_str(), (MediaInfo_fileoptions_C)Options);};
- //size_t Open (const unsigned char* Begin, size_t Begin_Size, const unsigned char* End=NULL, size_t End_Size=NULL) {MEDIAINFO_TEST_INT; return MediaInfoList_Open_Buffer(Handle, Begin, Begin_Size, End, End_Size);};
//size_t Save (size_t FilePos) {MEDIAINFO_TEST_INT; return MediaInfoList_Save(Handle, FilePos);};
void Close (size_t FilePos=(size_t)-1) {MEDIAINFO_TEST_VOID; return MediaInfoList_Close(Handle, FilePos);};
@@ -396,7 +536,7 @@ public :
String Option (const String &Option, const String &Value=_T("")) {MEDIAINFO_TEST_STRING; return MediaInfoList_Option (Handle, Option.c_str(), Value.c_str());};
static String Option_Static (const String &Option, const String &Value=_T("")) {MEDIAINFO_TEST_STRING_STATIC; return MediaInfoList_Option (NULL, Option.c_str(), Value.c_str());};
size_t State_Get () {MEDIAINFO_TEST_INT; return MediaInfoList_State_Get(Handle);};
- size_t Count_Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber=Error-1) {MEDIAINFO_TEST_INT; return MediaInfoList_Count_Get(Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber);};
+ size_t Count_Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber=(size_t)-1) {MEDIAINFO_TEST_INT; return MediaInfoList_Count_Get(Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber);};
size_t Count_Get () {MEDIAINFO_TEST_INT; return MediaInfoList_Count_Get_Files(Handle);};
bool IsReady() {return (Handle && Module)?true:false;}