Skip to content

Commit c25cd79

Browse files
Merge pull request #9 from valnoel/dev_transcoder
Remove polymorphism warning into StreamTranscoder
2 parents 86e8a4b + d70c7a7 commit c25cd79

File tree

2 files changed

+37
-16
lines changed

2 files changed

+37
-16
lines changed

src/AvTranscoder/StreamTranscoder.cpp

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ StreamTranscoder::StreamTranscoder( AvInputStream& stream, OutputFile& outputFil
88
: _stream( &stream )
99
, _frameBuffer( NULL )
1010
, _inputStreamReader( NULL )
11+
, _inputStreamVideo( NULL )
12+
, _inputStreamAudio( NULL )
1113
, _outputStreamWriter( NULL )
14+
, _outputStreamVideo( NULL )
15+
, _outputStreamAudio( NULL )
1216
, _outputFile( &outputFile )
1317
, _streamIndex( streamId )
1418
, _transcodeStream( false )
@@ -19,10 +23,16 @@ StreamTranscoder::~StreamTranscoder()
1923
{
2024
if( _frameBuffer )
2125
delete _frameBuffer;
22-
if( _inputStreamReader )
23-
delete _inputStreamReader;
24-
if( _outputStreamWriter )
25-
delete _outputStreamWriter;
26+
27+
if( _inputStreamVideo )
28+
delete _inputStreamVideo;
29+
if( _inputStreamAudio )
30+
delete _inputStreamAudio;
31+
32+
if( _outputStreamVideo )
33+
delete _outputStreamVideo;
34+
if( _outputStreamAudio )
35+
delete _outputStreamAudio;
2636
}
2737

2838
void StreamTranscoder::init( const std::string& profile )
@@ -33,7 +43,8 @@ void StreamTranscoder::init( const std::string& profile )
3343
{
3444
case AVMEDIA_TYPE_VIDEO :
3545
{
36-
_inputStreamReader = new InputStreamVideo( *_stream );
46+
_inputStreamVideo = new InputStreamVideo( *_stream );
47+
_inputStreamReader = _inputStreamVideo;
3748
_inputStreamReader->setup();
3849

3950
// re-wrap only, get output descriptor from input
@@ -43,18 +54,20 @@ void StreamTranscoder::init( const std::string& profile )
4354
break;
4455
}
4556

46-
OutputStreamVideo* outputStreamVideo = new OutputStreamVideo();
47-
_outputStreamWriter = outputStreamVideo;
57+
_outputStreamVideo = new OutputStreamVideo();
58+
_outputStreamWriter = _outputStreamVideo;
4859

4960
_outputStreamWriter->setProfile( profile );
50-
_outputFile->addVideoStream( outputStreamVideo->getVideoDesc() );
51-
_frameBuffer = new Image( outputStreamVideo->getVideoDesc().getImageDesc() );
61+
_outputFile->addVideoStream( _outputStreamVideo->getVideoDesc() );
62+
_videoFrameBuffer = new Image( _outputStreamVideo->getVideoDesc().getImageDesc() );
63+
_frameBuffer = _videoFrameBuffer;
5264

5365
break;
5466
}
5567
case AVMEDIA_TYPE_AUDIO :
5668
{
57-
_inputStreamReader = new InputStreamAudio( *_stream );
69+
_inputStreamAudio = new InputStreamAudio( *_stream );
70+
_inputStreamReader = _inputStreamAudio;
5871
_inputStreamReader->setup();
5972

6073
// re-wrap only, get output descriptor from input
@@ -64,12 +77,13 @@ void StreamTranscoder::init( const std::string& profile )
6477
break;
6578
}
6679

67-
OutputStreamAudio* outputStreamAudio = new OutputStreamAudio();
68-
_outputStreamWriter = outputStreamAudio;
80+
_outputStreamAudio = new OutputStreamAudio();
81+
_outputStreamWriter = _outputStreamAudio;
6982

70-
outputStreamAudio->setProfile( profile );
71-
_outputFile->addAudioStream( outputStreamAudio->getAudioDesc() );
72-
_frameBuffer = new AudioFrame( outputStreamAudio->getAudioDesc().getFrameDesc() );
83+
_outputStreamWriter->setProfile( profile );
84+
_outputFile->addAudioStream( _outputStreamAudio->getAudioDesc() );
85+
_audioFrameBuffer = new AudioFrame( _outputStreamAudio->getAudioDesc().getFrameDesc() );
86+
_frameBuffer = _audioFrameBuffer;
7387

7488
break;
7589
}

src/AvTranscoder/StreamTranscoder.hpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,17 @@ class StreamTranscoder
3131
private:
3232
AvInputStream* _stream;
3333

34-
Frame* _frameBuffer;
34+
Frame* _frameBuffer;
35+
Image* _videoFrameBuffer;
36+
AudioFrame* _audioFrameBuffer;
3537

3638
InputStreamReader* _inputStreamReader;
39+
InputStreamVideo* _inputStreamVideo;
40+
InputStreamAudio* _inputStreamAudio;
41+
3742
OutputStreamWriter* _outputStreamWriter;
43+
OutputStreamVideo* _outputStreamVideo;
44+
OutputStreamAudio* _outputStreamAudio;
3845

3946
OutputFile* _outputFile;
4047

0 commit comments

Comments
 (0)