MediaInfoLib 0.7
Public Member Functions | Static Public Member Functions | List of all members
MediaInfoLib::MediaInfo Class Reference

MediaInfo. More...

#include <MediaInfo.h>

Public Member Functions

size_t Open (const String &File_Name)
 Open a file.
 
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)
 Open a buffer.
 
size_t Open_Buffer_Init (ZenLib::int64u File_Size=(ZenLib::int64u) -1, ZenLib::int64u File_Offset=0)
 Open a stream (Init)
 
size_t Open_Buffer_Continue (const ZenLib::int8u *Buffer, size_t Buffer_Size)
 Open a stream (Continue)
 
ZenLib::int64u Open_Buffer_Continue_GoTo_Get ()
 Open a stream (Get the needed file Offset)
 
size_t Open_Buffer_Finalize ()
 Open a stream (Finalize)
 
size_t Open_NextPacket ()
 Read one packet (if "PerPacket" mode is set)
 
size_t Save ()
 (NOT IMPLEMENTED YET) Save the file
 
void Close ()
 Close a file.
 
String Inform (size_t Reserved=0)
 Get all details about a file.
 
String Get (stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t InfoKind=Info_Text)
 Get a piece of information about a file (parameter is an integer)
 
String Get (stream_t StreamKind, size_t StreamNumber, const String &Parameter, info_t InfoKind=Info_Text, info_t SearchKind=Info_Name)
 Get a piece of information about a file (parameter is a string)
 
size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, size_t Parameter, const String &OldValue=String())
 (NOT IMPLEMENTED YET) Set a piece of information about a file (parameter is an int)
 
size_t Set (const String &ToSet, stream_t StreamKind, size_t StreamNumber, const String &Parameter, const String &OldValue=String())
 (NOT IMPLEMENTED YET) Set information about a file (parameter is a string)
 
size_t Output_Buffer_Get (const String &Value)
 Output the written size when "File_Duplicate" option is used.
 
size_t Output_Buffer_Get (size_t Pos)
 Output the written size when "File_Duplicate" option is used.
 
String Option (const String &Option, const String &Value=String())
 
size_t State_Get ()
 (NOT IMPLEMENTED YET) Get the state of the library
 
size_t Count_Get (stream_t StreamKind, size_t StreamNumber=(size_t) -1)
 Count of streams of a stream kind (StreamNumber not filled), or count of piece of information in this stream.
 

Static Public Member Functions

static String Option_Static (const String &Option, const String &Value=String())
 

Detailed Description

MediaInfo.

Version
0.7

Definition at line 50 of file MediaInfo.h.

Member Function Documentation

◆ Close()

void MediaInfoLib::MediaInfo::Close ( )

Close a file.

Close a file opened before with Open() (without saving)

Warning
without have saved before, modifications are lost

◆ Count_Get()

size_t MediaInfoLib::MediaInfo::Count_Get ( stream_t  StreamKind,
size_t  StreamNumber = (size_t) -1 
)

Count of streams of a stream kind (StreamNumber not filled), or count of piece of information in this stream.

Parameters
StreamKindKind of stream (general, video, audio...)
StreamNumberStream number in this kind of stream (first, second...)
Returns
The count of fields for this stream kind / stream number if stream number is provided, else the count of streams for this stream kind

◆ Get() [1/2]

String MediaInfoLib::MediaInfo::Get ( stream_t  StreamKind,
size_t  StreamNumber,
const String Parameter,
info_t  InfoKind = Info_Text,
info_t  SearchKind = Info_Name 
)

Get a piece of information about a file (parameter is a string)

Get a piece of information about a file (parameter is a string)

Parameters
StreamKindKind of stream (general, video, audio...)
StreamNumberStream number in Kind of stream (first, second...)
ParameterParameter you are looking for in the stream (Codec, width, bitrate...), in string format ("Codec", "Width"...)
See MediaInfo::Option("Info_Parameters") to have the full list
InfoKindKind of information you want about the parameter (the text, the measure, the help...)
SearchKindWhere to look for the parameter
Returns
a string about information you search
an empty string if there is a problem

◆ Get() [2/2]

String MediaInfoLib::MediaInfo::Get ( stream_t  StreamKind,
size_t  StreamNumber,
size_t  Parameter,
info_t  InfoKind = Info_Text 
)

Get a piece of information about a file (parameter is an integer)

Get a piece of information about a file (parameter is an integer)

Parameters
StreamKindKind of stream (general, video, audio...)
StreamNumberStream number in Kind of stream (first, second...)
ParameterParameter you are looking for in the stream (Codec, width, bitrate...), in integer format (first parameter, second parameter...)
This integer is arbitarily assigned by the library, so its consistency should not be relied on, but is useful when looping through all the parameters
InfoKindKind of information you want about the parameter (the text, the measure, the help...)
Returns
a string about information you search
an empty string if there is a problem

◆ Inform()

String MediaInfoLib::MediaInfo::Inform ( size_t  Reserved = 0)

Get all details about a file.

