AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
avtranscoder::FileProperties Class Reference

#include <FileProperties.hpp>

Public Member Functions

 FileProperties (const FormatContext &formatContext)
 Analayse a file from its FormatContext. More...
 
void extractStreamProperties (IProgress &progress, const EAnalyseLevel level)
 Relaunch streams analysis with a specific level. More...
 
std::string getFilename () const
 
std::string getFormatName () const
 A comma separated list of short names for the format, or empty if unknown. More...
 
std::string getFormatLongName () const
 Descriptive name for the format, meant to be more human-readable than name, or empty if unknown. More...
 
bool isRawFormat () const
 Is there a container, or a raw bitstreams without access to timing information. More...
 
std::string getFormatMimeType () const
 Comma-separated list of mime types, or empty if unknown. More...
 
size_t getProgramsCount () const
 
double getStartTime () const
 
float getDuration () const
 in seconds More...
 
size_t getBitRate () const
 total stream bitrate in bit/s, 0 if not available (result of a computation by ffmpeg) More...
 
size_t getPacketSize () const
 
const PropertyVectorgetMetadatas () const
 
size_t getNbStreams () const
 
size_t getNbVideoStreams () const
 
size_t getNbAudioStreams () const
 
size_t getNbDataStreams () const
 
size_t getNbSubtitleStreams () const
 
size_t getNbAttachementStreams () const
 
size_t getNbUnknownStreams () const
 
const FormatContextgetFormatContext ()
 
const AVFormatContext & getAVFormatContext ()
 
std::string allPropertiesAsJson () const
 Return all properties as a json format. More...
 
std::string asJson () const
 Return all format properties as a json format. More...
 
PropertyMap asMap () const
 Return format properties as a map (name of property, value) More...
 
PropertyVector asVector () const
 Return format properties as a vector (name of property: value) More...
 
PropertyVectorfillVector (PropertyVector &data) const
 To avoid copy of the vector. More...
 
const
avtranscoder::StreamProperties
getStreamPropertiesWithIndex (const size_t streamIndex) const
 
const std::vector
< avtranscoder::StreamProperties * > 
getStreamProperties () const
 
const std::vector
< avtranscoder::VideoProperties > & 
getVideoProperties () const
 
const std::vector
< avtranscoder::AudioProperties > & 
getAudioProperties () const
 
const std::vector
< avtranscoder::DataProperties > & 
getDataProperties () const
 
const std::vector
< avtranscoder::SubtitleProperties > & 
getSubtitleProperties () const
 
const std::vector
< avtranscoder::AttachementProperties > & 
getAttachementProperties () const
 
const std::vector
< avtranscoder::UnknownProperties > & 
getUnknownProperties () const
 

Private Member Functions

template<typename T >
void addProperty (PropertyVector &data, const std::string &key, T(FileProperties::*getter)(void) const) const
 
void clearStreamProperties ()
 Clear all array of stream properties. More...
 

Private Attributes

const FormatContext_formatContext
 Has link (no ownership) More...
 
const AVFormatContext * _avFormatContext
 Has link (no ownership) More...
 
std::map< size_t,
StreamProperties * > 
_streams
 Map of properties per stream index (of all types) - only references to the following properties. More...
 
std::vector< VideoProperties_videoStreams
 Array of properties per video stream. More...
 
std::vector< AudioProperties_audioStreams
 Array of properties per audio stream. More...
 
std::vector< DataProperties_dataStreams
 Array of properties per data stream. More...
 
std::vector< SubtitleProperties_subtitleStreams
 Array of properties per subtitle stream. More...
 
std::vector
< AttachementProperties
_attachementStreams
 Array of properties per attachement stream. More...
 
std::vector< UnknownProperties_unknownStreams
 Array of properties per unknown stream. More...
 
PropertyVector _metadatas
 

Detailed Description

Definition at line 24 of file FileProperties.hpp.

Constructor & Destructor Documentation

avtranscoder::FileProperties::FileProperties ( const FormatContext formatContext)

Analayse a file from its FormatContext.

Note
The default streams analyse level is eAnalyseLevelHeader
See also
FormatContext

Definition at line 13 of file FileProperties.cpp.

References _avFormatContext, _metadatas, avtranscoder::eAnalyseLevelHeader, extractStreamProperties(), and avtranscoder::detail::fillMetadataDictionnary().

