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 #ifndef MediaInfoH
00027 #define MediaInfoH
00028
00029
00030
00031 #include "MediaInfo/MediaInfo_Const.h"
00032
00033
00034
00035 #undef MEDIAINFO_EXP
00036 #if defined(_WIN32) && !defined(__MINGW32__) //MinGW32 does not support _declspec
00037 #ifdef MEDIAINFO_DLL_EXPORT
00038 #define MEDIAINFO_EXP
00039 #else
00040 #define MEDIAINFO_EXP
00041 #endif
00042 #else //defined(_WIN32) && !defined(__MINGW32__)
00043 #if __GNUC__ >= 4
00044 #define MEDIAINFO_EXP __attribute__ ((visibility("default")))
00045 #else
00046 #define MEDIAINFO_EXP
00047 #endif
00048 #endif //defined(_WIN32) && !defined(__MINGW32__)
00049
00050 #if !defined(__WINDOWS__)
00051 #define __stdcall //Supported only on windows
00052 #endif //!defined(_WIN32)
00053
00054
00055 namespace MediaInfoLib
00056 {
00057
00058 class File__Analyze;
00059 class Internet__Base;
00060
00061
00064
00065
00066 class MEDIAINFO_EXP MediaInfo
00067 {
00068 public :
00069
00070 MediaInfo ();
00071 ~MediaInfo ();
00072
00078 size_t Open (const String &File_Name);
00088 size_t Open (const ZenLib::int8u* Begin, size_t Begin_Size, const ZenLib::int8u* End=NULL, size_t End_Size=0, ZenLib::int64u File_Size=0);
00093 size_t Open_Buffer_Init (ZenLib::int64u File_Size=(ZenLib::int64u)-1, ZenLib::int64u File_Offset=0);
00105 size_t Open_Buffer_Continue (const ZenLib::int8u* Buffer, size_t Buffer_Size);
00110 ZenLib::int64u Open_Buffer_Continue_GoTo_Get ();
00113 size_t Open_Buffer_Finalize ();
00118 size_t Open_NextPacket ();
00123 size_t Save ();
00127 void Close ();
00128
00129
00133 String Inform (size_t Reserved=0);
00134
00135
00144 String Get (stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t InfoKind=Info_Text);
00155 String Get (stream_t StreamKind, size_t StreamNumber, const String &Parameter, info_t InfoKind=Info_Text, info_t SearchKind=Info_Name);
00156
00157
00168 size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, size_t Parameter, const String &OldValue=String());
00179 size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, const String &Parameter, const String &OldValue=String());
00180
00181
00186 size_t Output_Buffer_Get (const String &Value);
00191 size_t Output_Buffer_Get (size_t Pos);
00192
00193
00232 String Option (const String &Option, const String &Value=String());
00238 static String Option_Static (const String &Option, const String &Value=String());
00246 size_t State_Get ();
00250 size_t Count_Get (stream_t StreamKind, size_t StreamNumber=(size_t)-1);
00251
00252 private :
00253 void* Internal;
00254 };
00255
00256 }
00257 #endif