Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Dlang
mediainfo-d
Commits
ac9525a6
Commit
ac9525a6
authored
May 15, 2019
by
Carsten Schlote
Browse files
Added the C++ examples as hintto re-add dynloader support asap.
parent
7b0c812e
Changes
2
Hide whitespace changes
Inline
Side-by-side
examples/HowToUse.cpp
0 → 100644
View file @
ac9525a6
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Example for MediaInfoLib
// Command line version
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <string>
#include <iostream>
#include "ZenLib/Ztring.h" //Note : I need it for universal atoi, but you have not to use it for be able to use MediaInfoLib
#include "MediaInfo/MediaInfo.h"
using
namespace
MediaInfoLib
;
using
namespace
ZenLib
;
int
main
(
int
argc
,
char
*
argv
[])
{
//Information about MediaInfo
MediaInfo
MI
;
ZenLib
::
Ztring
To_Display
=
MI
.
Option
(
__T
(
"Info_Version"
),
__T
(
"0.7.0.0;MediaInfoDLL_Example_MSVC;0.7.0.0"
)).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Info_Parameters
\r\n
"
);
To_Display
+=
MI
.
Option
(
__T
(
"Info_Parameters"
)).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Info_Capacities
\r\n
"
);
To_Display
+=
MI
.
Option
(
__T
(
"Info_Capacities"
)).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Info_Codecs
\r\n
"
);
To_Display
+=
MI
.
Option
(
__T
(
"Info_Codecs"
)).
c_str
();
//An example of how to use the library
To_Display
+=
__T
(
"
\r\n\r\n
Open
\r\n
"
);
MI
.
Open
(
__T
(
"Example.ogg"
));
To_Display
+=
__T
(
"
\r\n\r\n
Inform with Complete=false
\r\n
"
);
MI
.
Option
(
__T
(
"Complete"
));
To_Display
+=
MI
.
Inform
().
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Inform with Complete=true
\r\n
"
);
MI
.
Option
(
__T
(
"Complete"
),
__T
(
"1"
));
To_Display
+=
MI
.
Inform
().
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Custom Inform
\r\n
"
);
MI
.
Option
(
__T
(
"Inform"
),
__T
(
"General;Example : FileSize=%FileSize%"
));
To_Display
+=
MI
.
Inform
().
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=General and Parameter=
\"
FileSize
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
__T
(
"FileSize"
),
Info_Text
,
Info_Name
).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
GetI with Stream=General and Parameter=46
\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
46
,
Info_Text
).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Count_Get with StreamKind=Stream_Audio
\r\n
"
);
To_Display
+=
ZenLib
::
Ztring
::
ToZtring
(
MI
.
Count_Get
(
Stream_Audio
,
-
1
));
//Warning : this is an integer
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=General and Parameter=
\"
AudioCount
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
__T
(
"AudioCount"
),
Info_Text
,
Info_Name
).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=Audio and Parameter=
\"
StreamCount
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_Audio
,
0
,
__T
(
"StreamCount"
),
Info_Text
,
Info_Name
).
c_str
();
To_Display
+=
__T
(
"
\r\n\r\n
Close
\r\n
"
);
MI
.
Close
();
std
::
cout
<<
To_Display
.
To_Local
().
c_str
()
<<
std
::
endl
;
return
0
;
}
//---------------------------------------------------------------------------
examples/HowToUse_Dll.cpp
0 → 100644
View file @
ac9525a6
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Example for MediaInfoLib
// Command line version
// g++ HowToUse_Dll.cpp -l mediainfo -l dl -o HowToUse_Dll
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#ifdef MEDIAINFO_LIBRARY
#include "MediaInfo/MediaInfo.h" //Staticly-loaded library (.lib or .a or .so)
#define MediaInfoNameSpace MediaInfoLib;
#else //MEDIAINFO_LIBRARY
#include "MediaInfoDLL/MediaInfoDLL.h" //Dynamicly-loaded library (.dll or .so)
#define MediaInfoNameSpace MediaInfoDLL;
#endif //MEDIAINFO_LIBRARY
#include <iostream>
#include <iomanip>
using
namespace
MediaInfoNameSpace
;
#ifdef __MINGW32__
#ifdef _UNICODE
#define _itot _itow
#else //_UNICODE
#define _itot itoa
#endif //_UNICODE
#endif //__MINGW32
int
main
(
int
argc
,
Char
*
argv
[])
{
//Information about MediaInfo
MediaInfo
MI
;
String
To_Display
=
MI
.
Option
(
__T
(
"Info_Version"
),
__T
(
"0.7.13;MediaInfoDLL_Example_MSVC;0.7.13"
));
To_Display
+=
__T
(
"
\r\n\r\n
Info_Parameters
\r\n
"
);
To_Display
+=
MI
.
Option
(
__T
(
"Info_Parameters"
));
To_Display
+=
__T
(
"
\r\n\r\n
Info_Codecs
\r\n
"
);
To_Display
+=
MI
.
Option
(
__T
(
"Info_Codecs"
));
//An example of how to use the library
To_Display
+=
__T
(
"
\r\n\r\n
Open
\r\n
"
);
//~ MI.Open(__T("Example.ogg"));
String
filename
=
argv
[
1
];
MI
.
Open
(
filename
);
To_Display
+=
__T
(
"
\r\n\r\n
Inform with Complete=false
\r\n
"
);
MI
.
Option
(
__T
(
"Complete"
));
To_Display
+=
MI
.
Inform
();
To_Display
+=
__T
(
"
\r\n\r\n
Inform with Complete=true
\r\n
"
);
MI
.
Option
(
__T
(
"Complete"
),
__T
(
"1"
));
To_Display
+=
MI
.
Inform
();
To_Display
+=
__T
(
"
\r\n\r\n
Custom Inform
\r\n
"
);
MI
.
Option
(
__T
(
"Inform"
),
__T
(
"General;Example : FileSize=%FileSize%"
));
To_Display
+=
MI
.
Inform
();
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=General and Parameter=
\"
FileSize
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
__T
(
"FileSize"
),
Info_Text
,
Info_Name
);
To_Display
+=
__T
(
"
\r\n\r\n
GetI with Stream=General and Parameter=46
\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
46
,
Info_Text
);
To_Display
+=
__T
(
"
\r\n\r\n
Count_Get with StreamKind=Stream_Audio
\r\n
"
);
#ifdef __MINGW32__
Char
*
C1
=
new
Char
[
33
];
_itot
(
MI
.
Count_Get
(
Stream_Audio
),
C1
,
10
);
To_Display
+=
C1
;
delete
[]
C1
;
#else
toStringStream
SS
;
SS
<<
std
::
setbase
(
10
)
<<
MI
.
Count_Get
(
Stream_Audio
);
To_Display
+=
SS
.
str
();
#endif
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=General and Parameter=
\"
AudioCount
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_General
,
0
,
__T
(
"AudioCount"
),
Info_Text
,
Info_Name
);
To_Display
+=
__T
(
"
\r\n\r\n
Get with Stream=Audio and Parameter=
\"
StreamCount
\"\r\n
"
);
To_Display
+=
MI
.
Get
(
Stream_Audio
,
0
,
__T
(
"StreamCount"
),
Info_Text
,
Info_Name
);
To_Display
+=
__T
(
"
\r\n\r\n
Close
\r\n
"
);
MI
.
Close
();
#ifdef _UNICODE
std
::
wcout
<<
To_Display
;
#else
std
::
cout
<<
To_Display
;
#endif
return
0
;
}
//***************************************************************************
// By buffer example
//***************************************************************************
/*
//---------------------------------------------------------------------------
//Note: you can replace file operations by your own buffer management class
#include <stdio.h>
int main (int argc, Char *argv[])
{
//From: preparing an example file for reading
FILE* F=fopen("Example.ogg", "rb"); //You can use something else than a file
if (F==0)
return 1;
//From: preparing a memory buffer for reading
unsigned char* From_Buffer=new unsigned char[7*188]; //Note: you can do your own buffer
size_t From_Buffer_Size; //The size of the read file buffer
//From: retrieving file size
fseek(F, 0, SEEK_END);
long F_Size=ftell(F);
fseek(F, 0, SEEK_SET);
//Initializing MediaInfo
MediaInfo MI;
//Preparing to fill MediaInfo with a buffer
MI.Open_Buffer_Init(F_Size, 0);
//The parsing loop
do
{
//Reading data somewhere, do what you want for this.
From_Buffer_Size=fread(From_Buffer, 1, 7*188, F);
//Sending the buffer to MediaInfo
size_t Status=MI.Open_Buffer_Continue(From_Buffer, From_Buffer_Size);
if (Status&0x08) //Bit3=Finished
break;
//Testing if there is a MediaInfo request to go elsewhere
if (MI.Open_Buffer_Continue_GoTo_Get()!=(MediaInfo_int64u)-1)
{
fseek(F, (long)MI.Open_Buffer_Continue_GoTo_Get(), SEEK_SET); //Position the file
MI.Open_Buffer_Init(F_Size, ftell(F)); //Informing MediaInfo we have seek
}
}
while (From_Buffer_Size>0);
//Finalizing
MI.Open_Buffer_Finalize(); //This is the end of the stream, MediaInfo must finnish some work
//Get() example
String To_Display=MI.Get(Stream_General, 0, __T("Format"));
#ifdef _UNICODE
std::wcout << To_Display;
#else
std::cout << To_Display;
#endif
}
*/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment