DCL 4.0
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 76 of file MediaInfo.cpp.

77{
78 MediaInfo_Close(__handle);
79 MediaInfo_Delete(__handle);
80}

Member Function Documentation

◆ audioBitRate()

unsigned MediaInfo::audioBitRate ( size_t streamNumber) const

Definition at line 233 of file MediaInfo.cpp.

234{
235 return UInt32::parse(
236 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate",
238 10, 0LLU
239 );
240}
@ 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:401

◆ audioBitRateMaximum()

unsigned MediaInfo::audioBitRateMaximum ( size_t streamNumber) const

Definition at line 251 of file MediaInfo.cpp.

252{
253 return UInt32::parse(
254 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate_Maxmum",
256 10, 0LLU
257 );
258}

◆ audioBitRateMinimum()

unsigned MediaInfo::audioBitRateMinimum ( size_t streamNumber) const

Definition at line 242 of file MediaInfo.cpp.

243{
244 return UInt32::parse(
245 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"BitRate_Minimum",
247 10, 0LLU
248 );
249}

◆ audioCount()

unsigned MediaInfo::audioCount ( ) const

Definition at line 128 of file MediaInfo.cpp.

129{
130 return UInt32::parse(
131 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"AudioCount",
133 10, 0LU
134 );
135}
@ MediaInfo_Stream_General

◆ audioDuration()

uint64_t MediaInfo::audioDuration ( size_t streamNumber) const

Definition at line 219 of file MediaInfo.cpp.

220{
221 return UInt64::parse(
222 MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"Duration",
224 10, 0LLU
225 );
226}
static uint64_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:617

◆ audioDurationAsSeconds()

uint32_t MediaInfo::audioDurationAsSeconds ( size_t streamNumber) const

Definition at line 228 of file MediaInfo.cpp.

229{
230 return (uint32_t) (audioDuration(streamNumber) / 1000);
231}
uint64_t audioDuration(size_t streamNumber) const

◆ audioFormat()

String MediaInfo::audioFormat ( size_t streamNumber) const

Definition at line 212 of file MediaInfo.cpp.

