Skip to content

Commit cb47640

Browse files
clean polimophic deletion: adding desctructors on virtual classes
1 parent c25cd79 commit cb47640

File tree

6 files changed

+25
-34
lines changed

6 files changed

+25
-34
lines changed

src/AvTranscoder/DatasStructures/Frame.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ typedef std::vector< unsigned char> DataBuffer;
1414
class AvExport Frame
1515
{
1616
public:
17-
18-
Frame() {};
17+
Frame(){};
18+
19+
virtual ~Frame(){};
1920

2021
virtual DataBuffer& getBuffer() { return m_dataBuffer; }
2122
virtual unsigned char* getPtr() { return &m_dataBuffer[0]; }

src/AvTranscoder/DatasStructures/Image.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ class AvExport Image : public Frame
8888
m_dataBuffer = DataBuffer( ref.getDataSize(), 0 );
8989
}
9090

91+
virtual ~Image()
92+
{};
93+
9194
const ImageDesc& desc() const { return m_imageDesc; }
9295

9396
private:

src/AvTranscoder/InputStreamReader.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class AvExport InputStreamReader
1212
{
1313
public:
1414
InputStreamReader( AvInputStream& inputStream ) {};
15+
16+
virtual ~InputStreamReader() {};
1517

1618
virtual void setup() = 0;
1719

src/AvTranscoder/OutputStreamWriter.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class AvExport OutputStreamWriter
2323
OutputStreamWriter()
2424
{}
2525

26+
virtual ~OutputStreamWriter()
27+
{}
28+
2629
/**
2730
* @brief Setup the encoder
2831
* @return status of setup

src/AvTranscoder/StreamTranscoder.cpp

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ StreamTranscoder::StreamTranscoder( AvInputStream& stream, OutputFile& outputFil
88
: _stream( &stream )
99
, _frameBuffer( NULL )
1010
, _inputStreamReader( NULL )
11-
, _inputStreamVideo( NULL )
12-
, _inputStreamAudio( NULL )
1311
, _outputStreamWriter( NULL )
14-
, _outputStreamVideo( NULL )
15-
, _outputStreamAudio( NULL )
1612
, _outputFile( &outputFile )
1713
, _streamIndex( streamId )
1814
, _transcodeStream( false )
@@ -23,16 +19,10 @@ StreamTranscoder::~StreamTranscoder()
2319
{
2420
if( _frameBuffer )
2521
delete _frameBuffer;
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;
22+
if( _inputStreamReader )
23+
delete _inputStreamReader;
24+
if( _outputStreamWriter )
25+
delete _outputStreamWriter;
3626
}
3727

3828
void StreamTranscoder::init( const std::string& profile )
@@ -43,8 +33,7 @@ void StreamTranscoder::init( const std::string& profile )
4333
{
4434
case AVMEDIA_TYPE_VIDEO :
4535
{
46-
_inputStreamVideo = new InputStreamVideo( *_stream );
47-
_inputStreamReader = _inputStreamVideo;
36+
_inputStreamReader = new InputStreamVideo( *_stream );
4837
_inputStreamReader->setup();
4938

5039
// re-wrap only, get output descriptor from input
@@ -54,20 +43,19 @@ void StreamTranscoder::init( const std::string& profile )
5443
break;
5544
}
5645

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

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

6554
break;
6655
}
6756
case AVMEDIA_TYPE_AUDIO :
6857
{
69-
_inputStreamAudio = new InputStreamAudio( *_stream );
70-
_inputStreamReader = _inputStreamAudio;
58+
_inputStreamReader = new InputStreamAudio( *_stream );
7159
_inputStreamReader->setup();
7260

7361
// re-wrap only, get output descriptor from input
@@ -77,12 +65,12 @@ void StreamTranscoder::init( const std::string& profile )
7765
break;
7866
}
7967

80-
_outputStreamAudio = new OutputStreamAudio();
81-
_outputStreamWriter = _outputStreamAudio;
68+
OutputStreamAudio* outputStreamAudio = new OutputStreamAudio();
69+
_outputStreamWriter = outputStreamAudio;
8270

8371
_outputStreamWriter->setProfile( profile );
84-
_outputFile->addAudioStream( _outputStreamAudio->getAudioDesc() );
85-
_audioFrameBuffer = new AudioFrame( _outputStreamAudio->getAudioDesc().getFrameDesc() );
72+
_outputFile->addAudioStream( outputStreamAudio->getAudioDesc() );
73+
_audioFrameBuffer = new AudioFrame( outputStreamAudio->getAudioDesc().getFrameDesc() );
8674
_frameBuffer = _audioFrameBuffer;
8775

8876
break;

src/AvTranscoder/StreamTranscoder.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,7 @@ class StreamTranscoder
3636
AudioFrame* _audioFrameBuffer;
3737

3838
InputStreamReader* _inputStreamReader;
39-
InputStreamVideo* _inputStreamVideo;
40-
InputStreamAudio* _inputStreamAudio;
41-
4239
OutputStreamWriter* _outputStreamWriter;
43-
OutputStreamVideo* _outputStreamVideo;
44-
OutputStreamAudio* _outputStreamAudio;
45-
4640
OutputFile* _outputFile;
4741

4842
size_t _streamIndex;

0 commit comments

Comments
 (0)