MediaInfoLib
0.7
|
00001 // MediaInfo - All information about media files 00002 // Copyright (C) 2002-2011 MediaArea.net SARL, Info@MediaArea.net 00003 // 00004 // This library is free software: you can redistribute it and/or modify it 00005 // under the terms of the GNU Lesser General Public License as published by 00006 // the Free Software Foundation, either version 3 of the License, or 00007 // any later version. 00008 // 00009 // This library is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU Lesser General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU Lesser General Public License 00015 // along with this library. If not, see <http://www.gnu.org/licenses/>. 00016 // 00017 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00018 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00019 // 00020 // Give information about a lot of media files 00021 // Dispatch the file to be tested by all containers 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 //Constructor/Destructor 00070 MediaInfo (); 00071 ~MediaInfo (); 00072 //File 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 //General information 00133 String Inform (size_t Reserved=0); 00134 00135 //Get 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 //Set 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 //Output_Buffered 00186 size_t Output_Buffer_Get (const String &Value); 00191 size_t Output_Buffer_Get (size_t Pos); 00192 00193 //Info 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 } //NameSpace 00257 #endif