AVBlocks for C++  1.19
Audio and Video Software Development Kit
MediaInfo Class Referenceabstract

Analyzes a file or a stream and provides information about its type and properties. More...

Inheritance diagram for MediaInfo:
Reference

Public Member Functions

virtual const
primo::error::ErrorInfo
error () const =0
 Returns a detailed error information for the last load operation. More...
 
virtual const char_t * inputFile () const =0
 Returns the input file previously set via setInputFile(). More...
 
virtual primo::StreaminputStream () const =0
 Returns the input stream previously set via setInputStream(). More...
 
virtual bool_t isReady ()=0
 Specifies if stream info and metadata has been loaded / parsed. More...
 
virtual bool_t load ()=0
 Analyzes the input specified by setInputFile() or setInputStream() and loads the information in the MediaInfo object. More...
 
virtual primo::codecs::Metadatametadata () const =0
 Returns the metadata for the input. More...
 
 PRIMO_DEPRECATED ("primo::avblocks::MediaInfo::setInputType is deprecated. Please use primo::avblocks::MediaInfo::setStreamType instead.") virtual void setInputType(primo
 
virtual bool_t push (primo::codecs::MediaBuffer *inputBuffer)=0
 Pushes input data to the MediaInfo. More...
 
virtual void setInputFile (const char_t *filename)=0
 Sets the input that should be analyzed. More...
 
virtual void setInputStream (primo::Stream *stream)=0
 Sets the input stream that should be analyzed. More...
 
virtual PRIMO_DEPRECATED("primo::avblocks::MediaInfo::inputType
is deprecated. Please use
primo::avblocks::MediaInfo::streamType
instead.") virtual primo void 
setStreamType (primo::codecs::StreamType::Enum streamType)=0
 Forces a specific stream type. More...
 
virtual
primo::codecs::StreamInfoEnum
streams () const =0
 Returns a collection of StreamInfo objects describing the audio and video streams (tracks) found in the input. More...
 
virtual
primo::codecs::StreamSubType::Enum 
streamSubType () const =0
 Returns the stream subtype detected by MediaInfo. More...
 
virtual
primo::codecs::StreamType::Enum 
streamType () const =0
 Returns the stream type previously set via setStreamType() or the one detected by MediaInfo. More...
 
- Public Member Functions inherited from Reference
virtual int32_t release () const =0
 Releases the instance. More...
 
virtual int32_t retain () const =0
 Retains the instance. More...
 
virtual int32_t retainCount () const =0
 Returns the current reference count. More...
 

Protected Member Functions

 ~MediaInfo ()
 This object can be destroyed only by the AVBlocks library.
 

Detailed Description

Analyzes a file or a stream and provides information about its type and properties.

Member Function Documentation

virtual const primo::error::ErrorInfo* error ( ) const
pure virtual

Returns a detailed error information for the last load operation.

Returns
A pointer to an ErrorInfo object.
virtual const char_t* inputFile ( ) const
pure virtual

Returns the input file previously set via setInputFile().

Returns
A filename as an Unicode zero terminated string. Can be NULL if the source file is not set.
virtual primo::Stream* inputStream ( ) const
pure virtual

Returns the input stream previously set via setInputStream().

Returns
A Stream object. Can be NULL if the source stream is not set.
virtual bool_t isReady ( )
pure virtual

Specifies if stream info and metadata has been loaded / parsed.

See Also
MediaInfo::Push
virtual bool_t load ( )
pure virtual

Analyzes the input specified by setInputFile() or setInputStream() and loads the information in the MediaInfo object.

Returns
TRUE if the input is successfully analyzed, otherwise FALSE.

If this method is successful the information about the detected media streams (tracks) and metadata can be obtained from MediaInfo.

    @see MediaInfo::streams
    @see MediaInfo::metadata
virtual primo::codecs::Metadata* metadata ( ) const
pure virtual

Returns the metadata for the input.

Returns
A pointer to a Metadata object. Can be NULL if the input has no metadata.

Normally the caller is not required and should not release the returned object. However it is allowed to retain the Metadata object and it will be valid even when the MediaInfo instance is destroyed. In all cases when the caller retains the returned object it should release it when it is not needed anymore.

See Also
Object Management
PRIMO_DEPRECATED ( "primo::avblocks::MediaInfo::setInputType is deprecated. Please use primo::avblocks::MediaInfo::setStreamType instead."  )
Note
Deprecated. Please use primo::avblocks::MediaInfo::setStreamType instead.

References MediaInfo::setStreamType().

virtual bool_t push ( primo::codecs::MediaBuffer inputBuffer)
pure virtual

Pushes input data to the MediaInfo.

Parameters
inputBuffer[in] A pointer to a MediaBuffer object that contains the input data.
Returns
TRUE The MediaInfo has successfully processed the input data, otherwise FALSE.
Remarks
In order to use this method the InputType must be set.
See Also
MediaInfo::isReady
Note
Supported stream types: StreamType::MPEG1_Video
StreamType::MPEG2_Video
StreamType::H264
StreamType::MPEG_TS
virtual void setInputFile ( const char_t *  filename)
pure virtual

Sets the input that should be analyzed.

Parameters
filename[in] a filename as an Unicode zero terminated string. If NULL the filename is cleared. When not NULL the filename is copied internally and is not required to be valid after the method returns.
virtual void setInputStream ( primo::Stream stream)
pure virtual

Sets the input stream that should be analyzed.

This is an alternative to setInputFile().

Parameters
stream[in] A pointer to a Stream object. If NULL the input stream is cleared. Internally the Stream object is retained by MediaInfo, so it is safe to release it after this method returns.

MediaInfo will use the input file when both an input file and input stream are set.

See Also
Object Management
virtual PRIMO_DEPRECATED ("primo::avblocks::MediaInfo::inputType is deprecated. Please use primo::avblocks::MediaInfo::streamType instead.") virtual primo void setStreamType ( primo::codecs::StreamType::Enum  streamType)
pure virtual

Forces a specific stream type.

Note
Deprecated. Please use primo::avblocks::MediaInfo::streamType instead.
     @param streamType [in] stream type such as AVI, WAV, MP4, etc.

     If the input is a file and the stream type is not set, the stream type is deduced from the filename extension.
If the input is a stream, MediaInfo requires the stream type to be specified. If the stream type is set to something other than StreamType::Unknown, it takes precedence and is used by MediaInfo regardless of the detected stream type.

Referenced by MediaInfo::PRIMO_DEPRECATED().

virtual primo::codecs::StreamInfoEnum* streams ( ) const
pure virtual

Returns a collection of StreamInfo objects describing the audio and video streams (tracks) found in the input.

Returns
A read-only collection of StreamInfo objects. Each StreamInfo object in the collection represents a stream (track) in the analyzed input.

Normally the caller is not required and should not release the returned object. However it is allowed to retain the collection and it will be valid even when the MediaInfo instance is destroyed. In all cases when the caller retains the returned collection it should release it when it is not needed anymore.

See Also
Object Management
virtual primo::codecs::StreamSubType::Enum streamSubType ( ) const
pure virtual

Returns the stream subtype detected by MediaInfo.

Returns
input stream subtype. The default value is StreamSubType::Unknown.
virtual primo::codecs::StreamType::Enum streamType ( ) const
pure virtual

Returns the stream type previously set via setStreamType() or the one detected by MediaInfo.

Returns
input stream type. The default value is StreamType::Unknown.