Get all details about a file in one string

Parameters
ReservedReserved, do not use
Precondition
You can change default presentation with Inform_Set()
Returns
Text with information about the file

◆ Open() [1/2]

size_t MediaInfoLib::MediaInfo::Open ( const String File_Name)

Open a file.

Open a file and collect information about it (technical information and tags)

Parameters
File_NameFull name of file to open
Return values
0File not opened
1File opened

◆ Open() [2/2]

size_t MediaInfoLib::MediaInfo::Open ( const ZenLib::int8u *  Begin,
size_t  Begin_Size,
const ZenLib::int8u *  End = NULL,
size_t  End_Size = 0,
ZenLib::int64u  File_Size = 0 
)

Open a buffer.

Open a Buffer (Begin and end of the stream) and collect information about it (technical information and tags)

Parameters
BeginFirst bytes of the buffer
Begin_SizeSize of Begin
EndLast bytes of the buffer
End_SizeSize of End
File_SizeTotal size of the file
Return values
0File not opened
1File opened

◆ Open_Buffer_Continue()

size_t MediaInfoLib::MediaInfo::Open_Buffer_Continue ( const ZenLib::int8u *  Buffer,
size_t  Buffer_Size 
)

Open a stream (Continue)

Open a stream and collect information about it (technical information and tags)

Parameters
Bufferpointer to the stream
Buffer_SizeCount of bytes to read
Returns
a bitfield
bit 0: Is Accepted (format is known) bit 1: Is Filled (main data is collected) bit 2: Is Updated (some data have beed updated, example: duration for a real time MPEG-TS stream) bit 3: Is Finalized (No more data is needed, will not use further data) bit 4-15: Reserved bit 16-31: User defined

◆ Open_Buffer_Continue_GoTo_Get()

ZenLib::int64u MediaInfoLib::MediaInfo::Open_Buffer_Continue_GoTo_Get ( )

Open a stream (Get the needed file Offset)

Open a stream and collect information about it (technical information and tags)

Returns
the needed offset of the file
File size if no more bytes are needed

◆ Open_Buffer_Finalize()

size_t MediaInfoLib::MediaInfo::Open_Buffer_Finalize ( )

Open a stream (Finalize)

Open a stream and collect information about it (technical information and tags)

Return values
0failed
1succeed

◆ Open_Buffer_Init()

size_t MediaInfoLib::MediaInfo::Open_Buffer_Init ( ZenLib::int64u  File_Size = (ZenLib::int64u) -1,
ZenLib::int64u  File_Offset = 0 
)

Open a stream (Init)

Open a stream and collect information about it (technical information and tags)