213{
214 return MediaInfo_Get(__handle, MediaInfo_Stream_Audio, streamNumber, L"Format",
216}

◆ cleanup()

void MediaInfo::cleanup ( )
static

Definition at line 55 of file MediaInfo.cpp.

56{
57 if (MediaInfo_Module) {
58 MediaInfoDLL_UnLoad();
59 }
60}

◆ contentType()

String MediaInfo::contentType ( ) const

Definition at line 297 of file MediaInfo.cpp.

298{
299 if (imageCount() > 0) {
300 return L"image/" + format().toLowerCase();
301 }
302
303 String format = this->format();
304 const wchar_t* type = NULL;
305 for (size_t i = 0; i < __countof(__formatToType__, wchar_t*);
306 i++, i++) {
307 if (format.compareNoCase(__formatToType__[i]) == 0) {
308 type = __formatToType__[i + 1];
309 break;
310 }
311 }
312
313 StringBuilder r;
314 if (type != NULL) {
315 if (videoCount() > 0) {
316 r = L"video/";
317 }
318 else if (audioCount() > 0) {
319 r = L"audio/";
320 }
321 else {
322 r = L"application/";
323 }
324 r += type;
325 }
326 else {
327 r = L"application/octet-stream";
328 }
329 return r;
330}
#define NULL
Definition Config.h:340
#define __countof(array, type)
Definition Config.h:365
ByteString r
unsigned videoCount() const
String format() const
unsigned imageCount() const
unsigned audioCount() const

◆ fileSize()

uint64_t MediaInfo::fileSize ( ) const

Definition at line 110 of file MediaInfo.cpp.

111{
112 return UInt64::parse(
113 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"FileSize",
115 10, 0LLU
116 );
117}

◆ format()

String MediaInfo::format ( ) const

Definition at line 104 of file MediaInfo.cpp.

105{
106 return MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"Format",
108}

◆ imageCount()

unsigned MediaInfo::imageCount ( ) const

Definition at line 137 of file MediaInfo.cpp.

138{
139 return UInt32::parse(
140 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"ImageCount",
142 10, 0LU
143 );
144}

◆ imageFormat()

String MediaInfo::imageFormat ( size_t streamNumber) const

Definition at line 260 of file MediaInfo.cpp.

261{
262 return MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Format",
264}
@ MediaInfo_Stream_Image

◆ imageHeight()

unsigned MediaInfo::imageHeight ( size_t streamNumber) const

Definition at line 275 of file MediaInfo.cpp.

276{
277 return UInt32::parse(
278 MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Height",
280 10, 0LLU
281 );
282}

◆ imageWidth()

unsigned MediaInfo::imageWidth ( size_t streamNumber) const

Definition at line 266 of file MediaInfo.cpp.

267{
268 return UInt32::parse(
269 MediaInfo_Get(__handle, MediaInfo_Stream_Image, streamNumber, L"Width",
271 10, 0LLU
272 );
273}

◆ inform()

String MediaInfo::inform ( ) const

Definition at line 82 of file MediaInfo.cpp.

83{
84 String r = MediaInfo_Inform(__handle, 0);
85 return r;
86}

◆ inform_r()

String MediaInfo::inform_r ( ) const

Definition at line 88 of file MediaInfo.cpp.

89{
90 return inform().replace_r(L"[ \t]{2,}", L" ", true)
91 .replace_r(L" :", L":", true)
92 .replace_r(L"\r\n", L"\n", true)
93 .replace_r(L"Complete name[^\n]+\n", L"", true)
94 .trim();
95}
String inform() const
Definition MediaInfo.cpp:82

◆ initialize()

void MediaInfo::initialize ( )
static

Definition at line 39 of file MediaInfo.cpp.

41{
42 if (!MediaInfo_Module) {
43 MediaInfoDLL_Load();
44 }
45 if (!MediaInfo_Module) {
46#if __DCL_WINDOWS
47 throw new DllException(MEDIAINFODLL_NAME, WINAPI_ERROR(GetLastError()));
48#else
49 String msg;
50 __DCL_VERIFY(__dlerror(msg) == 0);
51 throw new DllException(L"" MEDIAINFODLL_NAME, msg);
52#endif
53 };
54}
DCLCAPI int __dlerror(String &r)
Definition _dlfcn.cpp:32
#define WINAPI_ERROR(n)
Definition Exception.h:72
#define MEDIAINFODLL_NAME
#define __DCL_VERIFY(expr)
Definition Object.h:373

◆ option()

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

Definition at line 97 of file MediaInfo.cpp.

98{
99 __DCL_ASSERT(_option != NULL);
100 String r = MediaInfo_Option(__handle, _option, _value ? _value : L"");
101 return r;
102}
#define __DCL_ASSERT(expr)
Definition Object.h:371

◆ videoBitRate()

unsigned MediaInfo::videoBitRate ( size_t streamNumber) const

Definition at line 185 of file MediaInfo.cpp.

186{
187 return UInt32::parse(
188 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate",
190 10, 0LLU
191 );
192}
@ MediaInfo_Stream_Video

◆ videoBitRateMaximum()

unsigned MediaInfo::videoBitRateMaximum ( size_t streamNumber) const

Definition at line 203 of file MediaInfo.cpp.

204{
205 return UInt32::parse(
206 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate_Maxmum",
208 10, 0LLU
209 );
210}

◆ videoBitRateMinimum()

unsigned MediaInfo::videoBitRateMinimum ( size_t streamNumber) const

Definition at line 194 of file MediaInfo.cpp.

195{
196 return UInt32::parse(
197 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"BitRate_Minimum",
199 10, 0LLU
200 );
201}

◆ videoCount()

unsigned MediaInfo::videoCount ( ) const

Definition at line 119 of file MediaInfo.cpp.

120{
121 return UInt32::parse(
122 MediaInfo_Get(__handle, MediaInfo_Stream_General, 0, L"VideoCount",
124 10, 0LU
125 );
126}

◆ videoDuration()

uint64_t MediaInfo::videoDuration ( size_t streamNumber) const

Definition at line 171 of file MediaInfo.cpp.

172{
173 return UInt64::parse(
174 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Duration",
176 10, 0LLU
177 );
178}

◆ videoDurationAsSeconds()

uint32_t MediaInfo::videoDurationAsSeconds ( size_t streamNumber) const

Definition at line 180 of file MediaInfo.cpp.

181{
182 return (uint32_t) (videoDuration(streamNumber) / 1000);
183}
uint64_t videoDuration(size_t streamNumber) const

◆ videoFormat()

String MediaInfo::videoFormat ( size_t streamNumber) const

Definition at line 146 of file MediaInfo.cpp.

147{
148 return MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Format",
150}

◆ videoHeight()

unsigned MediaInfo::videoHeight ( size_t streamNumber) const

Definition at line 161 of file MediaInfo.cpp.

162{
163 return UInt32::parse(
164 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Height",
166 10, 0LLU
167 );
168}

◆ videoWidth()

unsigned MediaInfo::videoWidth ( size_t streamNumber) const

Definition at line 152 of file MediaInfo.cpp.

153{
154 return UInt32::parse(
155 MediaInfo_Get(__handle, MediaInfo_Stream_Video, streamNumber, L"Width",
157 10, 0LLU
158 );
159}

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