From c0aed474eb8b8fadcce3e3354d5be09eb3887d57 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 1 Apr 2015 18:17:53 +0200 Subject: [PATCH 1/5] mediaProperty: rename typedef PropertiesMap to PropertyVector * Same same in SWIG interface. * It's a vector of pair, not a map! --- src/AvTranscoder/file/OutputFile.cpp | 4 +- src/AvTranscoder/file/OutputFile.hpp | 2 +- .../mediaProperty/AttachementProperties.cpp | 12 +-- .../mediaProperty/AttachementProperties.hpp | 6 +- .../mediaProperty/AudioProperties.cpp | 44 +++++----- .../mediaProperty/AudioProperties.hpp | 12 +-- .../mediaProperty/DataProperties.cpp | 12 +-- .../mediaProperty/DataProperties.hpp | 6 +- .../mediaProperty/FileProperties.cpp | 36 ++++---- .../mediaProperty/FileProperties.hpp | 12 +-- .../mediaProperty/PixelProperties.cpp | 46 +++++----- .../mediaProperty/PixelProperties.hpp | 8 +- .../mediaProperty/SubtitleProperties.cpp | 12 +-- .../mediaProperty/SubtitleProperties.hpp | 6 +- .../mediaProperty/UnknownProperties.cpp | 12 +-- .../mediaProperty/UnknownProperties.hpp | 6 +- .../mediaProperty/VideoProperties.cpp | 84 +++++++++---------- .../mediaProperty/VideoProperties.hpp | 12 +-- src/AvTranscoder/mediaProperty/print.hpp | 28 +++---- src/AvTranscoder/mediaProperty/util.cpp | 14 ++-- src/AvTranscoder/mediaProperty/util.hpp | 16 ++-- 21 files changed, 195 insertions(+), 195 deletions(-) diff --git a/src/AvTranscoder/file/OutputFile.cpp b/src/AvTranscoder/file/OutputFile.cpp index 5177bf79..c1858c44 100644 --- a/src/AvTranscoder/file/OutputFile.cpp +++ b/src/AvTranscoder/file/OutputFile.cpp @@ -132,9 +132,9 @@ bool OutputFile::endWrap( ) return true; } -void OutputFile::addMetadata( const PropertiesMap& dataMap ) +void OutputFile::addMetadata( const PropertyVector& data ) { - for( PropertiesMap::const_iterator it = dataMap.begin(); it != dataMap.end(); ++it ) + for( PropertyVector::const_iterator it = data.begin(); it != data.end(); ++it ) { addMetadata( it->first, it->second ); } diff --git a/src/AvTranscoder/file/OutputFile.hpp b/src/AvTranscoder/file/OutputFile.hpp index e7a44147..d48222c1 100644 --- a/src/AvTranscoder/file/OutputFile.hpp +++ b/src/AvTranscoder/file/OutputFile.hpp @@ -41,7 +41,7 @@ class AvExport OutputFile : public IOutputFile * @brief Add metadata to the output file. * @note Depending on the format, you are not sure to find your metadata after the transcode. */ - void addMetadata( const PropertiesMap& dataMap ); + void addMetadata( const PropertyVector& data ); void addMetadata( const std::string& key, const std::string& value ); IOutputStream& getStream( const size_t streamId ); diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp b/src/AvTranscoder/mediaProperty/AttachementProperties.cpp index 0424ce55..24e8a6c5 100644 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AttachementProperties.cpp @@ -20,25 +20,25 @@ size_t AttachementProperties::getStreamId() const return _formatContext->streams[_streamIndex]->id; } -PropertiesMap AttachementProperties::getPropertiesAsMap() const +PropertyVector AttachementProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; try { - detail::add( dataMap, "streamId", getStreamId() ); + detail::add( data, "streamId", getStreamId() ); } catch( const std::exception& e ) { - detail::add( dataMap, "streamId", e.what() ); + detail::add( data, "streamId", e.what() ); } for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp index 4d5af3ca..0e963557 100644 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp @@ -15,19 +15,19 @@ class AvExport AttachementProperties size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all attachement properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all attachement properties as a vector (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamIndex; - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.cpp b/src/AvTranscoder/mediaProperty/AudioProperties.cpp index f30698b3..2bdefaa0 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.cpp @@ -202,33 +202,33 @@ double AudioProperties::getDuration() const return duration; } -PropertiesMap AudioProperties::getPropertiesAsMap() const -{ - PropertiesMap dataMap; - - addProperty( dataMap, "streamId", &AudioProperties::getStreamId ); - addProperty( dataMap, "codecId", &AudioProperties::getCodecId ); - addProperty( dataMap, "codecName", &AudioProperties::getCodecName ); - addProperty( dataMap, "codecLongName", &AudioProperties::getCodecLongName ); - addProperty( dataMap, "sampleFormatName", &AudioProperties::getSampleFormatName ); - addProperty( dataMap, "sampleFormatLongName", &AudioProperties::getSampleFormatLongName ); - addProperty( dataMap, "sampleRate", &AudioProperties::getSampleRate ); - addProperty( dataMap, "bitRate", &AudioProperties::getBitRate ); - addProperty( dataMap, "nbSamples", &AudioProperties::getNbSamples ); - addProperty( dataMap, "channels", &AudioProperties::getChannels ); - addProperty( dataMap, "channelLayout", &AudioProperties::getChannelLayout ); - addProperty( dataMap, "channelName", &AudioProperties::getChannelName ); - addProperty( dataMap, "channelDescription", &AudioProperties::getChannelDescription ); - addProperty( dataMap, "ticksPerFrame", &AudioProperties::getTicksPerFrame ); - addProperty( dataMap, "timeBase", &AudioProperties::getTimeBase ); - addProperty( dataMap, "duration", &AudioProperties::getDuration ); +PropertyVector AudioProperties::getPropertiesAsVector() const +{ + PropertyVector data; + + addProperty( data, "streamId", &AudioProperties::getStreamId ); + addProperty( data, "codecId", &AudioProperties::getCodecId ); + addProperty( data, "codecName", &AudioProperties::getCodecName ); + addProperty( data, "codecLongName", &AudioProperties::getCodecLongName ); + addProperty( data, "sampleFormatName", &AudioProperties::getSampleFormatName ); + addProperty( data, "sampleFormatLongName", &AudioProperties::getSampleFormatLongName ); + addProperty( data, "sampleRate", &AudioProperties::getSampleRate ); + addProperty( data, "bitRate", &AudioProperties::getBitRate ); + addProperty( data, "nbSamples", &AudioProperties::getNbSamples ); + addProperty( data, "channels", &AudioProperties::getChannels ); + addProperty( data, "channelLayout", &AudioProperties::getChannelLayout ); + addProperty( data, "channelName", &AudioProperties::getChannelName ); + addProperty( data, "channelDescription", &AudioProperties::getChannelDescription ); + addProperty( data, "ticksPerFrame", &AudioProperties::getTicksPerFrame ); + addProperty( data, "timeBase", &AudioProperties::getTimeBase ); + addProperty( data, "duration", &AudioProperties::getDuration ); for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.hpp b/src/AvTranscoder/mediaProperty/AudioProperties.hpp index 54805c33..a55d9206 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.hpp @@ -35,27 +35,27 @@ class AvExport AudioProperties Rational getTimeBase() const; double getDuration() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } AVCodecContext& getAVCodecContext() { return *_codecContext; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all audio properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all audio properties as a vector (name of property: value) private: #ifndef SWIG template - void addProperty( PropertiesMap& dataMap, const std::string& key, T (AudioProperties::*getter)(void) const ) const + void addProperty( PropertyVector& data, const std::string& key, T (AudioProperties::*getter)(void) const ) const { try { - detail::add( dataMap, key, (this->*getter)() ); + detail::add( data, key, (this->*getter)() ); } catch( const std::exception& e ) { - detail::add( dataMap, key, e.what() ); + detail::add( data, key, e.what() ); } } #endif @@ -66,7 +66,7 @@ class AvExport AudioProperties AVCodec* _codec; ///< Has link (no ownership) size_t _streamIndex; - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/DataProperties.cpp b/src/AvTranscoder/mediaProperty/DataProperties.cpp index fb876a5d..763278d9 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.cpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.cpp @@ -29,25 +29,25 @@ size_t DataProperties::getStreamId() const return _formatContext->streams[_streamIndex]->id; } -PropertiesMap DataProperties::getPropertiesAsMap() const +PropertyVector DataProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; try { - detail::add( dataMap, "streamId", getStreamId() ); + detail::add( data, "streamId", getStreamId() ); } catch( const std::exception& e ) { - detail::add( dataMap, "streamId", e.what() ); + detail::add( data, "streamId", e.what() ); } for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } void DataProperties::detectAncillaryData() diff --git a/src/AvTranscoder/mediaProperty/DataProperties.hpp b/src/AvTranscoder/mediaProperty/DataProperties.hpp index 53ae480a..b6b4b463 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.hpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.hpp @@ -15,13 +15,13 @@ class AvExport DataProperties size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all data properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all data properties as a vector (name of property: value) private: void detectAncillaryData(); @@ -30,7 +30,7 @@ class AvExport DataProperties const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamIndex; - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/FileProperties.cpp b/src/AvTranscoder/mediaProperty/FileProperties.cpp index 76a87c7e..14870dd9 100644 --- a/src/AvTranscoder/mediaProperty/FileProperties.cpp +++ b/src/AvTranscoder/mediaProperty/FileProperties.cpp @@ -129,33 +129,33 @@ size_t FileProperties::getNbStreams() const return _formatContext->nb_streams; } -PropertiesMap FileProperties::getPropertiesAsMap() const +PropertyVector FileProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; - addProperty( dataMap, "filename", &FileProperties::getFilename ); - addProperty( dataMap, "formatName", &FileProperties::getFormatName ); - addProperty( dataMap, "formatLongName", &FileProperties::getFormatLongName ); + addProperty( data, "filename", &FileProperties::getFilename ); + addProperty( data, "formatName", &FileProperties::getFormatName ); + addProperty( data, "formatLongName", &FileProperties::getFormatLongName ); - addProperty( dataMap, "startTime", &FileProperties::getStartTime ); - addProperty( dataMap, "duration", &FileProperties::getDuration ); - addProperty( dataMap, "bitrate", &FileProperties::getBitRate ); - addProperty( dataMap, "numberOfStreams", &FileProperties::getNbStreams ); - addProperty( dataMap, "numberOfPrograms", &FileProperties::getProgramsCount ); + addProperty( data, "startTime", &FileProperties::getStartTime ); + addProperty( data, "duration", &FileProperties::getDuration ); + addProperty( data, "bitrate", &FileProperties::getBitRate ); + addProperty( data, "numberOfStreams", &FileProperties::getNbStreams ); + addProperty( data, "numberOfPrograms", &FileProperties::getProgramsCount ); - detail::add( dataMap, "numberOfVideoStreams", getNbVideoStreams() ); - detail::add( dataMap, "numberOfAudioStreams", getNbAudioStreams() ); - detail::add( dataMap, "numberOfDataStreams", getNbDataStreams() ); - detail::add( dataMap, "numberOfSubtitleStreams", getNbSubtitleStreams() ); - detail::add( dataMap, "numberOfAttachementStreams", getNbAttachementStreams() ); - detail::add( dataMap, "numberOfUnknownStreams", getNbUnknownStreams() ); + detail::add( data, "numberOfVideoStreams", getNbVideoStreams() ); + detail::add( data, "numberOfAudioStreams", getNbAudioStreams() ); + detail::add( data, "numberOfDataStreams", getNbDataStreams() ); + detail::add( data, "numberOfSubtitleStreams", getNbSubtitleStreams() ); + detail::add( data, "numberOfAttachementStreams", getNbAttachementStreams() ); + detail::add( data, "numberOfUnknownStreams", getNbUnknownStreams() ); for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } void FileProperties::clearStreamProperties() diff --git a/src/AvTranscoder/mediaProperty/FileProperties.hpp b/src/AvTranscoder/mediaProperty/FileProperties.hpp index 98dc1ce7..82747b1f 100644 --- a/src/AvTranscoder/mediaProperty/FileProperties.hpp +++ b/src/AvTranscoder/mediaProperty/FileProperties.hpp @@ -32,7 +32,7 @@ class AvExport FileProperties size_t getBitRate() const; ///< total stream bitrate in bit/s, 0 if not available (result of a computation by ffmpeg) size_t getPacketSize() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } size_t getNbStreams() const; size_t getNbVideoStreams() const { return _videoStreams.size(); } @@ -72,22 +72,22 @@ class AvExport FileProperties const std::vector< avtranscoder::UnknownProperties >& getUnknownPropertiesProperties() const { return _unknownStreams; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all file properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all file properties as a vector (name of property: value) void clearStreamProperties(); ///< Clear all array of stream properties private: #ifndef SWIG template - void addProperty( PropertiesMap& dataMap, const std::string& key, T (FileProperties::*getter)(void) const ) const + void addProperty( PropertyVector& data, const std::string& key, T (FileProperties::*getter)(void) const ) const { try { - detail::add( dataMap, key, (this->*getter)() ); + detail::add( data, key, (this->*getter)() ); } catch( const std::exception& e ) { - detail::add( dataMap, key, e.what() ); + detail::add( data, key, e.what() ); } } #endif @@ -102,7 +102,7 @@ class AvExport FileProperties std::vector< AttachementProperties > _attachementStreams; ///< Array of properties per attachement stream std::vector< UnknownProperties > _unknownStreams; ///< Array of properties per unknown stream - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/PixelProperties.cpp b/src/AvTranscoder/mediaProperty/PixelProperties.cpp index f18fa7a8..e476c435 100644 --- a/src/AvTranscoder/mediaProperty/PixelProperties.cpp +++ b/src/AvTranscoder/mediaProperty/PixelProperties.cpp @@ -223,16 +223,16 @@ std::vector PixelProperties::getChannels() const return channels; } -PropertiesMap PixelProperties::getPropertiesAsMap() const +PropertyVector PixelProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; - addProperty( dataMap, "pixelName", &PixelProperties::getPixelName ); - addProperty( dataMap, "pixelFormatName", &PixelProperties::getPixelFormatName ); - addProperty( dataMap, "bitDepth", &PixelProperties::getBitsPerPixel ); - addProperty( dataMap, "nbComponents", &PixelProperties::getNbComponents ); - addProperty( dataMap, "chromaWidth", &PixelProperties::getChromaWidth ); - addProperty( dataMap, "chromaHeight", &PixelProperties::getChromaHeight ); + addProperty( data, "pixelName", &PixelProperties::getPixelName ); + addProperty( data, "pixelFormatName", &PixelProperties::getPixelFormatName ); + addProperty( data, "bitDepth", &PixelProperties::getBitsPerPixel ); + addProperty( data, "nbComponents", &PixelProperties::getNbComponents ); + addProperty( data, "chromaWidth", &PixelProperties::getChromaWidth ); + addProperty( data, "chromaHeight", &PixelProperties::getChromaHeight ); try { @@ -255,11 +255,11 @@ PropertiesMap PixelProperties::getPropertiesAsMap() const colorComponents = "YUV"; break; } - detail::add( dataMap, "colorComponents", colorComponents ); + detail::add( data, "colorComponents", colorComponents ); } catch( const std::exception& e ) { - detail::add( dataMap, "colorComponents", e.what() ); + detail::add( data, "colorComponents", e.what() ); } try @@ -286,21 +286,21 @@ PropertiesMap PixelProperties::getPropertiesAsMap() const subsampling = "None"; break; } - detail::add( dataMap, "subsampling", subsampling ); + detail::add( data, "subsampling", subsampling ); } catch( const std::exception& e ) { - detail::add( dataMap, "subsampling", e.what() ); + detail::add( data, "subsampling", e.what() ); } - addProperty( dataMap, "isBigEndian", &PixelProperties::isBigEndian ); - addProperty( dataMap, "hasAlpha", &PixelProperties::hasAlpha ); - addProperty( dataMap, "isPlanar", &PixelProperties::isPlanar ); - addProperty( dataMap, "isIndexedColors", &PixelProperties::isIndexedColors ); - addProperty( dataMap, "bitWiseAcked", &PixelProperties::isBitWisePacked ); - addProperty( dataMap, "isHardwareAccelerated", &PixelProperties::isHardwareAccelerated ); - addProperty( dataMap, "rgbPixel", &PixelProperties::isRgbPixelData ); - addProperty( dataMap, "isPseudoPaletted", &PixelProperties::isPseudoPaletted ); + addProperty( data, "isBigEndian", &PixelProperties::isBigEndian ); + addProperty( data, "hasAlpha", &PixelProperties::hasAlpha ); + addProperty( data, "isPlanar", &PixelProperties::isPlanar ); + addProperty( data, "isIndexedColors", &PixelProperties::isIndexedColors ); + addProperty( data, "bitWiseAcked", &PixelProperties::isBitWisePacked ); + addProperty( data, "isHardwareAccelerated", &PixelProperties::isHardwareAccelerated ); + addProperty( data, "rgbPixel", &PixelProperties::isRgbPixelData ); + addProperty( data, "isPseudoPaletted", &PixelProperties::isPseudoPaletted ); try { @@ -315,15 +315,15 @@ PropertiesMap PixelProperties::getPropertiesAsMap() const channelValue << " - "; channelValue << "bitStep " << channels.at( channelIndex ).bitStep; - detail::add( dataMap, channelName.str(), channelValue.str() ); + detail::add( data, channelName.str(), channelValue.str() ); } } catch( const std::exception& e ) { - detail::add( dataMap, "channels", e.what() ); + detail::add( data, "channels", e.what() ); } - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/PixelProperties.hpp b/src/AvTranscoder/mediaProperty/PixelProperties.hpp index b94b3d5d..945fd1db 100644 --- a/src/AvTranscoder/mediaProperty/PixelProperties.hpp +++ b/src/AvTranscoder/mediaProperty/PixelProperties.hpp @@ -79,22 +79,22 @@ class AvExport PixelProperties const AVPixFmtDescriptor* getAVPixFmtDescriptor() const { return _pixelDesc; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all pixel properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all pixel properties as a vector (name of property: value) private: void init( const AVPixelFormat avPixelFormat ); #ifndef SWIG template - void addProperty( PropertiesMap& dataMap, const std::string& key, T (PixelProperties::*getter)(void) const ) const + void addProperty( PropertyVector& data, const std::string& key, T (PixelProperties::*getter)(void) const ) const { try { - detail::add( dataMap, key, (this->*getter)() ); + detail::add( data, key, (this->*getter)() ); } catch( const std::exception& e ) { - detail::add( dataMap, key, e.what() ); + detail::add( data, key, e.what() ); } } #endif diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp b/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp index e4aa15ad..ac83fa75 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp +++ b/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp @@ -20,25 +20,25 @@ size_t SubtitleProperties::getStreamId() const return _formatContext->streams[_streamIndex]->id; } -PropertiesMap SubtitleProperties::getPropertiesAsMap() const +PropertyVector SubtitleProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; try { - detail::add( dataMap, "streamId", getStreamId() ); + detail::add( data, "streamId", getStreamId() ); } catch( const std::exception& e ) { - detail::add( dataMap, "streamId", e.what() ); + detail::add( data, "streamId", e.what() ); } for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp index 96816d80..f0d1751b 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp +++ b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp @@ -15,19 +15,19 @@ class AvExport SubtitleProperties size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all subtitle properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all subtitle properties as a vector (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamIndex; - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp b/src/AvTranscoder/mediaProperty/UnknownProperties.cpp index ce80113b..61595690 100644 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp +++ b/src/AvTranscoder/mediaProperty/UnknownProperties.cpp @@ -20,25 +20,25 @@ size_t UnknownProperties::getStreamId() const return _formatContext->streams[_streamIndex]->id; } -PropertiesMap UnknownProperties::getPropertiesAsMap() const +PropertyVector UnknownProperties::getPropertiesAsVector() const { - PropertiesMap dataMap; + PropertyVector data; try { - detail::add( dataMap, "streamId", getStreamId() ); + detail::add( data, "streamId", getStreamId() ); } catch( const std::exception& e ) { - detail::add( dataMap, "streamId", e.what() ); + detail::add( data, "streamId", e.what() ); } for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp index 91f83351..2604b50b 100644 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp +++ b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp @@ -15,19 +15,19 @@ class AvExport UnknownProperties size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return unknown properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return unknown properties as a vector (name of property: value) private: const AVFormatContext* _formatContext; ///< Has link (no ownership) size_t _streamIndex; - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index 7e522ce4..fc678d59 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -637,40 +637,40 @@ void VideoProperties::analyseGopStructure( IProgress& progress ) } } -PropertiesMap VideoProperties::getPropertiesAsMap() const -{ - PropertiesMap dataMap; - - addProperty( dataMap, "streamId", &VideoProperties::getStreamId ); - addProperty( dataMap, "codecId", &VideoProperties::getCodecId ); - addProperty( dataMap, "codecName", &VideoProperties::getCodecName ); - addProperty( dataMap, "codecLongName", &VideoProperties::getCodecLongName ); - addProperty( dataMap, "profile", &VideoProperties::getProfile ); - addProperty( dataMap, "profileName", &VideoProperties::getProfileName ); - addProperty( dataMap, "level", &VideoProperties::getLevel ); - addProperty( dataMap, "startTimecode", &VideoProperties::getStartTimecodeString ); - addProperty( dataMap, "width", &VideoProperties::getWidth ); - addProperty( dataMap, "height", &VideoProperties::getHeight ); - addProperty( dataMap, "pixelAspectRatio", &VideoProperties::getSar ); - addProperty( dataMap, "displayAspectRatio", &VideoProperties::getDar ); - addProperty( dataMap, "dtgActiveFormat", &VideoProperties::getDtgActiveFormat ); - addProperty( dataMap, "colorTransfert", &VideoProperties::getColorTransfert ); - addProperty( dataMap, "colorspace", &VideoProperties::getColorspace ); - addProperty( dataMap, "colorRange", &VideoProperties::getColorRange ); - addProperty( dataMap, "colorPrimaries", &VideoProperties::getColorPrimaries ); - addProperty( dataMap, "chromaSampleLocation", &VideoProperties::getChromaSampleLocation ); - addProperty( dataMap, "interlaced ", &VideoProperties::isInterlaced ); - addProperty( dataMap, "topFieldFirst", &VideoProperties::isTopFieldFirst ); - addProperty( dataMap, "fieldOrder", &VideoProperties::getFieldOrder ); - addProperty( dataMap, "timeBase", &VideoProperties::getTimeBase ); - addProperty( dataMap, "duration", &VideoProperties::getDuration ); - addProperty( dataMap, "fps", &VideoProperties::getFps ); - addProperty( dataMap, "nbFrame", &VideoProperties::getNbFrames ); - addProperty( dataMap, "ticksPerFrame", &VideoProperties::getTicksPerFrame ); - addProperty( dataMap, "bitRate", &VideoProperties::getBitRate ); - addProperty( dataMap, "maxBitRate", &VideoProperties::getMaxBitRate ); - addProperty( dataMap, "minBitRate", &VideoProperties::getMinBitRate ); - addProperty( dataMap, "gopSize", &VideoProperties::getGopSize ); +PropertyVector VideoProperties::getPropertiesAsVector() const +{ + PropertyVector data; + + addProperty( data, "streamId", &VideoProperties::getStreamId ); + addProperty( data, "codecId", &VideoProperties::getCodecId ); + addProperty( data, "codecName", &VideoProperties::getCodecName ); + addProperty( data, "codecLongName", &VideoProperties::getCodecLongName ); + addProperty( data, "profile", &VideoProperties::getProfile ); + addProperty( data, "profileName", &VideoProperties::getProfileName ); + addProperty( data, "level", &VideoProperties::getLevel ); + addProperty( data, "startTimecode", &VideoProperties::getStartTimecodeString ); + addProperty( data, "width", &VideoProperties::getWidth ); + addProperty( data, "height", &VideoProperties::getHeight ); + addProperty( data, "pixelAspectRatio", &VideoProperties::getSar ); + addProperty( data, "displayAspectRatio", &VideoProperties::getDar ); + addProperty( data, "dtgActiveFormat", &VideoProperties::getDtgActiveFormat ); + addProperty( data, "colorTransfert", &VideoProperties::getColorTransfert ); + addProperty( data, "colorspace", &VideoProperties::getColorspace ); + addProperty( data, "colorRange", &VideoProperties::getColorRange ); + addProperty( data, "colorPrimaries", &VideoProperties::getColorPrimaries ); + addProperty( data, "chromaSampleLocation", &VideoProperties::getChromaSampleLocation ); + addProperty( data, "interlaced ", &VideoProperties::isInterlaced ); + addProperty( data, "topFieldFirst", &VideoProperties::isTopFieldFirst ); + addProperty( data, "fieldOrder", &VideoProperties::getFieldOrder ); + addProperty( data, "timeBase", &VideoProperties::getTimeBase ); + addProperty( data, "duration", &VideoProperties::getDuration ); + addProperty( data, "fps", &VideoProperties::getFps ); + addProperty( data, "nbFrame", &VideoProperties::getNbFrames ); + addProperty( data, "ticksPerFrame", &VideoProperties::getTicksPerFrame ); + addProperty( data, "bitRate", &VideoProperties::getBitRate ); + addProperty( data, "maxBitRate", &VideoProperties::getMaxBitRate ); + addProperty( data, "minBitRate", &VideoProperties::getMinBitRate ); + addProperty( data, "gopSize", &VideoProperties::getGopSize ); std::string gop; for( size_t frameIndex = 0; frameIndex < _gopStructure.size(); ++frameIndex ) @@ -678,22 +678,22 @@ PropertiesMap VideoProperties::getPropertiesAsMap() const gop += _gopStructure.at( frameIndex ).first; gop += " "; } - detail::add( dataMap, "gop", gop ); - //detail::add( dataMap, "isClosedGop", isClosedGop() ); + detail::add( data, "gop", gop ); + //detail::add( data, "isClosedGop", isClosedGop() ); - addProperty( dataMap, "hasBFrames", &VideoProperties::hasBFrames ); - addProperty( dataMap, "referencesFrames", &VideoProperties::getReferencesFrames ); + addProperty( data, "hasBFrames", &VideoProperties::hasBFrames ); + addProperty( data, "referencesFrames", &VideoProperties::getReferencesFrames ); for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { - detail::add( dataMap, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); + detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); } // Add properties of the pixel - PropertiesMap pixelProperties = _pixelProperties.getPropertiesAsMap(); - dataMap.insert( dataMap.end(), pixelProperties.begin(), pixelProperties.end() ); + PropertyVector pixelProperties = _pixelProperties.getPropertiesAsVector(); + data.insert( data.end(), pixelProperties.begin(), pixelProperties.end() ); - return dataMap; + return data; } } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.hpp b/src/AvTranscoder/mediaProperty/VideoProperties.hpp index 22bc4f03..256ea93f 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.hpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.hpp @@ -75,7 +75,7 @@ class AvExport VideoProperties std::vector< std::pair< char, bool > > getGopStructure() const { return _gopStructure; } //@} - PropertiesMap& getMetadatas() { return _metadatas; } + PropertyVector& getMetadatas() { return _metadatas; } #ifndef SWIG const AVFormatContext& getAVFormatContext() { return *_formatContext; } @@ -83,7 +83,7 @@ class AvExport VideoProperties const PixelProperties& getPixelProperties() const { return _pixelProperties; } #endif - PropertiesMap getPropertiesAsMap() const; ///< Return all video and pixel properties as a map (name of property: value) + PropertyVector getPropertiesAsVector() const; ///< Return all video and pixel properties as a vector (name of property: value) private: /** @@ -94,15 +94,15 @@ class AvExport VideoProperties #ifndef SWIG template - void addProperty( PropertiesMap& dataMap, const std::string& key, T (VideoProperties::*getter)(void) const ) const + void addProperty( PropertyVector& dataVector, const std::string& key, T (VideoProperties::*getter)(void) const ) const { try { - detail::add( dataMap, key, (this->*getter)() ); + detail::add( dataVector, key, (this->*getter)() ); } catch( const std::exception& e ) { - detail::add( dataMap, key, e.what() ); + detail::add( dataVector, key, e.what() ); } } #endif @@ -120,7 +120,7 @@ class AvExport VideoProperties bool _isTopFieldFirst; std::vector< std::pair< char, bool > > _gopStructure; //@} - PropertiesMap _metadatas; + PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/print.hpp b/src/AvTranscoder/mediaProperty/print.hpp index f9c96324..05399ec8 100644 --- a/src/AvTranscoder/mediaProperty/print.hpp +++ b/src/AvTranscoder/mediaProperty/print.hpp @@ -19,8 +19,8 @@ std::ostream& operator<<( std::ostream& flux, const FileProperties& fileProperti flux << std::left; flux << separator << " Wrapper " << separator << std::endl; - PropertiesMap properties = fileProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = fileProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = videoProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = videoProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = audioProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = audioProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = dataProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = dataProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = subtitleProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = subtitleProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = attachementProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = attachementProperties.getPropertiesAsVector(); + for( PropertyVector::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; - PropertiesMap properties = unknownProperties.getPropertiesAsMap(); - for( PropertiesMap::iterator it = properties.begin(); it != properties.end(); ++it ) + PropertyVector properties = unknownProperties.getPropertiesAsVector(); + for( PropertyVector::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 1f752e57..7be54102 100644 --- a/src/AvTranscoder/mediaProperty/util.cpp +++ b/src/AvTranscoder/mediaProperty/util.cpp @@ -9,24 +9,24 @@ namespace detail { template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const std::string& value ) +void add( PropertyVector& propertyVector, const std::string& key, const std::string& value ) { - propertiesMap.push_back( std::make_pair( key, value ) ); + propertyVector.push_back( std::make_pair( key, value ) ); } template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const bool& value ) +void add( PropertyVector& propertyVector, const std::string& key, const bool& value ) { - add( propertiesMap, key, value ? "True" : "False" ); + add( propertyVector, key, value ? "True" : "False" ); } template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const Rational& value ) +void add( PropertyVector& propertyVector, const std::string& key, const Rational& value ) { - add( propertiesMap, key, value.num / (double) value.den ); + add( propertyVector, key, value.num / (double) value.den ); } -void fillMetadataDictionnary( AVDictionary* avdictionnary, PropertiesMap& metadata ) +void fillMetadataDictionnary( AVDictionary* avdictionnary, PropertyVector& 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 0e49e9a8..ecc41a33 100644 --- a/src/AvTranscoder/mediaProperty/util.hpp +++ b/src/AvTranscoder/mediaProperty/util.hpp @@ -16,34 +16,34 @@ namespace avtranscoder { /** - * @brief PropertyMap is a vector of pair, because the order of properties matters to us. + * @brief PropertyVector is a vector of pair, because the order of properties matters to us. */ -typedef std::vector< std::pair > PropertiesMap; +typedef std::vector< std::pair > PropertyVector; namespace detail { template -void add( PropertiesMap& propertiesMap, const std::string& key, const T& value ) +void add( PropertyVector& propertyVector, const std::string& key, const T& value ) { std::stringstream ss; ss << value; - add( propertiesMap, key, ss.str() ); + add( propertyVector, key, ss.str() ); } template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const std::string& value ); +void add( PropertyVector& propertyVector, const std::string& key, const std::string& value ); template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const bool& value ); +void add( PropertyVector& propertyVector, const std::string& key, const bool& value ); template<> -void add( PropertiesMap& propertiesMap, const std::string& key, const Rational& value ); +void add( PropertyVector& propertyVector, const std::string& key, const Rational& value ); /** * @brief Fill metadata parameter with the given AVDictionary. */ -void AvExport fillMetadataDictionnary( AVDictionary* avdictionnary, PropertiesMap& metadata ); +void AvExport fillMetadataDictionnary( AVDictionary* avdictionnary, PropertyVector& metadata ); } From a5ceb7f64751875e843305aa6318a49550b23ef1 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 1 Apr 2015 18:34:03 +0200 Subject: [PATCH 2/5] mediaProperty: can get video and audio properties by a vector or a map Fix #141 --- .../mediaProperty/AudioProperties.cpp | 15 +++++++++++++++ .../mediaProperty/AudioProperties.hpp | 3 ++- .../mediaProperty/VideoProperties.cpp | 15 +++++++++++++++ .../mediaProperty/VideoProperties.hpp | 3 ++- src/AvTranscoder/mediaProperty/util.hpp | 2 ++ 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.cpp b/src/AvTranscoder/mediaProperty/AudioProperties.cpp index 2bdefaa0..80802df1 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.cpp @@ -231,4 +231,19 @@ PropertyVector AudioProperties::getPropertiesAsVector() const return data; } +PropertyMap AudioProperties::getPropertiesAsMap() const +{ + PropertyMap dataMap; + + PropertyVector dataVector( getPropertiesAsVector() ); + for( PropertyVector::const_iterator it = dataVector.begin(); + it != dataVector.end(); + ++it ) + { + dataMap.insert( std::make_pair( it->first, it->second ) ); + } + + return dataMap; +} + } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.hpp b/src/AvTranscoder/mediaProperty/AudioProperties.hpp index a55d9206..2c7b258d 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.hpp @@ -42,7 +42,8 @@ class AvExport AudioProperties AVCodecContext& getAVCodecContext() { return *_codecContext; } #endif - PropertyVector getPropertiesAsVector() const; ///< Return all audio properties as a vector (name of property: value) + PropertyMap getPropertiesAsMap() const; ///< Return all audio properties as a map (name of property, value) + PropertyVector getPropertiesAsVector() const; ///< Same data with a specific order private: #ifndef SWIG diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index fc678d59..7ccad12b 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -696,4 +696,19 @@ PropertyVector VideoProperties::getPropertiesAsVector() const return data; } +PropertyMap VideoProperties::getPropertiesAsMap() const +{ + PropertyMap dataMap; + + PropertyVector dataVector( getPropertiesAsVector() ); + for( PropertyVector::const_iterator it = dataVector.begin(); + it != dataVector.end(); + ++it ) + { + dataMap.insert( std::make_pair( it->first, it->second ) ); + } + + return dataMap; +} + } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.hpp b/src/AvTranscoder/mediaProperty/VideoProperties.hpp index 256ea93f..79b2d32b 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.hpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.hpp @@ -83,7 +83,8 @@ class AvExport VideoProperties const PixelProperties& getPixelProperties() const { return _pixelProperties; } #endif - PropertyVector getPropertiesAsVector() const; ///< Return all video and pixel properties as a vector (name of property: value) + PropertyMap getPropertiesAsMap() const; ///< Return all video and pixel properties as a map (name of property, value) + PropertyVector getPropertiesAsVector() const; ///< Same data with a specific order private: /** diff --git a/src/AvTranscoder/mediaProperty/util.hpp b/src/AvTranscoder/mediaProperty/util.hpp index ecc41a33..69122fe6 100644 --- a/src/AvTranscoder/mediaProperty/util.hpp +++ b/src/AvTranscoder/mediaProperty/util.hpp @@ -9,6 +9,7 @@ extern "C" { #include #include +#include #include #include @@ -19,6 +20,7 @@ namespace avtranscoder * @brief PropertyVector is a vector of pair, because the order of properties matters to us. */ typedef std::vector< std::pair > PropertyVector; +typedef std::map< std::string, std::string > PropertyMap; namespace detail { From 8732cbe6ae05dd157792cd7a85632b1eb3981ea6 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Fri, 3 Apr 2015 14:32:18 +0200 Subject: [PATCH 3/5] pyTest: update testTranscoderRewrap Since getPropertiesAsMap returns a map. --- test/pyTest/testTranscoderRewrap.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/pyTest/testTranscoderRewrap.py b/test/pyTest/testTranscoderRewrap.py index 2d4163b8..0b6e41fe 100644 --- a/test/pyTest/testTranscoderRewrap.py +++ b/test/pyTest/testTranscoderRewrap.py @@ -51,11 +51,11 @@ def testRewrapAudioStream(): # check audio properties src_propertiesMap = src_audioStream.getPropertiesAsMap() dst_propertiesMap = dst_audioStream.getPropertiesAsMap() - for i in range(0, len(src_propertiesMap)): + for key in src_propertiesMap: # @todo: don't skip channel layout - if src_propertiesMap[i][0] == "channelLayout": + if key == "channelLayout": continue - assert_equals( src_propertiesMap[i], dst_propertiesMap[i] ) + assert_equals( src_propertiesMap[key], dst_propertiesMap[key] ) def testRewrapVideoStream(): """ @@ -95,5 +95,5 @@ def testRewrapVideoStream(): # check audio properties src_propertiesMap = src_videoStream.getPropertiesAsMap() dst_propertiesMap = dst_videoStream.getPropertiesAsMap() - for i in range(0, len(src_propertiesMap)): - assert_equals( src_propertiesMap[i], dst_propertiesMap[i] ) + for key in src_propertiesMap: + assert_equals( src_propertiesMap[key], dst_propertiesMap[key] ) From 7bbbdac2de7c6accc854cc575e05f445d24d6f39 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Fri, 3 Apr 2015 15:19:41 +0200 Subject: [PATCH 4/5] mediaProperty: add based class StreamProperties --- .../mediaProperty/AttachementProperties.cpp | 44 ------------------- .../mediaProperty/AttachementProperties.hpp | 26 +++-------- .../mediaProperty/AudioProperties.cpp | 20 +-------- .../mediaProperty/AudioProperties.hpp | 17 ++----- .../mediaProperty/DataProperties.cpp | 41 ----------------- .../mediaProperty/DataProperties.hpp | 26 +++-------- ...tleProperties.cpp => StreamProperties.cpp} | 28 ++++++++++-- .../mediaProperty/StreamProperties.hpp | 38 ++++++++++++++++ .../mediaProperty/SubtitleProperties.hpp | 26 +++-------- .../mediaProperty/UnknownProperties.cpp | 44 ------------------- .../mediaProperty/UnknownProperties.hpp | 26 +++-------- .../mediaProperty/VideoProperties.cpp | 18 +------- .../mediaProperty/VideoProperties.hpp | 16 ++----- .../mediaProperty/mediaProperty.i | 2 + 14 files changed, 92 insertions(+), 280 deletions(-) delete mode 100644 src/AvTranscoder/mediaProperty/AttachementProperties.cpp rename src/AvTranscoder/mediaProperty/{SubtitleProperties.cpp => StreamProperties.cpp} (56%) create mode 100644 src/AvTranscoder/mediaProperty/StreamProperties.hpp delete mode 100644 src/AvTranscoder/mediaProperty/UnknownProperties.cpp diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp b/src/AvTranscoder/mediaProperty/AttachementProperties.cpp deleted file mode 100644 index 24e8a6c5..00000000 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "AttachementProperties.hpp" - -#include - -namespace avtranscoder -{ - -AttachementProperties::AttachementProperties( const FormatContext& formatContext, const size_t index ) - : _formatContext( &formatContext.getAVFormatContext() ) - , _streamIndex( index ) -{ - if( _formatContext ) - detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); -} - -size_t AttachementProperties::getStreamId() const -{ - if( ! _formatContext ) - throw std::runtime_error( "unknown format context" ); - return _formatContext->streams[_streamIndex]->id; -} - -PropertyVector AttachementProperties::getPropertiesAsVector() const -{ - PropertyVector data; - - try - { - detail::add( data, "streamId", getStreamId() ); - } - catch( const std::exception& e ) - { - detail::add( data, "streamId", e.what() ); - } - - for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) - { - detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); - } - - return data; -} - -} diff --git a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp index 0e963557..944c6a77 100644 --- a/src/AvTranscoder/mediaProperty/AttachementProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AttachementProperties.hpp @@ -1,33 +1,17 @@ #ifndef _AV_TRANSCODER_MEDIA_PROPERTY_ATTACHEMENT_PROPERTIES_HPP #define _AV_TRANSCODER_MEDIA_PROPERTY_ATTACHEMENT_PROPERTIES_HPP -#include -#include -#include +#include namespace avtranscoder { -class AvExport AttachementProperties +class AvExport AttachementProperties: public StreamProperties { public: - AttachementProperties( const FormatContext& formatContext, const size_t index ); - - size_t getStreamIndex() const { return _streamIndex; } - size_t getStreamId() const; - PropertyVector& getMetadatas() { return _metadatas; } - -#ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } -#endif - - PropertyVector getPropertiesAsVector() const; ///< Return all attachement properties as a vector (name of property: value) - -private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) - - size_t _streamIndex; - PropertyVector _metadatas; + AttachementProperties( const FormatContext& formatContext, const size_t index ) + : StreamProperties( formatContext, index ) + {} }; } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.cpp b/src/AvTranscoder/mediaProperty/AudioProperties.cpp index 80802df1..d93031f2 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.cpp @@ -14,10 +14,7 @@ namespace avtranscoder { AudioProperties::AudioProperties( const FormatContext& formatContext, const size_t index ) - : _formatContext( &formatContext.getAVFormatContext() ) - , _codecContext( NULL ) - , _codec( NULL ) - , _streamIndex( index ) + : StreamProperties( formatContext, index ) { if( _formatContext ) _codecContext = _formatContext->streams[index]->codec; @@ -231,19 +228,4 @@ PropertyVector AudioProperties::getPropertiesAsVector() const return data; } -PropertyMap AudioProperties::getPropertiesAsMap() const -{ - PropertyMap dataMap; - - PropertyVector dataVector( getPropertiesAsVector() ); - for( PropertyVector::const_iterator it = dataVector.begin(); - it != dataVector.end(); - ++it ) - { - dataMap.insert( std::make_pair( it->first, it->second ) ); - } - - return dataMap; -} - } diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.hpp b/src/AvTranscoder/mediaProperty/AudioProperties.hpp index 2c7b258d..06952be9 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.hpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.hpp @@ -1,16 +1,14 @@ #ifndef _AV_TRANSCODER_MEDIA_PROPERTY_AUDIO_PROPERTIES_HPP #define _AV_TRANSCODER_MEDIA_PROPERTY_AUDIO_PROPERTIES_HPP -#include -#include -#include +#include #include namespace avtranscoder { -class AvExport AudioProperties +class AvExport AudioProperties : public StreamProperties { public: AudioProperties( const FormatContext& formatContext, const size_t index ); @@ -23,7 +21,6 @@ class AvExport AudioProperties std::string getChannelName() const; std::string getChannelDescription() const; - size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; size_t getCodecId() const; size_t getSampleRate() const; @@ -35,15 +32,11 @@ class AvExport AudioProperties Rational getTimeBase() const; double getDuration() const; - PropertyVector& getMetadatas() { return _metadatas; } - #ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } AVCodecContext& getAVCodecContext() { return *_codecContext; } #endif - PropertyMap getPropertiesAsMap() const; ///< Return all audio properties as a map (name of property, value) - PropertyVector getPropertiesAsVector() const; ///< Same data with a specific order + PropertyVector getPropertiesAsVector() const; private: #ifndef SWIG @@ -62,12 +55,8 @@ class AvExport AudioProperties #endif private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) AVCodecContext* _codecContext; ///< Has link (no ownership) AVCodec* _codec; ///< Has link (no ownership) - - size_t _streamIndex; - PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/DataProperties.cpp b/src/AvTranscoder/mediaProperty/DataProperties.cpp index 763278d9..b552dda4 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.cpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.cpp @@ -2,54 +2,13 @@ extern "C" { #include -#include -#include } #include -#include namespace avtranscoder { -DataProperties::DataProperties( const FormatContext& formatContext, const size_t index ) - : _formatContext( &formatContext.getAVFormatContext() ) - , _streamIndex( index ) -{ - //detectAncillaryData( _formatContext, _streamIndex ); - - if( _formatContext ) - detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); -} - -size_t DataProperties::getStreamId() const -{ - if( ! _formatContext ) - throw std::runtime_error( "unknown format context" ); - return _formatContext->streams[_streamIndex]->id; -} - -PropertyVector DataProperties::getPropertiesAsVector() const -{ - PropertyVector data; - - try - { - detail::add( data, "streamId", getStreamId() ); - } - catch( const std::exception& e ) - { - detail::add( data, "streamId", e.what() ); - } - - for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) - { - detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); - } - - return data; -} - void DataProperties::detectAncillaryData() { AVPacket pkt; diff --git a/src/AvTranscoder/mediaProperty/DataProperties.hpp b/src/AvTranscoder/mediaProperty/DataProperties.hpp index b6b4b463..55c44d28 100644 --- a/src/AvTranscoder/mediaProperty/DataProperties.hpp +++ b/src/AvTranscoder/mediaProperty/DataProperties.hpp @@ -1,36 +1,20 @@ #ifndef _AV_TRANSCODER_MEDIA_PROPERTY_DATA_PROPERTIES_HPP #define _AV_TRANSCODER_MEDIA_PROPERTY_DATA_PROPERTIES_HPP -#include -#include -#include +#include namespace avtranscoder { -class AvExport DataProperties +class AvExport DataProperties : public StreamProperties { public: - DataProperties( const FormatContext& formatContext, const size_t index ); - - size_t getStreamIndex() const { return _streamIndex; } - size_t getStreamId() const; - PropertyVector& getMetadatas() { return _metadatas; } - -#ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } -#endif - - PropertyVector getPropertiesAsVector() const; ///< Return all data properties as a vector (name of property: value) + DataProperties( const FormatContext& formatContext, const size_t index ) + : StreamProperties( formatContext, index ) + {} private: void detectAncillaryData(); - -private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) - - size_t _streamIndex; - PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp b/src/AvTranscoder/mediaProperty/StreamProperties.cpp similarity index 56% rename from src/AvTranscoder/mediaProperty/SubtitleProperties.cpp rename to src/AvTranscoder/mediaProperty/StreamProperties.cpp index ac83fa75..14a34d52 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.cpp +++ b/src/AvTranscoder/mediaProperty/StreamProperties.cpp @@ -1,11 +1,11 @@ -#include "SubtitleProperties.hpp" +#include "StreamProperties.hpp" #include namespace avtranscoder { -SubtitleProperties::SubtitleProperties( const FormatContext& formatContext, const size_t index ) +StreamProperties::StreamProperties( const FormatContext& formatContext, const size_t index ) : _formatContext( &formatContext.getAVFormatContext() ) , _streamIndex( index ) { @@ -13,14 +13,19 @@ SubtitleProperties::SubtitleProperties( const FormatContext& formatContext, cons detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); } -size_t SubtitleProperties::getStreamId() const +StreamProperties::~StreamProperties() +{ + +} + +size_t StreamProperties::getStreamId() const { if( ! _formatContext ) throw std::runtime_error( "unknown format context" ); return _formatContext->streams[_streamIndex]->id; } -PropertyVector SubtitleProperties::getPropertiesAsVector() const +PropertyVector StreamProperties::getPropertiesAsVector() const { PropertyVector data; @@ -41,4 +46,19 @@ PropertyVector SubtitleProperties::getPropertiesAsVector() const return data; } +PropertyMap StreamProperties::getPropertiesAsMap() const +{ + PropertyMap dataMap; + + PropertyVector dataVector( getPropertiesAsVector() ); + for( PropertyVector::const_iterator it = dataVector.begin(); + it != dataVector.end(); + ++it ) + { + dataMap.insert( std::make_pair( it->first, it->second ) ); + } + + return dataMap; +} + } diff --git a/src/AvTranscoder/mediaProperty/StreamProperties.hpp b/src/AvTranscoder/mediaProperty/StreamProperties.hpp new file mode 100644 index 00000000..773ca70f --- /dev/null +++ b/src/AvTranscoder/mediaProperty/StreamProperties.hpp @@ -0,0 +1,38 @@ +#ifndef _AV_TRANSCODER_MEDIA_PROPERTY_STREAM_PROPERTIES_HPP +#define _AV_TRANSCODER_MEDIA_PROPERTY_STREAM_PROPERTIES_HPP + +#include +#include +#include + +namespace avtranscoder +{ + +/// Virtual based class of properties for all types of stream +class AvExport StreamProperties +{ +public: + StreamProperties( const FormatContext& formatContext, const size_t index ); + virtual ~StreamProperties() = 0; + + size_t getStreamIndex() const { return _streamIndex; } + size_t getStreamId() const; + PropertyVector& getMetadatas() { return _metadatas; } + +#ifndef SWIG + const AVFormatContext& getAVFormatContext() { return *_formatContext; } +#endif + + PropertyMap getPropertiesAsMap() const; ///< Return all properties as a map (name of property, value) + PropertyVector getPropertiesAsVector() const; ///< Same data with a specific order + +protected: + const AVFormatContext* _formatContext; ///< Has link (no ownership) + + size_t _streamIndex; + PropertyVector _metadatas; +}; + +} + +#endif diff --git a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp index f0d1751b..98bb54ce 100644 --- a/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp +++ b/src/AvTranscoder/mediaProperty/SubtitleProperties.hpp @@ -1,33 +1,17 @@ #ifndef _AV_TRANSCODER_MEDIA_PROPERTY_SUBTITLE_PROPERTIES_HPP #define _AV_TRANSCODER_MEDIA_PROPERTY_SUBTITLE_PROPERTIES_HPP -#include -#include -#include +#include namespace avtranscoder { -class AvExport SubtitleProperties +class AvExport SubtitleProperties : public StreamProperties { public: - SubtitleProperties( const FormatContext& formatContext, const size_t index ); - - size_t getStreamIndex() const { return _streamIndex; } - size_t getStreamId() const; - PropertyVector& getMetadatas() { return _metadatas; } - -#ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } -#endif - - PropertyVector getPropertiesAsVector() const; ///< Return all subtitle properties as a vector (name of property: value) - -private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) - - size_t _streamIndex; - PropertyVector _metadatas; + SubtitleProperties( const FormatContext& formatContext, const size_t index ) + : StreamProperties( formatContext, index ) + {} }; } diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp b/src/AvTranscoder/mediaProperty/UnknownProperties.cpp deleted file mode 100644 index 61595690..00000000 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "UnknownProperties.hpp" - -#include - -namespace avtranscoder -{ - -UnknownProperties::UnknownProperties( const FormatContext& formatContext, const size_t index ) - : _formatContext( &formatContext.getAVFormatContext() ) - , _streamIndex( index ) -{ - if( _formatContext ) - detail::fillMetadataDictionnary( _formatContext->streams[index]->metadata, _metadatas ); -} - -size_t UnknownProperties::getStreamId() const -{ - if( ! _formatContext ) - throw std::runtime_error( "unknown format context" ); - return _formatContext->streams[_streamIndex]->id; -} - -PropertyVector UnknownProperties::getPropertiesAsVector() const -{ - PropertyVector data; - - try - { - detail::add( data, "streamId", getStreamId() ); - } - catch( const std::exception& e ) - { - detail::add( data, "streamId", e.what() ); - } - - for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) - { - detail::add( data, _metadatas.at( metadataIndex ).first, _metadatas.at( metadataIndex ).second ); - } - - return data; -} - -} diff --git a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp index 2604b50b..b396035f 100644 --- a/src/AvTranscoder/mediaProperty/UnknownProperties.hpp +++ b/src/AvTranscoder/mediaProperty/UnknownProperties.hpp @@ -1,33 +1,17 @@ #ifndef _AV_TRANSCODER_MEDIA_PROPERTY_UNKNOWN_PROPERTIES_HPP #define _AV_TRANSCODER_MEDIA_PROPERTY_UNKNOWN_PROPERTIES_HPP -#include -#include -#include +#include namespace avtranscoder { -class AvExport UnknownProperties +class AvExport UnknownProperties : public StreamProperties { public: - UnknownProperties( const FormatContext& formatContext, const size_t index ); - - size_t getStreamIndex() const { return _streamIndex; } - size_t getStreamId() const; - PropertyVector& getMetadatas() { return _metadatas; } - -#ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } -#endif - - PropertyVector getPropertiesAsVector() const; ///< Return unknown properties as a vector (name of property: value) - -private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) - - size_t _streamIndex; - PropertyVector _metadatas; + UnknownProperties( const FormatContext& formatContext, const size_t index ) + : StreamProperties( formatContext, index ) + {} }; } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index 7ccad12b..3f877b3c 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -16,10 +16,9 @@ namespace avtranscoder { VideoProperties::VideoProperties( const FormatContext& formatContext, const size_t index, IProgress& progress, const EAnalyseLevel level ) - : _formatContext( &formatContext.getAVFormatContext() ) + : StreamProperties( formatContext, index ) , _codecContext( NULL ) , _codec( NULL ) - , _streamIndex( index ) , _pixelProperties() , _isInterlaced( false ) , _isTopFieldFirst( false ) @@ -696,19 +695,4 @@ PropertyVector VideoProperties::getPropertiesAsVector() const return data; } -PropertyMap VideoProperties::getPropertiesAsMap() const -{ - PropertyMap dataMap; - - PropertyVector dataVector( getPropertiesAsVector() ); - for( PropertyVector::const_iterator it = dataVector.begin(); - it != dataVector.end(); - ++it ) - { - dataMap.insert( std::make_pair( it->first, it->second ) ); - } - - return dataMap; -} - } diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.hpp b/src/AvTranscoder/mediaProperty/VideoProperties.hpp index 79b2d32b..adddb098 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.hpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.hpp @@ -3,10 +3,8 @@ #include "PixelProperties.hpp" -#include -#include +#include #include -#include #include extern "C" { @@ -20,7 +18,7 @@ extern "C" { namespace avtranscoder { -class AvExport VideoProperties +class AvExport VideoProperties : public StreamProperties { public: VideoProperties( const FormatContext& formatContext, const size_t index, IProgress& progress, const EAnalyseLevel level = eAnalyseLevelFirstGop ); @@ -44,7 +42,6 @@ class AvExport VideoProperties Rational getSar() const; // sample/pixel aspect ratio Rational getDar() const; // display aspect ratio - size_t getStreamIndex() const { return _streamIndex; } size_t getStreamId() const; size_t getCodecId() const; size_t getBitRate() const; ///< in bits/s @@ -75,16 +72,12 @@ class AvExport VideoProperties std::vector< std::pair< char, bool > > getGopStructure() const { return _gopStructure; } //@} - PropertyVector& getMetadatas() { return _metadatas; } - #ifndef SWIG - const AVFormatContext& getAVFormatContext() { return *_formatContext; } AVCodecContext& getAVCodecContext() { return *_codecContext; } const PixelProperties& getPixelProperties() const { return _pixelProperties; } #endif - PropertyMap getPropertiesAsMap() const; ///< Return all video and pixel properties as a map (name of property, value) - PropertyVector getPropertiesAsVector() const; ///< Same data with a specific order + PropertyVector getPropertiesAsVector() const; private: /** @@ -109,11 +102,9 @@ class AvExport VideoProperties #endif private: - const AVFormatContext* _formatContext; ///< Has link (no ownership) AVCodecContext* _codecContext; ///< Has link (no ownership) AVCodec* _codec; ///< Has link (no ownership) - size_t _streamIndex; PixelProperties _pixelProperties; //@{ // Can acces these data when analyse first gop @@ -121,7 +112,6 @@ class AvExport VideoProperties bool _isTopFieldFirst; std::vector< std::pair< char, bool > > _gopStructure; //@} - PropertyVector _metadatas; }; } diff --git a/src/AvTranscoder/mediaProperty/mediaProperty.i b/src/AvTranscoder/mediaProperty/mediaProperty.i index 75a734c7..a814a2cd 100644 --- a/src/AvTranscoder/mediaProperty/mediaProperty.i +++ b/src/AvTranscoder/mediaProperty/mediaProperty.i @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,7 @@ namespace std { %include %include %include +%include %include %include %include From e53ed0f30caf1c9a73d96fdf07355010a72e26bc Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Fri, 3 Apr 2015 15:23:32 +0200 Subject: [PATCH 5/5] mediaProperty: add streamIndex when access all properties --- src/AvTranscoder/mediaProperty/AudioProperties.cpp | 1 + src/AvTranscoder/mediaProperty/StreamProperties.cpp | 1 + src/AvTranscoder/mediaProperty/VideoProperties.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/AvTranscoder/mediaProperty/AudioProperties.cpp b/src/AvTranscoder/mediaProperty/AudioProperties.cpp index d93031f2..ac0412bd 100644 --- a/src/AvTranscoder/mediaProperty/AudioProperties.cpp +++ b/src/AvTranscoder/mediaProperty/AudioProperties.cpp @@ -204,6 +204,7 @@ PropertyVector AudioProperties::getPropertiesAsVector() const PropertyVector data; addProperty( data, "streamId", &AudioProperties::getStreamId ); + detail::add( data, "streamIndex", getStreamIndex() ); addProperty( data, "codecId", &AudioProperties::getCodecId ); addProperty( data, "codecName", &AudioProperties::getCodecName ); addProperty( data, "codecLongName", &AudioProperties::getCodecLongName ); diff --git a/src/AvTranscoder/mediaProperty/StreamProperties.cpp b/src/AvTranscoder/mediaProperty/StreamProperties.cpp index 14a34d52..dbfca9eb 100644 --- a/src/AvTranscoder/mediaProperty/StreamProperties.cpp +++ b/src/AvTranscoder/mediaProperty/StreamProperties.cpp @@ -37,6 +37,7 @@ PropertyVector StreamProperties::getPropertiesAsVector() const { detail::add( data, "streamId", e.what() ); } + detail::add( data, "streamIndex", getStreamIndex() ); for( size_t metadataIndex = 0; metadataIndex < _metadatas.size(); ++metadataIndex ) { diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index 3f877b3c..07fa5ee9 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -641,6 +641,7 @@ PropertyVector VideoProperties::getPropertiesAsVector() const PropertyVector data; addProperty( data, "streamId", &VideoProperties::getStreamId ); + detail::add( data, "streamIndex", getStreamIndex() ); addProperty( data, "codecId", &VideoProperties::getCodecId ); addProperty( data, "codecName", &VideoProperties::getCodecName ); addProperty( data, "codecLongName", &VideoProperties::getCodecLongName );