Member Function Documentation

template<typename T >
void avtranscoder::FileProperties::addProperty ( PropertyVector data,
const std::string &  key,
T(FileProperties::*)(void) const  getter 
) const
inlineprivate
std::string avtranscoder::FileProperties::allPropertiesAsJson ( ) const

Return all properties as a json format.

Definition at line 290 of file FileProperties.cpp.

References _attachementStreams, _audioStreams, _dataStreams, _subtitleStreams, _unknownStreams, _videoStreams, asJson(), and avtranscoder::json::JsonStreamWriter::build().

Referenced by main().

std::string avtranscoder::FileProperties::asJson ( ) const

Return all format properties as a json format.

Definition at line 281 of file FileProperties.cpp.

References asMap(), and avtranscoder::json::JsonStreamWriter::build().

Referenced by allPropertiesAsJson().

PropertyMap avtranscoder::FileProperties::asMap ( ) const

Return format properties as a map (name of property, value)

Definition at line 268 of file FileProperties.cpp.

References asVector().

Referenced by asJson().

PropertyVector avtranscoder::FileProperties::asVector ( ) const

Return format properties as a vector (name of property: value)

Definition at line 234 of file FileProperties.cpp.

References fillVector().

Referenced by asMap(), and avtranscoder::operator<<().

void avtranscoder::FileProperties::clearStreamProperties ( )
private

Clear all array of stream properties.

Definition at line 362 of file FileProperties.cpp.

References _attachementStreams, _audioStreams, _dataStreams, _streams, _subtitleStreams, _unknownStreams, and _videoStreams.

Referenced by extractStreamProperties().

void avtranscoder::FileProperties::extractStreamProperties ( IProgress progress,
const EAnalyseLevel  level 
)
const std::vector<avtranscoder::AttachementProperties>& avtranscoder::FileProperties::getAttachementProperties ( ) const
inline

Definition at line 78 of file FileProperties.hpp.

Referenced by avtranscoder::operator<<().

const std::vector<avtranscoder::AudioProperties>& avtranscoder::FileProperties::getAudioProperties ( ) const
inline

Definition at line 75 of file FileProperties.hpp.

Referenced by avtranscoder::operator<<().

const AVFormatContext& avtranscoder::FileProperties::getAVFormatContext ( )
inline

Definition at line 83 of file FileProperties.hpp.

size_t avtranscoder::FileProperties::getBitRate ( ) const

total stream bitrate in bit/s, 0 if not available (result of a computation by ffmpeg)

Definition at line 192 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

const std::vector<avtranscoder::DataProperties>& avtranscoder::FileProperties::getDataProperties ( ) const
inline

Definition at line 76 of file FileProperties.hpp.

Referenced by avtranscoder::operator<<().

float avtranscoder::FileProperties::getDuration ( ) const

in seconds

Definition at line 185 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

std::string avtranscoder::FileProperties::getFilename ( ) const

Definition at line 129 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

const FormatContext& avtranscoder::FileProperties::getFormatContext ( )
inline

Definition at line 63 of file FileProperties.hpp.

std::string avtranscoder::FileProperties::getFormatLongName ( ) const

Descriptive name for the format, meant to be more human-readable than name, or empty if unknown.

Definition at line 143 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

std::string avtranscoder::FileProperties::getFormatMimeType ( ) const

Comma-separated list of mime types, or empty if unknown.

Definition at line 160 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

std::string avtranscoder::FileProperties::getFormatName ( ) const

A comma separated list of short names for the format, or empty if unknown.

Definition at line 136 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector(), and isRawFormat().

const PropertyVector& avtranscoder::FileProperties::getMetadatas ( ) const
inline

Definition at line 53 of file FileProperties.hpp.

size_t avtranscoder::FileProperties::getNbAttachementStreams ( ) const
inline

Definition at line 60 of file FileProperties.hpp.

Referenced by fillVector(), and avtranscoder::operator<<().

size_t avtranscoder::FileProperties::getNbAudioStreams ( ) const
inline

Definition at line 57 of file FileProperties.hpp.

Referenced by fillVector(), and avtranscoder::operator<<().

size_t avtranscoder::FileProperties::getNbDataStreams ( ) const
inline

Definition at line 58 of file FileProperties.hpp.

Referenced by fillVector(), and avtranscoder::operator<<().

size_t avtranscoder::FileProperties::getNbStreams ( ) const

Definition at line 227 of file FileProperties.cpp.

References _avFormatContext.

Referenced by avtranscoder::Transcoder::addInputFile(), fillVector(), and isRawFormat().

size_t avtranscoder::FileProperties::getNbSubtitleStreams ( ) const
inline

Definition at line 59 of file FileProperties.hpp.

Referenced by fillVector(), and avtranscoder::operator<<().

size_t avtranscoder::FileProperties::getNbUnknownStreams ( ) const
inline

Definition at line 61 of file FileProperties.hpp.

Referenced by fillVector(), and avtranscoder::operator<<().

size_t avtranscoder::FileProperties::getNbVideoStreams ( ) const
inline
size_t avtranscoder::FileProperties::getPacketSize ( ) const

Definition at line 199 of file FileProperties.cpp.

References _avFormatContext.

size_t avtranscoder::FileProperties::getProgramsCount ( ) const

Definition at line 171 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

double avtranscoder::FileProperties::getStartTime ( ) const

Definition at line 178 of file FileProperties.cpp.

References _avFormatContext.

Referenced by fillVector().

const std::vector< avtranscoder::StreamProperties * > avtranscoder::FileProperties::getStreamProperties ( ) const

Definition at line 217 of file FileProperties.cpp.

References _streams.

Referenced by avtranscoder::Transcoder::add(), and isRawFormat().

const avtranscoder::StreamProperties & avtranscoder::FileProperties::getStreamPropertiesWithIndex ( const size_t  streamIndex) const
const std::vector<avtranscoder::SubtitleProperties>& avtranscoder::FileProperties::getSubtitleProperties ( ) const
inline

Definition at line 77 of file FileProperties.hpp.

Referenced by avtranscoder::operator<<().

const std::vector<avtranscoder::UnknownProperties>& avtranscoder::FileProperties::getUnknownProperties ( ) const
inline

Definition at line 79 of file FileProperties.hpp.

Referenced by avtranscoder::operator<<().

const std::vector<avtranscoder::VideoProperties>& avtranscoder::FileProperties::getVideoProperties ( ) const
inline

Definition at line 74 of file FileProperties.hpp.

Referenced by avtranscoder::InputFile::getFps(), and avtranscoder::operator<<().

bool avtranscoder::FileProperties::isRawFormat ( ) const

Is there a container, or a raw bitstreams without access to timing information.

Definition at line 150 of file FileProperties.cpp.

References getFormatName(), getNbStreams(), and getStreamProperties().

Referenced by extractStreamProperties().

Field Documentation

std::vector<AttachementProperties> avtranscoder::FileProperties::_attachementStreams
private

Array of properties per attachement stream.

Definition at line 121 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().

std::vector<AudioProperties> avtranscoder::FileProperties::_audioStreams
private

Array of properties per audio stream.

Definition at line 118 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().

const AVFormatContext* avtranscoder::FileProperties::_avFormatContext
private
std::vector<DataProperties> avtranscoder::FileProperties::_dataStreams
private

Array of properties per data stream.

Definition at line 119 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().

const FormatContext* avtranscoder::FileProperties::_formatContext
private

Has link (no ownership)

Definition at line 111 of file FileProperties.hpp.

Referenced by extractStreamProperties().

PropertyVector avtranscoder::FileProperties::_metadatas
private

Definition at line 124 of file FileProperties.hpp.

Referenced by FileProperties(), and fillVector().

std::map<size_t, StreamProperties*> avtranscoder::FileProperties::_streams
private

Map of properties per stream index (of all types) - only references to the following properties.

Definition at line 115 of file FileProperties.hpp.

Referenced by clearStreamProperties(), extractStreamProperties(), getStreamProperties(), and getStreamPropertiesWithIndex().

std::vector<SubtitleProperties> avtranscoder::FileProperties::_subtitleStreams
private

Array of properties per subtitle stream.

Definition at line 120 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().

std::vector<UnknownProperties> avtranscoder::FileProperties::_unknownStreams
private

Array of properties per unknown stream.

Definition at line 122 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().

std::vector<VideoProperties> avtranscoder::FileProperties::_videoStreams
private

Array of properties per video stream.

Definition at line 117 of file FileProperties.hpp.

Referenced by allPropertiesAsJson(), clearStreamProperties(), and extractStreamProperties().


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