MediaInfoLib  0.7
MediaInfo.h
1 // MediaInfo - All information about media files
2 
3 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 //
5 // Give information about a lot of media files
6 // Dispatch the file to be tested by all containers
7 //
8 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9 
10 //---------------------------------------------------------------------------
11 #ifndef MediaInfoH
12 #define MediaInfoH
13 //---------------------------------------------------------------------------
14 
15 //---------------------------------------------------------------------------
16 #include "MediaInfo/MediaInfo_Const.h"
17 //---------------------------------------------------------------------------
18 
19 //---------------------------------------------------------------------------
20 #undef MEDIAINFO_EXP
21 #if defined(_WIN32) && !defined(__MINGW32__) //MinGW32 does not support _declspec
22  #ifdef MEDIAINFO_DLL_EXPORT
23  #define MEDIAINFO_EXP
24  #else
25  #define MEDIAINFO_EXP
26  #endif
27 #else //defined(_WIN32) && !defined(__MINGW32__)
28  #if __GNUC__ >= 4
29  #define MEDIAINFO_EXP __attribute__ ((visibility("default")))
30  #else
31  #define MEDIAINFO_EXP
32  #endif
33 #endif //defined(_WIN32) && !defined(__MINGW32__)
34 
35 #if !defined(__WINDOWS__)
36  #define __stdcall //Supported only on windows
37 #endif
38 //---------------------------------------------------------------------------
39 
40 namespace MediaInfoLib
41 {
42 
43 class MediaInfo_Internal;
44 
45 //***************************************************************************
48 //***************************************************************************
49 
50 class MEDIAINFO_EXP MediaInfo
51 {
52 public :
53  //Constructor/Destructor
54  MediaInfo ();
55  ~MediaInfo ();
56  //File
62  size_t Open (const String &File_Name);
72  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);
79  size_t Open_Buffer_Init (ZenLib::int64u File_Size=(ZenLib::int64u)-1, ZenLib::int64u File_Offset=0);
91  size_t Open_Buffer_Continue (const ZenLib::int8u* Buffer, size_t Buffer_Size);
96  ZenLib::int64u Open_Buffer_Continue_GoTo_Get ();
101  size_t Open_Buffer_Finalize ();
106  size_t Open_NextPacket ();
111  size_t Save ();
115  void Close ();
116 
117  //General information
123  String Inform (size_t Reserved=0);
124 
125  //Get
135  String Get (stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t InfoKind=Info_Text);
146  String Get (stream_t StreamKind, size_t StreamNumber, const String &Parameter, info_t InfoKind=Info_Text, info_t SearchKind=Info_Name);
147 
148  //Set
159  size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, size_t Parameter, const String &OldValue=String());
170  size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, const String &Parameter, const String &OldValue=String());
171 
172  //Output_Buffered
177  size_t Output_Buffer_Get (const String &Value);
182  size_t Output_Buffer_Get (size_t Pos);
183 
184  //Info
223  String Option (const String &Option, const String &Value=String());
229  static String Option_Static (const String &Option, const String &Value=String());
237  size_t State_Get ();
242  size_t Count_Get (stream_t StreamKind, size_t StreamNumber=(size_t)-1);
243 
244 private :
245  MediaInfo_Internal* Internal;
246 
247  //Constructor
248  MediaInfo (const MediaInfo&); // Prevent copy-construction
249  MediaInfo& operator=(const MediaInfo&); // Prevent assignment
250 };
251 
252 } //NameSpace
253 #endif
MediaInfoLib::Info_Name
@ Info_Name
InfoKind = Unique name of parameter.
Definition: MediaInfo_Const.h:75
MediaInfoLib::MediaInfo
MediaInfo.
Definition: MediaInfo.h:50
MediaInfoLib
defined(_WIN32)
Definition: MediaInfo_Const.h:23
MediaInfoLib::String
std::basic_string< MediaInfoLib::Char > String
Unicode/Ansi independant string.
Definition: MediaInfo_Const.h:125
MediaInfoLib::stream_t
stream_t
Kinds of Stream.
Definition: MediaInfo_Const.h:60
MediaInfoLib::info_t
info_t
Kind of information.
Definition: MediaInfo_Const.h:73
MediaInfoLib::Info_Text
@ Info_Text
InfoKind = Value of parameter.
Definition: MediaInfo_Const.h:76