23#define __DCL_TRACE1_N __DCL_TRACE1
24#define __DCL_TRACE2_N __DCL_TRACE2
25#define __DCL_TRACE3_N __DCL_TRACE3
26#define __DCL_TRACE4_N __DCL_TRACE4
28#define __DCL_TRACE1_N(fmt, arg)
29#define __DCL_TRACE2_N(fmt, arg1, arg2)
30#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
31#define __DCL_TRACE4_N(fmt, arg1, arg2, arg3, arg4)
42 if (!MediaInfo_Module) {
45 if (!MediaInfo_Module) {
57 if (MediaInfo_Module) {
58 MediaInfoDLL_UnLoad();
65 if (!MediaInfo_Module) {
69 __handle = MediaInfo_New();
70 size_t r = MediaInfo_Open(__handle, _filename);
72 throw new IOException(_filename, L
"MediaInfo Open Failed");
78 MediaInfo_Close(__handle);
79 MediaInfo_Delete(__handle);
84 String
r = MediaInfo_Inform(__handle, 0);
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)
100 String
r = MediaInfo_Option(__handle, _option, _value ? _value : L
"");
284static const wchar_t* __formatToType__[] = {
285 L
"ShockWave", L
"x-shockwave-flash"
286 , L
"Flash Video", L
"x-flv"
288 , L
"MPEG Audio", L
"mpeg"
289 , L
"MPEG Video", L
"mpeg"
290 , L
"CDXA/MPEG-PS", L
"mp2p"
291 , L
"MPEG-PS", L
"mp2p"
300 return L
"image/" +
format().toLowerCase();
304 const wchar_t* type =
NULL;
305 for (
size_t i = 0; i <
__countof(__formatToType__,
wchar_t*);
307 if (
format.compareNoCase(__formatToType__[i]) == 0) {
308 type = __formatToType__[i + 1];
327 r = L
"application/octet-stream";
DCLCAPI int __dlerror(String &r)
#define __countof(array, type)
#define __DCL_THROWS2(e1, e2)
#define __DCL_VERIFY(expr)
#define __DCL_ASSERT(expr)
static uint32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
static uint64_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)