Parameters
File_SizeEstimated file size
File_OffsetOffset of the file (if we don't have the beginning of the file)
Return values
0File not opened
1File opened

◆ Open_NextPacket()

size_t MediaInfoLib::MediaInfo::Open_NextPacket ( )

Read one packet (if "PerPacket" mode is set)

If Open() is used in "PerPacket" mode, parse only one packet and return

Returns
a bitfield
bit 0: A packet was read

◆ Option()

String MediaInfoLib::MediaInfo::Option ( const String Option,
const String Value = String() 
)

Configure or get information about MediaInfoLib

Parameters
OptionThe name of option
ValueThe value of option
Returns
Depend of the option: by default "" (nothing) means No, other means Yes
Postcondition
Known options are:
  • (NOT IMPLEMENTED YET) "BlockMethod": Configure when Open Method must return (default or not command not understood: "1")
    "0": Immediatly
    "1": After geting local information
    "2": When user interaction is needed, or whan Internet information is get
  • "Complete": For debug, configure if MediaInfoLib::Inform() show all information (doesn't care of InfoOption_NoShow tag): shows all information if true, shows only useful for user information if false (No by default)
  • "Complete_Get": return the state of "Complete"
  • "Language": Configure language (default language, and this object); Value is Description of language (format: "Column1;Colum2\n...) \n Column 1: Unique name ("Bytes", "Title") \n Column 2: translation ("Octets", "Titre") \n * "Language_Get": Get the language file in memory * "Language_Update": Configure language of this object only (for optimisation); Value is Description of language (format: "Column1;Colum2
    ...)
    Column 1: Unique name ("Bytes", "Title")
    Column 2: translation ("Octets", "Titre")
  • "Inform": Configure custom text, See MediaInfoLib::Inform() function; Description of views (format: "Column1;Colum2...) \n Column 1: code (11 lines: "General", "Video", "Audio", "Text", "Other", "Begin", "End", "Page_Begin", "Page_Middle", "Page_End") \n Column 2: The text to show (exemple: "Audio: FileName% is at BitRate/String%") \n * "ParseUnknownExtensions": Configure if MediaInfo parse files with unknown extension\n * "ParseUnknownExtensions_Get": Get if MediaInfo parse files with unknown extension\n * "ShowFiles": Configure if MediaInfo keep in memory files with specific kind of streams (or no streams); Value is Description of components (format: "Column1;Colum2
    ...)

    Column 1: code (available: "Nothing" for unknown format, "VideoAudio" for at least 1 video and 1 audio, "VideoOnly" for video streams only, "AudioOnly", "TextOnly")
    Column 2: "" (nothing) not keeping, other for keeping
  • (NOT IMPLEMENTED YET) "TagSeparator": Configure the separator if there are multiple same tags (" | " by default)
  • (NOT IMPLEMENTED YET) "TagSeparator_Get": return the state of "TagSeparator"
  • (NOT IMPLEMENTED YET) "Internet": Authorize Internet connection (Yes by default)
  • (NOT IMPLEMENTED YET) "Internet_Title_Get": When State=5000, give all possible titles for this file (one per line)
    Form: Author TagSeparator Title TagSeparator Year
    ...
  • (NOT IMPLEMENTED YET) "Internet_Title_Set": Set the Good title (same as given by Internet_Title_Get)
    Form: Author TagSeparator Title TagSeparator Year
  • "Info_Parameters": Information about what are known unique names for parameters
  • "Info_Parameters_CSV": Information about what are known unique names for parameters, in CSV format
  • "Info_Codecs": Information about which codec is known
  • "Info_Version": Information about the version of MediaInfoLib
  • "Info_Url": Information about where to find the last version

◆ Option_Static()

static String MediaInfoLib::MediaInfo::Option_Static ( const String Option,
const String Value = String() 
)
static

Configure or get information about MediaInfoLib

Parameters
OptionThe name of option
ValueThe value of option
Returns
Depend of the option: by default "" (nothing) means No, other means Yes
Postcondition
Known options are: See MediaInfo::Option()

◆ Output_Buffer_Get() [1/2]

size_t MediaInfoLib::MediaInfo::Output_Buffer_Get ( const String Value)

Output the written size when "File_Duplicate" option is used.

Output the written size when "File_Duplicate" option is used.

Parameters
ValueThe unique name of the duplicated stream (begin with "memory://")
Returns
The size of the used buffer

◆ Output_Buffer_Get() [2/2]

size_t MediaInfoLib::MediaInfo::Output_Buffer_Get ( size_t  Pos)

Output the written size when "File_Duplicate" option is used.

Output the written size when "File_Duplicate" option is used.

Parameters
PosThe order of calling
Returns
The size of the used buffer

◆ Save()

size_t MediaInfoLib::MediaInfo::Save ( )

(NOT IMPLEMENTED YET) Save the file

(NOT IMPLEMENTED YET) Save the file opened before with Open() (modifications of tags)

Return values
0failed
1suceed

◆ Set() [1/2]

size_t MediaInfoLib::MediaInfo::Set ( const String ToSet,
stream_t  StreamKind,
size_t  StreamNumber,
const String Parameter,
const String OldValue = String() 
)

(NOT IMPLEMENTED YET) Set information about a file (parameter is a string)

(NOT IMPLEMENTED YET) Set a piece of information about a file (parameter is a string)

Warning
Not yet implemented, do not use it
Parameters
ToSetPiece of information
StreamKindKind of stream (general, video, audio...)
StreamNumberStream number in Kind of stream (first, second...)
ParameterParameter you are looking for in the stream (Codec, width, bitrate...), in string format
OldValueThe old value of the parameter
if OldValue is empty and ToSet is filled: tag is added
if OldValue is filled and ToSet is filled: tag is replaced
if OldValue is filled and ToSet is empty: tag is deleted
Return values
>0succeed
0failed

◆ Set() [2/2]

size_t MediaInfoLib::MediaInfo::Set ( const String ToSet,
stream_t  StreamKind,
size_t  StreamNumber,
size_t  Parameter,
const String OldValue = String() 
)

(NOT IMPLEMENTED YET) Set a piece of information about a file (parameter is an int)

(NOT IMPLEMENTED YET) Set a piece of information about a file (parameter is an integer)

Warning
Not yet implemented, do not use it
Parameters
ToSetPiece of information
StreamKindKind of stream (general, video, audio...)
StreamNumberStream number in Kind of stream (first, second...)
ParameterParameter you are looking for in the stream (Codec, width, bitrate...), in integer format (first parameter, second parameter...)
OldValueThe old value of the parameter
if OldValue is empty and ToSet is filled: tag is added
if OldValue is filled and ToSet is filled: tag is replaced
if OldValue is filled and ToSet is empty: tag is deleted
Return values
>0succeed
0failed

◆ State_Get()

size_t MediaInfoLib::MediaInfo::State_Get ( )

(NOT IMPLEMENTED YET) Get the state of the library

Return values
<1000No information is available for the file yet
>=1000_<5000Only local (into the file) information is available, getting Internet information (titles only) is no finished yet
5000(only if Internet connection is accepted) User interaction is needed (use Option() with "Internet_Title_Get")
Warning: even there is only one possible, user interaction (or the software) is needed
>5000<=10000Only local (into the file) information is available, getting Internet information (all) is no finished yet
<10000Done

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