DCL 3.7.4
Loading...
Searching...
No Matches
MediaInfo Class Reference

#include <MediaInfo.h>

Inheritance diagram for MediaInfo:
Object

Public Member Functions

 MediaInfo (const String &_filename) __DCL_THROWS2(DllException *
IOException~MediaInfo ()
String inform () const
String inform_r () const
String option (const wchar_t *_option, const wchar_t *_value=NULL) const
String format () const
uint64_t fileSize () const
unsigned videoCount () const
unsigned audioCount () const
unsigned imageCount () const
String videoFormat (size_t streamNumber) const
unsigned videoWidth (size_t streamNumber) const
unsigned videoHeight (size_t streamNumber) const
uint64_t videoDuration (size_t streamNumber) const
uint32_t videoDurationAsSeconds (size_t streamNumber) const
unsigned videoBitRate (size_t streamNumber) const
unsigned videoBitRateMinimum (size_t streamNumber) const
unsigned videoBitRateMaximum (size_t streamNumber) const
String audioFormat (size_t streamNumber) const
uint64_t audioDuration (size_t streamNumber) const
uint32_t audioDurationAsSeconds (size_t streamNumber) const
unsigned audioBitRate (size_t streamNumber) const
unsigned audioBitRateMinimum (size_t streamNumber) const
unsigned audioBitRateMaximum (size_t streamNumber) const
String imageFormat (size_t streamNumber) const
unsigned imageWidth (size_t streamNumber) const
unsigned imageHeight (size_t streamNumber) const
String contentType () const
Public Member Functions inherited from Object
virtual String toString () const
virtual void destroy ()
String className () const
bool isInstanceOf (const std::type_info &typeinfo) const
virtual const std::type_info & typeInfo () const

Static Public Member Functions

static void initialize () __DCL_THROWS1(DllException *)
static void cleanup ()

Additional Inherited Members

Protected Member Functions inherited from Object
virtual ~Object ()
 Object ()

Detailed Description

Definition at line 13 of file MediaInfo.h.

Constructor & Destructor Documentation

◆ MediaInfo()

MediaInfo::MediaInfo ( const String & _filename)

◆ ~MediaInfo()

MediaInfo::~MediaInfo ( )

Definition at line 88 of file MediaInfo.cpp.

89{
90 MediaInfo_Close(__handle);
91 MediaInfo_Delete(__handle);
92}

Member Function Documentation

◆ audioBitRate()

unsigned MediaInfo::audioBitRate ( size_t streamNumber) const

Definition at line 245 of file MediaInfo.cpp.

246{
247 return UInt32::parse(
248 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate",
250 10, 0LLU
251 );
252}
@ MediaInfo_Stream_Audio
@ MediaInfo_Info_Name
@ MediaInfo_Info_Text
static uint32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:391

◆ audioBitRateMaximum()

unsigned MediaInfo::audioBitRateMaximum ( size_t streamNumber) const

Definition at line 263 of file MediaInfo.cpp.

264{
265 return UInt32::parse(
266 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate_Maxmum",
268 10, 0LLU
269 );
270}

◆ audioBitRateMinimum()

unsigned MediaInfo::audioBitRateMinimum ( size_t streamNumber) const

Definition at line 254 of file MediaInfo.cpp.

255{
256 return UInt32::parse(
257 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate_Minimum",
259 10, 0LLU
260 );
261}

◆ audioCount()

unsigned MediaInfo::audioCount ( ) const

Definition at line 140 of file MediaInfo.cpp.

141{
142 return UInt32::parse(
143 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"AudioCount",
145 10, 0LU
146 );
147}
@ MediaInfo_Stream_General

◆ audioDuration()

uint64_t MediaInfo::audioDuration ( size_t streamNumber) const

Definition at line 231 of file MediaInfo.cpp.

232{
233 return UInt64::parse(
234 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"Duration",
236 10, 0LLU
237 );
238}
static uint64_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:623

◆ audioDurationAsSeconds()

uint32_t MediaInfo::audioDurationAsSeconds ( size_t streamNumber) const

Definition at line 240 of file MediaInfo.cpp.

241{
242 return (uint32_t) (audioDuration(streamNumber) / 1000);
243}
uint64_t audioDuration(size_t streamNumber) const

◆ audioFormat()

String MediaInfo::audioFormat ( size_t streamNumber) const

Definition at line 224 of file MediaInfo.cpp.

225{
226 return MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"Format",
228}

◆ cleanup()

void MediaInfo::cleanup ( )
static

Definition at line 67 of file MediaInfo.cpp.

68{
69 if (MediaInfo_Module) {
70 MediaInfoDLL_UnLoad();
71 }
72}

◆ contentType()

String MediaInfo::contentType ( ) const

Definition at line 309 of file MediaInfo.cpp.

310{
311 if (imageCount() > 0) {
312 return L"image/" + format().toLowerCase();
313 }
314
315 String format = this->format();
316 const wchar_t* type = NULL;
317 for (size_t i = 0; i < __countof(__formatToType__, wchar_t*);
318 i++, i++) {
319 if (format.compareNoCase(__formatToType__[i]) == 0) {
320 type = __formatToType__[i + 1];
321 break;
322 }
323 }
324
325 StringBuilder r;
326 if (type != NULL) {
327 if (videoCount() > 0) {
328 r = L"video/";
329 }
330 else if (audioCount() > 0) {
331 r = L"audio/";
332 }
333 else {
334 r = L"application/";
335 }
336 r += type;
337 }
338 else {
339 r = L"application/octet-stream";
340 }
341 return r;
342}
#define NULL
Definition Config.h:312
#define __countof(array, type)
Definition Config.h:336
IOException *size_t r
Definition MediaInfo.cpp:82
unsigned videoCount() const
String format() const
unsigned imageCount() const
unsigned audioCount() const

◆ fileSize()

uint64_t MediaInfo::fileSize ( ) const

Definition at line 122 of file MediaInfo.cpp.

123{
124 return UInt64::parse(
125 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"FileSize",
127 10, 0LLU
128 );
129}

◆ format()

String MediaInfo::format ( ) const

Definition at line 116 of file MediaInfo.cpp.

117{
118 return MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"Format",
120}

◆ imageCount()

unsigned MediaInfo::imageCount ( ) const

Definition at line 149 of file MediaInfo.cpp.

150{
151 return UInt32::parse(
152 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"ImageCount",
154 10, 0LU
155 );
156}

◆ imageFormat()

String MediaInfo::imageFormat ( size_t streamNumber) const

Definition at line 272 of file MediaInfo.cpp.

273{
274 return MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Format",
276}
@ MediaInfo_Stream_Image

◆ imageHeight()

unsigned MediaInfo::imageHeight ( size_t streamNumber) const

Definition at line 287 of file MediaInfo.cpp.

288{
289 return UInt32::parse(
290 MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Height",
292 10, 0LLU
293 );
294}

◆ imageWidth()

unsigned MediaInfo::imageWidth ( size_t streamNumber) const

Definition at line 278 of file MediaInfo.cpp.

279{
280 return UInt32::parse(
281 MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Width",
283 10, 0LLU
284 );
285}

◆ inform()

String MediaInfo::inform ( ) const

Definition at line 94 of file MediaInfo.cpp.

95{
96 String r = MediaInfo_Inform(__handle, 0);
97 return r;
98}

◆ inform_r()

String MediaInfo::inform_r ( ) const

Definition at line 100 of file MediaInfo.cpp.

101{
102 return inform().replace_r(L"[ \t]{2,}", L" ", true)
103 .replace_r(L" :", L":", true)
104 .replace_r(L"\r\n", L"\n", true)
105 .replace_r(L"Complete name[^\n]+\n", L"", true)
106 .trim();
107}
String inform() const
Definition MediaInfo.cpp:94

◆ initialize()

__DCL_BEGIN_NAMESPACE void MediaInfo::initialize ( )
static

Definition at line 51 of file MediaInfo.cpp.

53{
54 if (!MediaInfo_Module) {
55 MediaInfoDLL_Load();
56 }
57 if (!MediaInfo_Module) {
58#ifdef __WINNT__
59 throw new DllException(MEDIAINFODLL_NAME, WINAPI_ERROR(GetLastError()));
60#else
61 String msg;
62 __DCL_VERIFY(__dlerror(msg) == 0);
63 throw new DllException(L"" MEDIAINFODLL_NAME, msg);
64#endif
65 };
66}
DCLCAPI int __dlerror(String &r)
Definition _dlfcn.cpp:35
#define WINAPI_ERROR(n)
Definition Exception.h:72
#define MEDIAINFODLL_NAME
#define __DCL_VERIFY(expr)
Definition Object.h:396

◆ option()

String MediaInfo::option ( const wchar_t * _option,
const wchar_t * _value = NULL ) const

Definition at line 109 of file MediaInfo.cpp.

110{
111 __DCL_ASSERT(_option != NULL);
112 String r = MediaInfo_Option(__handle, _option, _value ? _value : L"");
113 return r;
114}
#define __DCL_ASSERT(expr)
Definition Object.h:394

◆ videoBitRate()

unsigned MediaInfo::videoBitRate ( size_t streamNumber) const

Definition at line 197 of file MediaInfo.cpp.

198{
199 return UInt32::parse(
200 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate",
202 10, 0LLU
203 );
204}
@ MediaInfo_Stream_Video

◆ videoBitRateMaximum()

unsigned MediaInfo::videoBitRateMaximum ( size_t streamNumber) const

Definition at line 215 of file MediaInfo.cpp.

216{
217 return UInt32::parse(
218 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate_Maxmum",
220 10, 0LLU
221 );
222}

◆ videoBitRateMinimum()

unsigned MediaInfo::videoBitRateMinimum ( size_t streamNumber) const

Definition at line 206 of file MediaInfo.cpp.

207{
208 return UInt32::parse(
209 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate_Minimum",
211 10, 0LLU
212 );
213}

◆ videoCount()

unsigned MediaInfo::videoCount ( ) const

Definition at line 131 of file MediaInfo.cpp.

132{
133 return UInt32::parse(
134 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"VideoCount",
136 10, 0LU
137 );
138}

◆ videoDuration()

uint64_t MediaInfo::videoDuration ( size_t streamNumber) const

Definition at line 183 of file MediaInfo.cpp.

184{
185 return UInt64::parse(
186 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Duration",
188 10, 0LLU
189 );
190}

◆ videoDurationAsSeconds()

uint32_t MediaInfo::videoDurationAsSeconds ( size_t streamNumber) const

Definition at line 192 of file MediaInfo.cpp.

193{
194 return (uint32_t) (videoDuration(streamNumber) / 1000);
195}
uint64_t videoDuration(size_t streamNumber) const

◆ videoFormat()

String MediaInfo::videoFormat ( size_t streamNumber) const

Definition at line 158 of file MediaInfo.cpp.

159{
160 return MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Format",
162}

◆ videoHeight()

unsigned MediaInfo::videoHeight ( size_t streamNumber) const

Definition at line 173 of file MediaInfo.cpp.

174{
175 return UInt32::parse(
176 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Height",
178 10, 0LLU
179 );
180}

◆ videoWidth()

unsigned MediaInfo::videoWidth ( size_t streamNumber) const

Definition at line 164 of file MediaInfo.cpp.

165{
166 return UInt32::parse(
167 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Width",
169 10, 0LLU
170 );
171}

The documentation for this class was generated from the following files: