diff --git a/src/AvTranscoder/file/OutputFile.cpp b/src/AvTranscoder/file/OutputFile.cpp index 617c1867..ed49db83 100644 --- a/src/AvTranscoder/file/OutputFile.cpp +++ b/src/AvTranscoder/file/OutputFile.cpp @@ -216,9 +216,9 @@ bool OutputFile::endWrap( ) return true; } -void OutputFile::addMetadata( const MetadatasMap& dataMap ) +void OutputFile::addMetadata( const PropertiesMap& dataMap ) { - for( MetadatasMap::const_iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + for( PropertiesMap::const_iterator it = dataMap.begin(); it != dataMap.end(); ++it ) { addMetadata( it->first, it->second ); } diff --git a/src/AvTranscoder/file/OutputFile.hpp b/src/AvTranscoder/file/OutputFile.hpp index 52163e4c..97b2ab41 100644 --- a/src/AvTranscoder/file/OutputFile.hpp +++ b/src/AvTranscoder/file/OutputFile.hpp @@ -104,7 +104,7 @@ class AvExport OutputFile * @brief Add metadata to the output file. * @note Depending on the format, you are not sure to find your metadata after the transcode. */ - virtual void addMetadata( const MetadatasMap& dataMap ); + virtual void addMetadata( const PropertiesMap& dataMap ); virtual void addMetadata( const std::string& key, const std::string& value ); virtual void setVerbose( bool verbose = false ){ _verbose = verbose; } diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp b/src/AvTranscoder/mediaProperty/AttachementProperties.cpp index 0250d986..3745b2da 100644 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AttachementProperties.cpp @@ -11,9 +11,9 @@ AttachementProperties::AttachementProperties( const AVFormatContext* formatConte detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); } -MetadatasMap AttachementProperties::getDataMap() const +PropertiesMap AttachementProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", _streamId ); diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp index 9e5755ef..3b63aca2 100644 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp @@ -17,17 +17,19 @@ class AvExport AttachementProperties AttachementProperties( const AVFormatContext* formatContext, const size_t index ); size_t getStreamId() const { return _streamId; } - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return all attachement properties as a map (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamId; - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.cpp b/src/AvTranscoder/mediaProperty/AudioProperties.cpp index 751183d9..83e83c57 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.cpp @@ -1,5 +1,7 @@ #include "AudioProperties.hpp" +#include + extern "C" { #include #include @@ -124,9 +126,37 @@ std::string AudioProperties::getChannelDescription() const #endif } -MetadatasMap AudioProperties::getDataMap() const +size_t AudioProperties::getCodecId() const +{ + if( ! _codecContext ) + throw std::runtime_error( "unknown codec context" ); + return _codecContext->codec_id; +} + +size_t AudioProperties::getSampleRate() const +{ + if( ! _codecContext ) + throw std::runtime_error( "unknown codec context" ); + return _codecContext->sample_rate; +} + +size_t AudioProperties::getChannels() const +{ + if( ! _codecContext ) + throw std::runtime_error( "unknown codec context" ); + return _codecContext->channels; +} + +size_t AudioProperties::getBitRate() const +{ + if( ! _codecContext ) + throw std::runtime_error( "unknown codec context" ); + return _codecContext->bit_rate; +} + +PropertiesMap AudioProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", getStreamId() ); detail::add( dataMap, "codecId", getCodecId() ); diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.hpp b/src/AvTranscoder/mediaProperty/AudioProperties.hpp index bc2165f3..7d209d55 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.hpp @@ -29,16 +29,18 @@ class AvExport AudioProperties std::string getChannelName() const; std::string getChannelDescription() const; size_t getStreamId() const { return _streamId; } - size_t getCodecId() const { return _codecContext->codec_id; } - size_t getSampleRate() const { return _codecContext->sample_rate; } - size_t getChannels() const { return _codecContext->channels; } - size_t getBitRate() const { return _codecContext->bit_rate; } - MetadatasMap& getMetadatas() { return _metadatas; } + size_t getCodecId() const; + size_t getSampleRate() const; + size_t getChannels() const; + size_t getBitRate() const; + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } AVCodecContext& getAVCodecContext() { return *_codecContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return all audio properties as a map (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) @@ -46,7 +48,7 @@ class AvExport AudioProperties AVCodec* _codec; ///< Has link (no ownership) size_t _streamId; - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/DataProperties.cpp b/src/AvTranscoder/mediaProperty/DataProperties.cpp index 6043c44f..24f32578 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.cpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.cpp @@ -22,9 +22,9 @@ DataProperties::DataProperties( const AVFormatContext* formatContext, const size detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); } -MetadatasMap DataProperties::getDataMap() const +PropertiesMap DataProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", _streamId ); diff --git a/src/AvTranscoder/mediaProperty/DataProperties.hpp b/src/AvTranscoder/mediaProperty/DataProperties.hpp index 658f84a6..337f7ad9 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.hpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.hpp @@ -17,11 +17,13 @@ class AvExport DataProperties DataProperties( const AVFormatContext* formatContext, const size_t index ); size_t getStreamId() const { return _streamId; } - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return all data properties as a map (name of property: value) private: void detectAncillaryData(); @@ -30,7 +32,7 @@ class AvExport DataProperties const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamId; - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/FileProperties.cpp b/src/AvTranscoder/mediaProperty/FileProperties.cpp index 4636ca91..39221883 100644 --- a/src/AvTranscoder/mediaProperty/FileProperties.cpp +++ b/src/AvTranscoder/mediaProperty/FileProperties.cpp @@ -1,5 +1,7 @@ #include "FileProperties.hpp" +#include + namespace avtranscoder { @@ -16,10 +18,72 @@ FileProperties::FileProperties( const AVFormatContext* formatContext ) detail::fillMetadataDictionnary( _formatContext->metadata, _metadatas ); } +std::string FileProperties::getFilename() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->filename; +} + +std::string FileProperties::getFormatName() const +{ + if( ! _formatContext || ! _formatContext->iformat ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->iformat->name; +} + +std::string FileProperties::getFormatLongName() const +{ + if( ! _formatContext || ! _formatContext->iformat ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->iformat->long_name; +} + +size_t FileProperties::getProgramsCount() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->nb_programs; +} + +double FileProperties::getStartTime() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return 1.0 * (unsigned int)_formatContext->start_time / AV_TIME_BASE; +} + +double FileProperties::getDuration() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return 1.0 * _formatContext->duration / AV_TIME_BASE; +} + +size_t FileProperties::getBitRate() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->bit_rate; +} + +size_t FileProperties::getPacketSize() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->packet_size; +} + +size_t FileProperties::getNbStreams() const +{ + if( ! _formatContext ) + throw std::runtime_error( "unknown format context" ); + return _formatContext->nb_streams; +} -MetadatasMap FileProperties::getDataMap() const +PropertiesMap FileProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "filename", getFilename() ); detail::add( dataMap, "formatName", getFormatName() ); diff --git a/src/AvTranscoder/mediaProperty/FileProperties.hpp b/src/AvTranscoder/mediaProperty/FileProperties.hpp index 4e87b51f..70708ca5 100644 --- a/src/AvTranscoder/mediaProperty/FileProperties.hpp +++ b/src/AvTranscoder/mediaProperty/FileProperties.hpp @@ -25,19 +25,19 @@ class AvExport FileProperties public: FileProperties( const AVFormatContext* formatContext ); - std::string getFilename() const { return _formatContext->filename; } - std::string getFormatName() const { return _formatContext->iformat->name; } - std::string getFormatLongName() const { return _formatContext->iformat->long_name; } + std::string getFilename() const; + std::string getFormatName() const; + std::string getFormatLongName() const; - size_t getProgramsCount() const { return _formatContext->nb_programs; } - double getStartTime() const { return 1.0 * (unsigned int)_formatContext->start_time / AV_TIME_BASE; } - double getDuration() const { return 1.0 * _formatContext->duration / AV_TIME_BASE; } - size_t getBitRate() const { return _formatContext->bit_rate; } - size_t getPacketSize() const { return _formatContext->packet_size; } + size_t getProgramsCount() const; + double getStartTime() const; + double getDuration() const; + size_t getBitRate() const; + size_t getPacketSize() const; - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } - size_t getNbStreams() const { return _formatContext->nb_streams; } + size_t getNbStreams() const; size_t getNbVideoStreams() const { return _videoStreams.size(); } size_t getNbAudioStreams() const { return _audioStreams.size(); } size_t getNbDataStreams() const { return _dataStreams.size(); } @@ -58,9 +58,11 @@ class AvExport FileProperties std::vector< avtranscoder::UnknownProperties >& getUnknownPropertiesProperties() { return _unknownStreams; } const std::vector< avtranscoder::UnknownProperties >& getUnknownPropertiesProperties() const { return _unknownStreams; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return all file properties as a map (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) @@ -72,7 +74,7 @@ class AvExport FileProperties std::vector< AttachementProperties > _attachementStreams; ///< Array of properties per attachement stream std::vector< UnknownProperties > _unknownStreams; ///< Array of properties per unknown stream - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp b/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp index 8dd124ca..28dcb324 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp +++ b/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp @@ -11,9 +11,9 @@ SubtitleProperties::SubtitleProperties( const AVFormatContext* formatContext, co detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); } -MetadatasMap SubtitleProperties::getDataMap() const +PropertiesMap SubtitleProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", _streamId ); diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp index b08f69c8..b0430e86 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp +++ b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp @@ -17,17 +17,19 @@ class AvExport SubtitleProperties SubtitleProperties( const AVFormatContext* formatContext, const size_t index ); size_t getStreamId() const { return _streamId; } - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return all subtitle properties as a map (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamId; - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp b/src/AvTranscoder/mediaProperty/UnknownProperties.cpp index 386838a3..14d449e3 100644 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp +++ b/src/AvTranscoder/mediaProperty/UnknownProperties.cpp @@ -11,9 +11,9 @@ UnknownProperties::UnknownProperties( const AVFormatContext* formatContext, cons detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); } -MetadatasMap UnknownProperties::getDataMap() const +PropertiesMap UnknownProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", _streamId ); diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp index 3e07a357..ebb42717 100644 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp +++ b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp @@ -17,17 +17,19 @@ class AvExport UnknownProperties UnknownProperties( const AVFormatContext* formatContext, const size_t index ); size_t getStreamId() const { return _streamId; } - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif - MetadatasMap getDataMap() const; + PropertiesMap getPropertiesAsMap() const; ///< Return unknown properties as a map (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamId; - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index 84f04a4e..0ea701d2 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -7,9 +7,7 @@ extern "C" { } #include -#include #include -#include #ifdef _MSC_VER #include @@ -331,7 +329,6 @@ int64_t VideoProperties::getStartTimecode() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->timecode_frame_start; } @@ -395,7 +392,6 @@ size_t VideoProperties::getCodecId() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->codec_id; } @@ -403,7 +399,6 @@ size_t VideoProperties::getBitRate() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->bit_rate; } @@ -411,7 +406,6 @@ size_t VideoProperties::getMaxBitRate() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->rc_max_rate; } @@ -419,7 +413,6 @@ size_t VideoProperties::getMinBitRate() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->rc_min_rate; } @@ -427,7 +420,6 @@ size_t VideoProperties::getTicksPerFrame() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->ticks_per_frame; } @@ -435,7 +427,6 @@ size_t VideoProperties::getWidth() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->width; } @@ -443,7 +434,6 @@ size_t VideoProperties::getHeight() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->height; } @@ -451,7 +441,6 @@ size_t VideoProperties::getGopSize() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->gop_size; } @@ -459,7 +448,6 @@ size_t VideoProperties::getDtgActiveFormat() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->dtg_active_format; } @@ -467,7 +455,6 @@ size_t VideoProperties::getReferencesFrames() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->refs; } @@ -475,7 +462,6 @@ int VideoProperties::getProfile() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->profile; } @@ -483,7 +469,6 @@ int VideoProperties::getLevel() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return _codecContext->level; } @@ -491,7 +476,6 @@ size_t VideoProperties::getComponentsCount() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return _pixFmt->nb_components; } @@ -499,7 +483,6 @@ size_t VideoProperties::getChromaWidth() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return _pixFmt->log2_chroma_w; } @@ -507,7 +490,6 @@ size_t VideoProperties::getChromaHeight() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return _pixFmt->log2_chroma_h; } @@ -524,7 +506,6 @@ bool VideoProperties::hasBFrames() const { if( ! _codecContext ) throw std::runtime_error( "unknown codec context" ); - return (bool) _codecContext->has_b_frames; } @@ -532,7 +513,6 @@ bool VideoProperties::isIndexedColors() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return (bool) _pixFmt->flags & PIX_FMT_PAL; } @@ -540,7 +520,6 @@ bool VideoProperties::isBitWisePacked() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return (bool) _pixFmt->flags & PIX_FMT_BITSTREAM; } @@ -548,7 +527,6 @@ bool VideoProperties::isHardwareAccelerated() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return (bool) _pixFmt->flags & PIX_FMT_HWACCEL; } @@ -556,7 +534,6 @@ bool VideoProperties::isPlanar() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return (bool) _pixFmt->flags & PIX_FMT_PLANAR; } @@ -564,7 +541,6 @@ bool VideoProperties::isRgbPixelData() const { if( ! _pixFmt ) throw std::runtime_error( "unknown pixel format" ); - return (bool) _pixFmt->flags & PIX_FMT_RGB; } @@ -672,9 +648,9 @@ std::vector VideoProperties::getChannels() const return channels; } -MetadatasMap VideoProperties::getDataMap() const +PropertiesMap VideoProperties::getPropertiesAsMap() const { - MetadatasMap dataMap; + PropertiesMap dataMap; detail::add( dataMap, "streamId", getStreamId() ); detail::add( dataMap, "codecId", getCodecId() ); diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.hpp b/src/AvTranscoder/mediaProperty/VideoProperties.hpp index f5143d45..f38322b9 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.hpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.hpp @@ -81,7 +81,6 @@ class AvExport VideoProperties //@{ // Warning: Can acces these data when analyse first gop - // Construct the VideoProperties with level = eAnalyseLevelFull // @see EAnalyseLevel // @see analyseGopStructure bool isInterlaced() const { return _isInterlaced; } @@ -91,13 +90,15 @@ class AvExport VideoProperties std::vector getChannels() const; - MetadatasMap& getMetadatas() { return _metadatas; } + PropertiesMap& getMetadatas() { return _metadatas; } +#ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } AVCodecContext& getAVCodecContext() { return *_codecContext; } const AVPixFmtDescriptor& getAVPixFmtDescriptor() { return *_pixFmt; } +#endif - MetadatasMap getDataMap() const; ///< Warning: the method calls analyseGopStructure, which can modify state of the object + PropertiesMap getPropertiesAsMap() const; ///< Return all video properties as a map (name of property: value) private: /** @@ -119,7 +120,7 @@ class AvExport VideoProperties bool _isTopFieldFirst; std::vector< std::pair< char, bool > > _gopStructure; //@} - MetadatasMap _metadatas; + PropertiesMap _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/mediaProperty.i b/src/AvTranscoder/mediaProperty/mediaProperty.i index 2d6fa5fd..502c3579 100644 --- a/src/AvTranscoder/mediaProperty/mediaProperty.i +++ b/src/AvTranscoder/mediaProperty/mediaProperty.i @@ -34,8 +34,8 @@ namespace std { %template(AttachementVector) vector< avtranscoder::AttachementProperties >; %template(UnknownVector) vector< avtranscoder::UnknownProperties >; -%template(MetadataPair) pair< string, string >; -%template(MetadatasVector) vector< pair< string, string > >; +%template(PropertyPair) pair< string, string >; +%template(PropertyVector) vector< pair< string, string > >; %template(GopPair) pair< char, bool >; %template(GopVector) vector< pair< char, bool > >; diff --git a/src/AvTranscoder/mediaProperty/print.hpp b/src/AvTranscoder/mediaProperty/print.hpp index 92ce2561..f9c96324 100644 --- a/src/AvTranscoder/mediaProperty/print.hpp +++ b/src/AvTranscoder/mediaProperty/print.hpp @@ -14,13 +14,13 @@ namespace avtranscoder static const size_t keyWidth = 32; static const std::string separator = "===================="; -std::ostream& operator<<( std::ostream& flux, const FileProperties& properties ) +std::ostream& operator<<( std::ostream& flux, const FileProperties& fileProperties ) { flux << std::left; flux << separator << " Wrapper " << separator << std::endl; - MetadatasMap dataMap = properties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = fileProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -33,8 +33,8 @@ std::ostream& operator<<( std::ostream& flux, const VideoProperties& videoProper flux << std::left; flux << separator << " Video stream " << separator << std::endl; - MetadatasMap dataMap = videoProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = videoProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -47,8 +47,8 @@ std::ostream& operator<<( std::ostream& flux, const AudioProperties& audioProper flux << std::left; flux << separator << " Audio stream " << separator << std::endl; - MetadatasMap dataMap = audioProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = audioProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -60,8 +60,8 @@ std::ostream& operator<<( std::ostream& flux, const DataProperties& dataProperti { flux << separator << " Data stream " << separator << std::endl; - MetadatasMap dataMap = dataProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = dataProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -73,8 +73,8 @@ std::ostream& operator<<( std::ostream& flux, const SubtitleProperties& subtitle { flux << separator << " Subtitle stream " << separator << std::endl; - MetadatasMap dataMap = subtitleProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = subtitleProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -86,8 +86,8 @@ std::ostream& operator<<( std::ostream& flux, const AttachementProperties& attac { flux << separator << " Attachement stream " << separator << std::endl; - MetadatasMap dataMap = attachementProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = attachementProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } @@ -99,8 +99,8 @@ std::ostream& operator<<( std::ostream& flux, const UnknownProperties& unknownPr { flux << separator << " Unknown stream " << separator << std::endl; - MetadatasMap dataMap = unknownProperties.getDataMap(); - for( MetadatasMap::iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + PropertiesMap properties = unknownProperties.getPropertiesAsMap(); + for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) { flux << std::setw( keyWidth ) << it->first << ": " << it->second << std::endl; } diff --git a/src/AvTranscoder/mediaProperty/util.cpp b/src/AvTranscoder/mediaProperty/util.cpp index 6b4ab4dc..8aff1a47 100644 --- a/src/AvTranscoder/mediaProperty/util.cpp +++ b/src/AvTranscoder/mediaProperty/util.cpp @@ -11,18 +11,18 @@ namespace detail { template<> -void add( MetadatasMap& dataMap, const std::string& key, const std::string& value ) +void add( PropertiesMap& propertiesMap, const std::string& key, const std::string& value ) { - dataMap.push_back( std::make_pair( key, value ) ); + propertiesMap.push_back( std::make_pair( key, value ) ); } template<> -void add( MetadatasMap& dataMap, const std::string& key, const bool& value ) +void add( PropertiesMap& propertiesMap, const std::string& key, const bool& value ) { - add( dataMap, key, value ? "True" : "False" ); + add( propertiesMap, key, value ? "True" : "False" ); } -void fillMetadataDictionnary( AVDictionary* avdictionnary, MetadatasMap& metadata ) +void fillMetadataDictionnary( AVDictionary* avdictionnary, PropertiesMap& metadata ) { AVDictionaryEntry* tag = NULL; while( ( tag = av_dict_get( avdictionnary, "", tag, AV_DICT_IGNORE_SUFFIX ) ) ) diff --git a/src/AvTranscoder/mediaProperty/util.hpp b/src/AvTranscoder/mediaProperty/util.hpp index 34e7e034..c63618c1 100644 --- a/src/AvTranscoder/mediaProperty/util.hpp +++ b/src/AvTranscoder/mediaProperty/util.hpp @@ -12,31 +12,31 @@ namespace avtranscoder { /** - * @brief Can get all data of Properties structures by getDataMap(), which return a MetadatasMap. + * @brief PropertyMap is a vector of pair, because the order of properties matters to us. */ -typedef std::vector< std::pair > MetadatasMap; +typedef std::vector< std::pair > PropertiesMap; namespace detail { template -void add( MetadatasMap& dataMap, const std::string& key, const T& value ) +void add( PropertiesMap& propertiesMap, const std::string& key, const T& value ) { std::stringstream ss; ss << value; - add( dataMap, key, ss.str() ); + add( propertiesMap, key, ss.str() ); } template<> -void add( MetadatasMap& dataMap, const std::string& key, const std::string& value ); +void add( PropertiesMap& propertiesMap, const std::string& key, const std::string& value ); template<> -void add( MetadatasMap& dataMap, const std::string& key, const bool& value ); +void add( PropertiesMap& propertiesMap, const std::string& key, const bool& value ); /** * @brief Fill metadata parameter with the given AVDictionary. */ -void AvExport fillMetadataDictionnary( AVDictionary* avdictionnary, MetadatasMap& metadata ); +void AvExport fillMetadataDictionnary( AVDictionary* avdictionnary, PropertiesMap& metadata ); }