Skip to content

Commit 66e35f4

Browse files
revert to fix transcoder
1 parent d4275ec commit 66e35f4

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

src/AvTranscoder/Transcoder/Transcoder.cpp

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ Transcoder::Transcoder( OutputFile& outputFile )
1616

1717
Transcoder::~Transcoder()
1818
{
19+
for( std::vector< InputFile* >::iterator it = _inputFiles.begin(); it != _inputFiles.end(); ++it )
20+
{
21+
delete (*it);
22+
}
23+
for( std::vector< StreamTranscoder* >::iterator it = _streamTranscoders.begin(); it != _streamTranscoders.end(); ++it )
24+
{
25+
delete (*it);
26+
}
1927
}
2028

2129
void Transcoder::add( const std::string& filename, const size_t streamIndex, const std::string& profileName )
@@ -54,7 +62,7 @@ bool Transcoder::processFrame()
5462
std::cout << "process frame" << std::endl;
5563
for( size_t streamIndex = 0; streamIndex < _streamTranscoders.size(); ++streamIndex )
5664
{
57-
if( ! _streamTranscoders.at( streamIndex ).processFrame() )
65+
if( ! _streamTranscoders.at( streamIndex )->processFrame() )
5866
{
5967
_streamTranscoders.clear();
6068
}
@@ -117,7 +125,7 @@ void Transcoder::addRewrapStream( const std::string& filename, const size_t stre
117125
{
118126
InputFile* referenceFile = addInputFile( filename, streamIndex );
119127

120-
_streamTranscoders.push_back( StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile ) );
128+
_streamTranscoders.push_back( new StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile ) );
121129
_inputStreams.push_back( &referenceFile->getStream( streamIndex ) );
122130
}
123131

@@ -129,13 +137,13 @@ void Transcoder::addTranscodeStream( const std::string& filename, const size_t s
129137
{
130138
case AVMEDIA_TYPE_VIDEO:
131139
{
132-
_streamTranscoders.push_back( StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile, profile ) );
140+
_streamTranscoders.push_back( new StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile, profile ) );
133141
_inputStreams.push_back( &referenceFile->getStream( streamIndex ) );
134142
break;
135143
}
136144
case AVMEDIA_TYPE_AUDIO:
137145
{
138-
_streamTranscoders.push_back( StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile, profile ) );
146+
_streamTranscoders.push_back( new StreamTranscoder( referenceFile->getStream( streamIndex ), _outputFile, profile ) );
139147
_inputStreams.push_back( &referenceFile->getStream( streamIndex ) );
140148
break;
141149
}
@@ -157,25 +165,25 @@ void Transcoder::addDummyStream( Profile::ProfileDesc& profile )
157165
if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeAudio )
158166
{
159167
_dummyAudio.push_back( DummyAudio() );
160-
_streamTranscoders.push_back( StreamTranscoder( _dummyAudio.back(), _outputFile, profile ) );
168+
_streamTranscoders.push_back( new StreamTranscoder( _dummyAudio.back(), _outputFile, profile ) );
161169
}
162170

163171
if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeVideo )
164172
{
165173
_dummyVideo.push_back( DummyVideo() );
166-
_streamTranscoders.push_back( StreamTranscoder( _dummyVideo.back(), _outputFile, profile ) );
174+
_streamTranscoders.push_back( new StreamTranscoder( _dummyVideo.back(), _outputFile, profile ) );
167175
}
168176
}
169177

170178
InputFile* Transcoder::addInputFile( const std::string& filename, const size_t streamIndex )
171179
{
172180
InputFile* referenceFile = NULL;
173181

174-
for( std::vector< InputFile >::iterator it = _inputFiles.begin(); it != _inputFiles.end(); ++it )
182+
for( std::vector< InputFile* >::iterator it = _inputFiles.begin(); it != _inputFiles.end(); ++it )
175183
{
176-
if( (*it).getFilename() == filename )
184+
if( (*it)->getFilename() == filename )
177185
{
178-
referenceFile = &(*it);
186+
referenceFile = (*it);
179187
break;
180188
}
181189
}
@@ -184,8 +192,8 @@ InputFile* Transcoder::addInputFile( const std::string& filename, const size_t s
184192
{
185193
if( _verbose )
186194
std::cout << "new InputFile for " << filename << std::endl;
187-
_inputFiles.push_back( InputFile( filename ) );
188-
referenceFile = &_inputFiles.back();
195+
_inputFiles.push_back( new InputFile( filename ) );
196+
referenceFile = _inputFiles.back();
189197
}
190198

191199
referenceFile->readStream( streamIndex );

src/AvTranscoder/Transcoder/Transcoder.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ class Transcoder
5555

5656
private:
5757
OutputFile& _outputFile;
58-
std::vector< InputFile > _inputFiles;
58+
std::vector< InputFile* > _inputFiles;
5959

6060
std::vector< InputStream* > _inputStreams;
61-
std::vector< StreamTranscoder > _streamTranscoders;
61+
std::vector< StreamTranscoder* > _streamTranscoders;
6262

6363
std::vector< DummyAudio > _dummyAudio;
6464
std::vector< DummyVideo > _dummyVideo;

0 commit comments

Comments
 (0)