Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e351816

Browse files
author
Clement Champetier
committedAug 12, 2014
MediaMetadatasStructures: add metadata for each stream
* All type of stream can have metadata! * Fill these data when add metadata of AVFormatContext of the stream in InputFile::analyse function. * Get these data with getDataMap function corresponding to the structure you want.
1 parent 3d99fa5 commit e351816

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed
 

‎src/AvTranscoder/File/InputFile.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,31 +89,37 @@ InputFile& InputFile::analyse( ProgressListener& progress, const EAnalyseLevel l
8989
case AVMEDIA_TYPE_VIDEO:
9090
{
9191
_properties.videoStreams.push_back( videoStreamInfo( _formatContext, streamId, progress, level ) );
92+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.videoStreams.back().metadatas );
9293
break;
9394
}
9495
case AVMEDIA_TYPE_AUDIO:
9596
{
9697
_properties.audioStreams.push_back( audioStreamInfo( _formatContext, streamId ) );
98+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.audioStreams.back().metadatas );
9799
break;
98100
}
99101
case AVMEDIA_TYPE_DATA:
100102
{
101103
_properties.dataStreams.push_back( dataStreamInfo( _formatContext, streamId ) );
104+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.dataStreams.back().metadatas );
102105
break;
103106
}
104107
case AVMEDIA_TYPE_SUBTITLE:
105108
{
106109
_properties.subtitleStreams.push_back( subtitleStreamInfo( _formatContext, streamId ) );
110+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.subtitleStreams.back().metadatas );
107111
break;
108112
}
109113
case AVMEDIA_TYPE_ATTACHMENT:
110114
{
111115
_properties.attachementStreams.push_back( attachementStreamInfo( _formatContext, streamId ) );
116+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.attachementStreams.back().metadatas );
112117
break;
113118
}
114119
case AVMEDIA_TYPE_UNKNOWN:
115120
{
116121
_properties.unknownStreams.push_back( unknownStreamInfo( _formatContext, streamId ) );
122+
detail::fillMetadataDictionnary( _formatContext->streams[streamId]->metadata, _properties.unknownStreams.back().metadatas );
117123
break;
118124
}
119125
case AVMEDIA_TYPE_NB:

‎src/AvTranscoder/Metadatas/MediaMetadatasStructures.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ MetadatasMap VideoProperties::getDataMap() const
101101
detail::add( dataMap, "has B frames", hasBFrames );
102102
detail::add( dataMap, "references frames", referencesFrames );
103103

104+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
105+
{
106+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
107+
}
108+
104109
return dataMap;
105110
}
106111

@@ -120,6 +125,10 @@ MetadatasMap AudioProperties::getDataMap() const
120125
detail::add( dataMap, "channel name", channelName );
121126
detail::add( dataMap, "channel description", channelDescription );
122127

128+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
129+
{
130+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
131+
}
123132

124133
return dataMap;
125134
}
@@ -130,6 +139,11 @@ MetadatasMap DataProperties::getDataMap() const
130139

131140
detail::add( dataMap, "streamId", streamId );
132141

142+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
143+
{
144+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
145+
}
146+
133147
return dataMap;
134148
}
135149

@@ -139,6 +153,11 @@ MetadatasMap SubtitleProperties::getDataMap() const
139153

140154
detail::add( dataMap, "streamId", streamId );
141155

156+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
157+
{
158+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
159+
}
160+
142161
return dataMap;
143162
}
144163

@@ -148,6 +167,11 @@ MetadatasMap AttachementProperties::getDataMap() const
148167

149168
detail::add( dataMap, "streamId", streamId );
150169

170+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
171+
{
172+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
173+
}
174+
151175
return dataMap;
152176
}
153177

@@ -157,6 +181,11 @@ MetadatasMap UnknownProperties::getDataMap() const
157181

158182
detail::add( dataMap, "streamId", streamId );
159183

184+
for( size_t metadataIndex = 0; metadataIndex < metadatas.size(); ++metadataIndex )
185+
{
186+
detail::add( dataMap, metadatas.at( metadataIndex ).first, metadatas.at( metadataIndex ).second );
187+
}
188+
160189
return dataMap;
161190
}
162191

‎src/AvTranscoder/Metadatas/MediaMetadatasStructures.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ struct VideoProperties
8585
std::vector< std::pair< char, bool > > gopStructure;
8686
std::vector<Channel> channels;
8787

88+
MetadatasMap metadatas;
89+
8890
public:
8991
MetadatasMap getDataMap() const;
9092
};
@@ -103,13 +105,16 @@ struct AudioProperties
103105
size_t channels;
104106
size_t bit_rate;
105107

108+
MetadatasMap metadatas;
109+
106110
public:
107111
MetadatasMap getDataMap() const;
108112
};
109113

110114
struct DataProperties
111115
{
112116
size_t streamId;
117+
MetadatasMap metadatas;
113118

114119
public:
115120
MetadatasMap getDataMap() const;
@@ -118,6 +123,7 @@ struct DataProperties
118123
struct SubtitleProperties
119124
{
120125
size_t streamId;
126+
MetadatasMap metadatas;
121127

122128
public:
123129
MetadatasMap getDataMap() const;
@@ -126,6 +132,7 @@ struct SubtitleProperties
126132
struct AttachementProperties
127133
{
128134
size_t streamId;
135+
MetadatasMap metadatas;
129136

130137
public:
131138
MetadatasMap getDataMap() const;
@@ -134,6 +141,7 @@ struct AttachementProperties
134141
struct UnknownProperties
135142
{
136143
size_t streamId;
144+
MetadatasMap metadatas;
137145

138146
public:
139147
MetadatasMap getDataMap() const;

0 commit comments

Comments
 (0)
Failed to load comments.