@@ -15,6 +15,7 @@ FileProperties::FileProperties(const InputFile& file)
15
15
: _file(file)
16
16
, _formatContext(&file.getFormatContext())
17
17
, _avFormatContext(&file.getFormatContext().getAVFormatContext())
18
+ , _streamsProperties()
18
19
, _videoStreams()
19
20
, _audioStreams()
20
21
, _dataStreams()
@@ -36,7 +37,12 @@ void FileProperties::extractStreamProperties(IProgress& progress, const EAnalyse
36
37
const_cast <InputFile&>(_file).seekAtFrame (0 , AVSEEK_FLAG_BACKWARD);
37
38
38
39
// clear properties
39
- clearStreamProperties ();
40
+ _videoStreams.clear ();
41
+ _audioStreams.clear ();
42
+ _dataStreams.clear ();
43
+ _subtitleStreams.clear ();
44
+ _attachementStreams.clear ();
45
+ _unknownStreams.clear ();
40
46
41
47
// reload properties
42
48
for (size_t streamIndex = 0 ; streamIndex < _formatContext->getNbStreams (); ++streamIndex)
@@ -86,41 +92,44 @@ void FileProperties::extractStreamProperties(IProgress& progress, const EAnalyse
86
92
}
87
93
}
88
94
95
+ // clear streams
96
+ _streamsProperties.clear ();
97
+
89
98
// once the streams vectors are filled, add their references the base streams vector
90
99
for (size_t streamIndex = 0 ; streamIndex < _videoStreams.size (); ++streamIndex)
91
100
{
92
101
const size_t videoStreamIndex = _videoStreams.at (streamIndex).getStreamIndex ();
93
- _streams [videoStreamIndex] = &_videoStreams.at (streamIndex);
102
+ _streamsProperties [videoStreamIndex] = &_videoStreams.at (streamIndex);
94
103
}
95
104
96
105
for (size_t streamIndex = 0 ; streamIndex < _audioStreams.size (); ++streamIndex)
97
106
{
98
107
const size_t audioStreamIndex = _audioStreams.at (streamIndex).getStreamIndex ();
99
- _streams [audioStreamIndex] = &_audioStreams.at (streamIndex);
108
+ _streamsProperties [audioStreamIndex] = &_audioStreams.at (streamIndex);
100
109
}
101
110
102
111
for (size_t streamIndex = 0 ; streamIndex < _dataStreams.size (); ++streamIndex)
103
112
{
104
113
const size_t dataStreamIndex = _dataStreams.at (streamIndex).getStreamIndex ();
105
- _streams [dataStreamIndex] = &_dataStreams.at (streamIndex);
114
+ _streamsProperties [dataStreamIndex] = &_dataStreams.at (streamIndex);
106
115
}
107
116
108
117
for (size_t streamIndex = 0 ; streamIndex < _subtitleStreams.size (); ++streamIndex)
109
118
{
110
119
const size_t subtitleStreamIndex = _subtitleStreams.at (streamIndex).getStreamIndex ();
111
- _streams [subtitleStreamIndex] = &_subtitleStreams.at (streamIndex);
120
+ _streamsProperties [subtitleStreamIndex] = &_subtitleStreams.at (streamIndex);
112
121
}
113
122
114
123
for (size_t streamIndex = 0 ; streamIndex < _attachementStreams.size (); ++streamIndex)
115
124
{
116
125
const size_t attachementStreamIndex = _attachementStreams.at (streamIndex).getStreamIndex ();
117
- _streams [attachementStreamIndex] = &_attachementStreams.at (streamIndex);
126
+ _streamsProperties [attachementStreamIndex] = &_attachementStreams.at (streamIndex);
118
127
}
119
128
120
129
for (size_t streamIndex = 0 ; streamIndex < _unknownStreams.size (); ++streamIndex)
121
130
{
122
131
const size_t unknownStreamIndex = _unknownStreams.at (streamIndex).getStreamIndex ();
123
- _streams [unknownStreamIndex] = &_unknownStreams.at (streamIndex);
132
+ _streamsProperties [unknownStreamIndex] = &_unknownStreams.at (streamIndex);
124
133
}
125
134
126
135
// Returns at the beginning of the stream after any deep analysis
@@ -216,19 +225,19 @@ size_t FileProperties::getPacketSize() const
216
225
217
226
const avtranscoder::StreamProperties& FileProperties::getStreamPropertiesWithIndex (const size_t streamIndex) const
218
227
{
219
- avtranscoder::StreamProperties* properties = _streams .find (streamIndex)->second ;
228
+ avtranscoder::StreamProperties* properties = _streamsProperties .find (streamIndex)->second ;
220
229
if (properties)
221
230
return *properties;
222
- std::stringstream os ;
223
- os << " No stream properties correspond to stream at index " ;
224
- os << streamIndex;
225
- throw std::runtime_error (os .str ());
231
+ std::stringstream msg ;
232
+ msg << " No stream properties correspond to stream at index " ;
233
+ msg << streamIndex;
234
+ throw std::runtime_error (msg .str ());
226
235
}
227
236
228
237
const std::vector<avtranscoder::StreamProperties*> FileProperties::getStreamProperties () const
229
238
{
230
239
std::vector<avtranscoder::StreamProperties*> streams;
231
- for (std::map<size_t , StreamProperties*>::const_iterator it = _streams .begin (); it != _streams .end (); ++it)
240
+ for (std::map<size_t , StreamProperties*>::const_iterator it = _streamsProperties .begin (); it != _streamsProperties .end (); ++it)
232
241
{
233
242
streams.push_back (it->second );
234
243
}
@@ -373,18 +382,6 @@ std::string FileProperties::allPropertiesAsJson() const
373
382
return writer.build ();
374
383
}
375
384
376
- void FileProperties::clearStreamProperties ()
377
- {
378
- _streams.clear ();
379
-
380
- _videoStreams.clear ();
381
- _audioStreams.clear ();
382
- _dataStreams.clear ();
383
- _subtitleStreams.clear ();
384
- _attachementStreams.clear ();
385
- _unknownStreams.clear ();
386
- }
387
-
388
385
std::ostream& operator <<(std::ostream& flux, const FileProperties& fileProperties)
389
386
{
390
387
flux << std::left;
0 commit comments