00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #ifndef MediaInfoDLLH
00051 #define MediaInfoDLLH
00052
00053 #ifdef MEDIAINFO_DLL_EXPORT
00054 #define MEDIAINFO_EXP extern _declspec(dllexport)
00055 #else
00056 #define MEDIAINFO_EXP extern _declspec(dllimport)
00057 #endif
00058
00059
00060 typedef enum MediaInfo_stream_t
00061 {
00062 MediaInfo_Stream_General,
00063 MediaInfo_Stream_Video,
00064 MediaInfo_Stream_Audio,
00065 MediaInfo_Stream_Text,
00066 MediaInfo_Stream_Chapters,
00067 MediaInfo_Stream_Max
00068 } MediaInfo_stream_C;
00069
00070
00071 typedef enum MediaInfo_info_t
00072 {
00073 MediaInfo_Info_Name,
00074 MediaInfo_Info_Text,
00075 MediaInfo_Info_Measure,
00076 MediaInfo_Info_Options,
00077 MediaInfo_Info_Name_Text,
00078 MediaInfo_Info_Measure_Text,
00079 MediaInfo_Info_Info,
00080 MediaInfo_Info_HowTo,
00081 MediaInfo_Info_Max
00082 } MediaInfo_info_C;
00083
00084
00085 typedef enum MediaInfo_infooptions_t
00086 {
00087 MediaInfo_InfoOption_ShowInInform,
00088 MediaInfo_InfoOption_Support,
00089 MediaInfo_InfoOption_ShowInSupported,
00090 MediaInfo_InfoOption_TypeOfValue,
00091 MediaInfo_InfoOption_Max
00092 } MediaInfo_infooptions_C;
00093
00094
00095 typedef enum MediaInfo_fileoptions_t
00096 {
00097 MediaInfo_FileOption_Nothing,
00098 MediaInfo_FileOption_Recursive,
00099 MediaInfo_FileOption_Close,
00100 MediaInfo_FileOption_Max
00101 } MediaInfo_fileoptions_C;
00102
00103 #ifdef __cplusplus
00104 extern "C"
00105 {
00106 #endif
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 #if defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE)) //DLL construction or Unicode
00119
00120 MEDIAINFO_EXP void* __stdcall MediaInfo_New ();
00121
00122 MEDIAINFO_EXP void* __stdcall MediaInfo_New_Quick (const wchar_t* File, const wchar_t* Options);
00123
00124 MEDIAINFO_EXP void __stdcall MediaInfo_Delete (void* Handle);
00125
00126 MEDIAINFO_EXP int __stdcall MediaInfo_Open (void* Handle, const wchar_t* File);
00127
00128 MEDIAINFO_EXP int __stdcall MediaInfo_Open_Buffer (void* Handle, const unsigned char* Begin, unsigned int Begin_Size, const unsigned char* End, unsigned int End_Size);
00129
00130 MEDIAINFO_EXP int __stdcall MediaInfo_Save (void* Handle);
00131
00132 MEDIAINFO_EXP void __stdcall MediaInfo_Close (void* Handle);
00133
00134 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfo_Inform (void* Handle, int Reserved);
00135
00136 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfo_GetI (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, MediaInfo_info_C InfoKind);
00137
00138 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfo_Get (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber, const wchar_t* Parameter, MediaInfo_info_C InfoKind, MediaInfo_info_C SearchKind);
00139
00140 MEDIAINFO_EXP int __stdcall MediaInfo_SetI (void* Handle, const wchar_t* ToSet, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, const wchar_t* OldParameter);
00141
00142 MEDIAINFO_EXP int __stdcall MediaInfo_Set (void* Handle, const wchar_t* ToSet, MediaInfo_stream_C StreamKind, int StreamNumber, const wchar_t* Parameter, const wchar_t* OldParameter);
00143
00144 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfo_Option (void* Handle, const wchar_t* Option, const wchar_t* Value);
00145
00146 MEDIAINFO_EXP int __stdcall MediaInfo_State_Get (void* Handle);
00147
00148 MEDIAINFO_EXP int __stdcall MediaInfo_Count_Get (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber);
00149 #else //defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE))
00150 #define MediaInfo_New MediaInfoA_New
00151 #define MediaInfo_New_Quick MediaInfoA_New_Quick
00152 #define MediaInfo_Delete MediaInfoA_Delete
00153 #define MediaInfo_Open MediaInfoA_Open
00154 #define MediaInfo_Open_Buffer MediaInfoA_Open_Buffer
00155 #define MediaInfo_Save MediaInfoA_Save
00156 #define MediaInfo_Close MediaInfoA_Close
00157 #define MediaInfo_Inform MediaInfoA_Inform
00158 #define MediaInfo_GetI MediaInfoA_GetI
00159 #define MediaInfo_Get MediaInfoA_Get
00160 #define MediaInfo_SetI MediaInfoA_SetI
00161 #define MediaInfo_Set MediaInfoA_Set
00162 #define MediaInfo_Option MediaInfoA_Option
00163 #define MediaInfo_State_Get MediaInfoA_State_Get
00164 #define MediaInfo_Count_Get MediaInfoA_Count_Get
00165 #endif //defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE))
00166
00167
00168 MEDIAINFO_EXP void* __stdcall MediaInfoA_New ();
00169
00170 MEDIAINFO_EXP void* __stdcall MediaInfoA_New_Quick (const char* File, const char* Options);
00171
00172 MEDIAINFO_EXP void __stdcall MediaInfoA_Delete (void* Handle);
00173
00174 MEDIAINFO_EXP int __stdcall MediaInfoA_Open (void* Handle, const char* File);
00175
00176 MEDIAINFO_EXP int __stdcall MediaInfoA_Open_Buffer (void* Handle, const unsigned char* Begin, unsigned int Begin_Size, const unsigned char* End, unsigned int End_Size);
00177
00178 MEDIAINFO_EXP int __stdcall MediaInfoA_Save (void* Handle);
00179
00180 MEDIAINFO_EXP void __stdcall MediaInfoA_Close (void* Handle);
00181
00182 MEDIAINFO_EXP const char* __stdcall MediaInfoA_Inform (void* Handle, int Reserved);
00183
00184 MEDIAINFO_EXP const char* __stdcall MediaInfoA_GetI (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, MediaInfo_info_C InfoKind);
00185
00186 MEDIAINFO_EXP const char* __stdcall MediaInfoA_Get (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber, const char* Parameter, MediaInfo_info_C InfoKind, MediaInfo_info_C SearchKind);
00187
00188 MEDIAINFO_EXP int __stdcall MediaInfoA_SetI (void* Handle, const char* ToSet, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, const char* OldParameter);
00189
00190 MEDIAINFO_EXP int __stdcall MediaInfoA_Set (void* Handle, const char* ToSet, MediaInfo_stream_C StreamKind, int StreamNumber, const char* Parameter, const char* OldParameter);
00191
00192 MEDIAINFO_EXP const char* __stdcall MediaInfoA_Option (void* Handle, const char* Option, const char* Value);
00193
00194 MEDIAINFO_EXP int __stdcall MediaInfoA_State_Get (void* Handle);
00195
00196 MEDIAINFO_EXP int __stdcall MediaInfoA_Count_Get (void* Handle, MediaInfo_stream_C StreamKind, int StreamNumber);
00197
00198
00199 #if defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE)) //DLL construction or Unicode
00200
00201 MEDIAINFO_EXP void* __stdcall MediaInfoList_New ();
00202
00203 MEDIAINFO_EXP void* __stdcall MediaInfoList_New_Quick (const wchar_t* Files, const wchar_t* Config);
00204
00205 MEDIAINFO_EXP void __stdcall MediaInfoList_Delete (void* Handle);
00206
00207 MEDIAINFO_EXP int __stdcall MediaInfoList_Open (void* Handle, const wchar_t* Files, const MediaInfo_fileoptions_C Options);
00208
00209 MEDIAINFO_EXP int __stdcall MediaInfoList_Open_Buffer (void* Handle, const unsigned char* Begin, unsigned int Begin_Size, const unsigned char* End, unsigned int End_Size);
00210
00211 MEDIAINFO_EXP int __stdcall MediaInfoList_Save (void* Handle, unsigned int FilePos);
00212
00213 MEDIAINFO_EXP void __stdcall MediaInfoList_Close (void* Handle, unsigned int FilePos);
00214
00215 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfoList_Inform (void* Handle, unsigned int FilePos, int Reserved);
00216
00217 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfoList_GetI (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, MediaInfo_info_C InfoKind);
00218
00219 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfoList_Get (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, const wchar_t* Parameter, MediaInfo_info_C InfoKind, MediaInfo_info_C SearchKind);
00220
00221 MEDIAINFO_EXP int __stdcall MediaInfoList_SetI (void* Handle, const wchar_t* ToSet, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, const wchar_t* OldParameter);
00222
00223 MEDIAINFO_EXP int __stdcall MediaInfoList_Set (void* Handle, const wchar_t* ToSet, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, const wchar_t* Parameter, const wchar_t* OldParameter);
00224
00225 MEDIAINFO_EXP const wchar_t* __stdcall MediaInfoList_Option (void* Handle, const wchar_t* Option, const wchar_t* Value);
00226
00227 MEDIAINFO_EXP int __stdcall MediaInfoList_State_Get (void* Handle);
00228
00229 MEDIAINFO_EXP int __stdcall MediaInfoList_Count_Get (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber);
00230
00231 MEDIAINFO_EXP int __stdcall MediaInfoList_Count_Get_Files (void* Handle);
00232 #else //defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE))
00233 #define MediaInfoList_New MediaInfoListA_New
00234 #define MediaInfoList_New_Quick MediaInfoListA_New_Quick
00235 #define MediaInfoList_Delete MediaInfoListA_Delete
00236 #define MediaInfoList_Open MediaInfoListA_Open
00237 #define MediaInfoList_Open_Buffer MediaInfoListA_Open_Buffer
00238 #define MediaInfoList_Save MediaInfoListA_Save
00239 #define MediaInfoList_Save_All MediaInfoListA_Save_All
00240 #define MediaInfoList_Close MediaInfoListA_Close
00241 #define MediaInfoList_Close_All MediaInfoListA_Close_All
00242 #define MediaInfoList_Inform MediaInfoListA_Inform
00243 #define MediaInfoList_Inform_All MediaInfoListA_Inform_All
00244 #define MediaInfoList_GetI MediaInfoListA_GetI
00245 #define MediaInfoList_Get MediaInfoListA_Get
00246 #define MediaInfoList_SetI MediaInfoListA_SetI
00247 #define MediaInfoList_Set MediaInfoListA_Set
00248 #define MediaInfoList_Option MediaInfoListA_Option
00249 #define MediaInfoList_State_Get MediaInfoListA_State_Get
00250 #define MediaInfoList_Count_Get MediaInfoListA_Count_Get
00251 #define MediaInfoList_Count_Get_Files MediaInfoListA_Count_Get_Files
00252 #endif //defined (MEDIAINFO_DLL_EXPORT) || (defined (UNICODE) || defined (_UNICODE))
00253
00254
00255 MEDIAINFO_EXP const char* __stdcall MediaInfo_Info_Version ();
00256
00257
00258
00259 MEDIAINFO_EXP void* __stdcall MediaInfoListA_New ();
00260
00261 MEDIAINFO_EXP void* __stdcall MediaInfoListA_New_Quick (const char* Files, const char* Config);
00262
00263 MEDIAINFO_EXP void __stdcall MediaInfoListA_Delete (void* Handle);
00264
00265 MEDIAINFO_EXP int __stdcall MediaInfoListA_Open (void* Handle, const char* Files, const MediaInfo_fileoptions_C Options);
00266
00267 MEDIAINFO_EXP int __stdcall MediaInfoListA_Open_Buffer (void* Handle, const unsigned char* Begin, unsigned int Begin_Size, const unsigned char* End, unsigned int End_Size);
00268
00269 MEDIAINFO_EXP int __stdcall MediaInfoListA_Save (void* Handle, unsigned int FilePos);
00270
00271 MEDIAINFO_EXP void __stdcall MediaInfoListA_Close (void* Handle, unsigned int FilePos);
00272
00273 MEDIAINFO_EXP const char* __stdcall MediaInfoListA_Inform (void* Handle, unsigned int FilePos, int Reserved);
00274
00275 MEDIAINFO_EXP const char* __stdcall MediaInfoListA_GetI (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, MediaInfo_info_C InfoKind);
00276
00277 MEDIAINFO_EXP const char* __stdcall MediaInfoListA_Get (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, const char* Parameter, MediaInfo_info_C InfoKind, MediaInfo_info_C SearchKind);
00278
00279 MEDIAINFO_EXP int __stdcall MediaInfoListA_SetI (void* Handle, const char* ToSet, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, unsigned int Parameter, const char* OldParameter);
00280
00281 MEDIAINFO_EXP int __stdcall MediaInfoListA_Set (void* Handles, const char* ToSet, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber, const char* Parameter, const char* OldParameter);
00282
00283 MEDIAINFO_EXP const char* __stdcall MediaInfoListA_Option (void* Handle, const char* Option, const char* Value);
00284
00285 MEDIAINFO_EXP int __stdcall MediaInfoListA_State_Get (void* Handle);
00286
00287 MEDIAINFO_EXP int __stdcall MediaInfoListA_Count_Get (void* Handle, unsigned int FilePos, MediaInfo_stream_C StreamKind, int StreamNumber);
00288
00289 MEDIAINFO_EXP int __stdcall MediaInfoListA_Count_Get_Files (void* Handle);
00290
00291 #ifdef __cplusplus
00292 }
00293 #endif
00294
00295
00296
00297 #ifdef __cplusplus
00298
00299 #if !defined(MediaInfoH) && !defined (MEDIAINFO_DLL_EXPORT) //No Lib include and No DLL construction
00300
00301
00302 #include <string>
00303
00304
00305 namespace MediaInfoLib
00306 {
00307
00308
00309
00310 #undef _T
00311 #define _T(__x) __T(__x)
00312 #if defined(UNICODE) || defined (_UNICODE)
00313 typedef wchar_t Char;
00314 #undef __T
00315 #define __T(__x) L ## __x
00316 #else
00317 typedef char Char;
00318 #undef __T
00319 #define __T(__x) __x
00320 #endif
00321 typedef std::basic_string<Char, std::char_traits<Char>, std::allocator<Char> > MediaInfo_String;
00322
00323
00324
00325
00326 enum stream_t
00327 {
00328 Stream_General,
00329 Stream_Video,
00330 Stream_Audio,
00331 Stream_Text,
00332 Stream_Chapters,
00333 Stream_Image,
00334 Stream_Max,
00335 };
00336
00337
00338 enum info_t
00339 {
00340 Info_Name,
00341 Info_Text,
00342 Info_Measure,
00343 Info_Options,
00344 Info_Name_Text,
00345 Info_Measure_Text,
00346 Info_Info,
00347 Info_HowTo,
00348 Info_Max
00349 };
00350
00351
00352
00353
00354
00355 enum infooptions_t
00356 {
00357 InfoOption_ShowInInform,
00358 InfoOption_Support,
00359 InfoOption_ShowInSupported,
00360 InfoOption_Max
00361 };
00362
00363
00364
00365 enum fileoptions_t
00366 {
00367 FileOption_Nothing,
00368 FileOption_Recursive,
00369 FileOption_Close,
00370 FileOption_Max
00371 };
00372
00373
00374 class MediaInfo
00375 {
00376 public :
00377 MediaInfo () {Handle=MediaInfo_New();};
00378 ~MediaInfo () {MediaInfo_Close(Handle);};
00379
00380
00381 int Open (const MediaInfo_String &File) {return MediaInfo_Open(Handle, File.c_str());};
00382 int Open (const unsigned char* Begin, size_t Begin_Size, const unsigned char* End=NULL, size_t End_Size=NULL) {return MediaInfo_Open_Buffer(Handle, Begin, Begin_Size, End, End_Size);};
00383 int Save () {return MediaInfo_Save(Handle);};
00384 void Close () {return MediaInfo_Close(Handle);};
00385
00386
00387 MediaInfo_String Inform (int Reserved=NULL) {return MediaInfo_Inform(Handle, NULL);};
00388 MediaInfo_String Get (stream_t StreamKind, int StreamNumber, int Parameter, info_t InfoKind=Info_Text) {return MediaInfo_GetI (Handle, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter, (MediaInfo_info_C)InfoKind);};
00389 MediaInfo_String Get (stream_t StreamKind, int StreamNumber, const MediaInfo_String &Parameter, info_t InfoKind=Info_Text, info_t SearchKind=Info_Name) {return MediaInfo_Get (Handle, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter.c_str(), (MediaInfo_info_C)InfoKind, (MediaInfo_info_C)SearchKind);};
00390 int Set (const MediaInfo_String &ToSet, stream_t StreamKind, int StreamNumber, int Parameter, const MediaInfo_String &OldValue=_T("")) {return MediaInfo_SetI (Handle, ToSet.c_str(), (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter, OldValue.c_str());};
00391 int Set (const MediaInfo_String &ToSet, stream_t StreamKind, int StreamNumber, const MediaInfo_String &Parameter, const MediaInfo_String &OldValue=_T("")) {return MediaInfo_Set (Handle, ToSet.c_str(), (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter.c_str(), OldValue.c_str());};
00392 MediaInfo_String Option (const MediaInfo_String &Option, const MediaInfo_String &Value=_T("")) {return MediaInfo_Option (Handle, Option.c_str(), Value.c_str());};
00393 static MediaInfo_String Option_Static (const MediaInfo_String &Option, const MediaInfo_String &Value=_T("")) {return MediaInfo_Option (NULL, Option.c_str(), Value.c_str());};
00394 int State_Get () {return MediaInfo_State_Get(Handle);};
00395 int Count_Get (stream_t StreamKind, int StreamNumber=-1) {return MediaInfo_Count_Get(Handle, (MediaInfo_stream_C)StreamKind, StreamNumber);};
00396
00397 private :
00398 void* Handle;
00399 };
00400
00401 class MediaInfoList
00402 {
00403 public :
00404 MediaInfoList () {Handle=MediaInfoList_New();};
00405 ~MediaInfoList () {MediaInfoList_Delete(Handle);};
00406
00407
00408 int Open (const MediaInfo_String &File, const fileoptions_t Options=FileOption_Nothing) {return MediaInfoList_Open(Handle, File.c_str(), (MediaInfo_fileoptions_C)Options);};
00409 int Open (const unsigned char* Begin, size_t Begin_Size, const unsigned char* End=NULL, size_t End_Size=NULL) {return MediaInfoList_Open_Buffer(Handle, Begin, Begin_Size, End, End_Size);};
00410 int Save (unsigned int FilePos) {return MediaInfoList_Save(Handle, FilePos);};
00411 void Close (unsigned int FilePos) {return MediaInfoList_Close(Handle, FilePos);};
00412
00413
00414 MediaInfo_String Inform (unsigned int FilePos=-1, int Reserved=NULL) {return MediaInfoList_Inform(Handle, FilePos, NULL);};
00415 MediaInfo_String Get (unsigned int FilePos, stream_t StreamKind, int StreamNumber, int Parameter, info_t InfoKind=Info_Text) {return MediaInfoList_GetI (Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter, (MediaInfo_info_C)InfoKind);};
00416 MediaInfo_String Get (unsigned int FilePos, stream_t StreamKind, int StreamNumber, const MediaInfo_String &Parameter, info_t InfoKind=Info_Text, info_t SearchKind=Info_Name) {return MediaInfoList_Get (Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter.c_str(), (MediaInfo_info_C)InfoKind, (MediaInfo_info_C)SearchKind);};
00417 int Set (const MediaInfo_String &ToSet, unsigned int FilePos, stream_t StreamKind, int StreamNumber, int Parameter, const MediaInfo_String &OldValue=_T("")) {return MediaInfoList_SetI (Handle, ToSet.c_str(), FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter, OldValue.c_str());};
00418 int Set (const MediaInfo_String &ToSet, unsigned int FilePos, stream_t StreamKind, int StreamNumber, const MediaInfo_String &Parameter, const MediaInfo_String &OldValue=_T("")) {return MediaInfoList_Set (Handle, ToSet.c_str(), FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber, Parameter.c_str(), OldValue.c_str());};
00419 MediaInfo_String Option (const MediaInfo_String &Option, const MediaInfo_String &Value=_T("")) {return MediaInfoList_Option (Handle, Option.c_str(), Value.c_str());};
00420 static MediaInfo_String Option_Static (const MediaInfo_String &Option, const MediaInfo_String &Value=_T("")) {return MediaInfoList_Option (NULL, Option.c_str(), Value.c_str());};
00421 int State_Get () {return MediaInfoList_State_Get(Handle);};
00422 int Count_Get (unsigned int FilePos, stream_t StreamKind, int StreamNumber=-1) {return MediaInfoList_Count_Get(Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber);};
00423 int Count_Get () {return MediaInfoList_Count_Get_Files(Handle);};
00424
00425 private :
00426 void* Handle;
00427 };
00428 }
00429 #endif//#if !defined(MediaInfoH) && !defined (MEDIAINFO_DLL_EXPORT) && !(defined (UNICODE) || defined (_UNICODE))
00430 #endif
00431
00432
00433 #endif