Skip to content

Commit a55b2db

Browse files
committed
Merge pull request #126 from cchampet/dev_privateCopyConstructors
Add private copy constructors for some classes
2 parents c7df3a2 + de5ef23 commit a55b2db

17 files changed

+86
-23
lines changed

src/AvTranscoder/codec/ICodec.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ enum ECodecType
2424

2525
class AvExport ICodec
2626
{
27+
private:
28+
ICodec( const ICodec& iCodec );
29+
ICodec& operator=( const ICodec& iCodec );
30+
2731
public:
2832
ICodec( const ECodecType type, const std::string& codecName );
2933
ICodec( const ECodecType type, const AVCodecID codecId );

src/AvTranscoder/decoder/AudioGenerator.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ AudioGenerator::AudioGenerator()
1010
{
1111
}
1212

13+
AudioGenerator::AudioGenerator( const AudioGenerator& audioGenerator )
14+
: _inputFrame( NULL)
15+
, _silent( NULL )
16+
, _frameDesc( audioGenerator.getAudioFrameDesc() )
17+
{
18+
}
19+
20+
AudioGenerator& AudioGenerator::operator=( const AudioGenerator& audioGenerator )
21+
{
22+
_inputFrame = NULL;
23+
_silent = NULL;
24+
_frameDesc = audioGenerator.getAudioFrameDesc();
25+
}
26+
1327
AudioGenerator::~AudioGenerator()
1428
{
1529
delete _silent;

src/AvTranscoder/decoder/AudioGenerator.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,20 @@ class AvExport AudioGenerator : public IDecoder
1111
{
1212
public:
1313
AudioGenerator();
14+
AudioGenerator( const AudioGenerator& audioGenerator );
15+
AudioGenerator& operator=( const AudioGenerator& audioGenerator );
16+
1417
~AudioGenerator();
1518

16-
AudioFrameDesc& getAudioFrameDesc() { return _frameDesc; }
17-
void setAudioFrameDesc( const AudioFrameDesc& frameDesc );
18-
1919
void setup() {}
20-
21-
void setFrame( Frame& inputFrame );
2220

2321
bool decodeNextFrame( Frame& frameBuffer );
2422
bool decodeNextFrame( Frame& frameBuffer, const size_t subStreamIndex );
2523

24+
const AudioFrameDesc& getAudioFrameDesc() const { return _frameDesc; }
25+
void setAudioFrameDesc( const AudioFrameDesc& frameDesc );
26+
void setFrame( Frame& inputFrame );
27+
2628
private:
2729
Frame* _inputFrame; ///< Has link (no ownership)
2830
AudioFrame* _silent; ///< The generated silent (has ownership)

src/AvTranscoder/decoder/VideoGenerator.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ VideoGenerator::VideoGenerator()
1212
{
1313
}
1414

15+
VideoGenerator::VideoGenerator( const VideoGenerator& videoGenerator )
16+
: _inputFrame( NULL)
17+
, _blackImage( NULL )
18+
, _frameDesc( videoGenerator.getVideoFrameDesc() )
19+
{
20+
}
21+
22+
VideoGenerator& VideoGenerator::operator=( const VideoGenerator& videoGenerator )
23+
{
24+
_inputFrame = NULL;
25+
_blackImage = NULL;
26+
_frameDesc = videoGenerator.getVideoFrameDesc();
27+
}
28+
1529
VideoGenerator::~VideoGenerator()
1630
{
1731
delete _blackImage;

src/AvTranscoder/decoder/VideoGenerator.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,20 @@ class AvExport VideoGenerator : public IDecoder
1111
{
1212
public:
1313
VideoGenerator();
14+
VideoGenerator( const VideoGenerator& videoGenerator );
15+
VideoGenerator& operator=( const VideoGenerator& videoGenerator );
16+
1417
~VideoGenerator();
1518

16-
VideoFrameDesc& getVideoFrameDesc() { return _frameDesc; }
17-
void setVideoFrameDesc( const VideoFrameDesc& frameDesc );
18-
1919
void setup() {}
2020

21-
void setNextFrame( Frame& inputFrame );
22-
2321
bool decodeNextFrame( Frame& frameBuffer );
2422
bool decodeNextFrame( Frame& frameBuffer, const size_t subStreamIndex );
2523

24+
const VideoFrameDesc& getVideoFrameDesc() const { return _frameDesc; }
25+
void setVideoFrameDesc( const VideoFrameDesc& frameDesc );
26+
void setNextFrame( Frame& inputFrame );
27+
2628
private:
2729
Frame* _inputFrame; ///< A frame given from outside (has link, no ownership)
2830
VideoFrame* _blackImage; ///< The generated black image (has ownership)

src/AvTranscoder/file/FormatContext.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ namespace avtranscoder
1616
*/
1717
class AvExport FormatContext
1818
{
19+
private:
20+
FormatContext( const FormatContext& formatContext );
21+
FormatContext& operator=( const FormatContext& formatContext );
22+
1923
public:
2024
FormatContext( const std::string& filename, int req_flags = 0 ); ///< Allocate an AVFormatContext by opening an input file
2125
FormatContext( int req_flags = 0 ); ///< Allocate an AVFormatContext with default values

src/AvTranscoder/file/InputFile.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ namespace avtranscoder
1717

1818
class AvExport InputFile
1919
{
20+
private:
21+
InputFile( const InputFile& inputFile );
22+
InputFile& operator=( const InputFile& inputFile );
23+
2024
public:
2125
/**
2226
* @brief Open a media file

src/AvTranscoder/file/OutputFile.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ namespace avtranscoder
1616
**/
1717
class AvExport OutputFile : public IOutputFile
1818
{
19+
private:
20+
OutputFile( const OutputFile& outputFile );
21+
OutputFile& operator=( const OutputFile& outputFile );
22+
1923
public:
2024
/**
2125
* @brief Open an output media file

src/AvTranscoder/frame/Frame.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ Frame::Frame( const Frame& other )
2525
copyAVPacket( other.getAVPacket() );
2626
}
2727

28+
Frame& Frame::operator=( const Frame& other )
29+
{
30+
copyAVPacket( other.getAVPacket() );
31+
}
32+
2833
Frame::~Frame()
2934
{
3035
av_free_packet( &_packet );

src/AvTranscoder/frame/Frame.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ class AvExport Frame
2525
/// Override copy constructor in order to copy AVPacket data
2626
Frame( const Frame& other );
2727

28+
/// Override operator = in order to copy AVPacket data
29+
Frame& operator=( const Frame& other );
30+
2831
/// Free buffer of data
2932
~Frame();
3033

src/AvTranscoder/mediaProperty/AudioProperties.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
#include <string>
99

10-
class AVFormatContext;
11-
1210
namespace avtranscoder
1311
{
1412

src/AvTranscoder/stream/InputStream.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,6 @@ InputStream::InputStream( InputFile& inputFile, const size_t streamIndex )
4545
}
4646
}
4747

48-
InputStream::InputStream( const InputStream& inputStream )
49-
: IInputStream( )
50-
, _inputFile( inputStream._inputFile )
51-
, _codec( inputStream._codec )
52-
, _streamCache()
53-
, _streamIndex( inputStream._streamIndex )
54-
, _isActivated( inputStream._isActivated )
55-
{
56-
}
57-
5848
InputStream::~InputStream( )
5949
{
6050
delete _codec;

src/AvTranscoder/stream/InputStream.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ class InputFile;
1414

1515
class AvExport InputStream : public IInputStream
1616
{
17+
private:
18+
InputStream( const InputStream& inputStream );
19+
InputStream& operator=( const InputStream& inputStream );
20+
1721
public:
1822
InputStream( InputFile& inputFile, const size_t streamIndex );
19-
InputStream( const InputStream& inputStream ); ///< Does not copy _streamCache
2023
~InputStream( );
2124

2225
bool readNextPacket( CodedData& data );

src/AvTranscoder/transcoder/StreamTranscoder.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ class ITransform;
2020

2121
class AvExport StreamTranscoder
2222
{
23+
private:
24+
StreamTranscoder( const StreamTranscoder& streamTranscoder );
25+
StreamTranscoder& operator=( const StreamTranscoder& streamTranscoder );
26+
2327
public:
2428
/**
2529
* @brief rewrap stream

src/AvTranscoder/transcoder/Transcoder.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ enum EProcessMethod
3838
*/
3939
class AvExport Transcoder
4040
{
41+
private:
42+
Transcoder( const Transcoder& transcoder );
43+
Transcoder& operator=( const Transcoder& transcoder );
44+
4145
public:
4246
/**
4347
* @note Set FFmpeg log level to quite.

src/AvTranscoder/transform/AudioTransform.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ namespace avtranscoder
1919

2020
class AvExport AudioTransform : public ITransform
2121
{
22+
private:
23+
AudioTransform( const AudioTransform& audioTransform );
24+
AudioTransform& operator=( const AudioTransform& audioTransform );
25+
2226
public:
2327
AudioTransform();
2428
~AudioTransform();

src/AvTranscoder/transform/VideoTransform.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ namespace avtranscoder
1414

1515
class AvExport VideoTransform : public ITransform
1616
{
17+
private:
18+
VideoTransform( const VideoTransform& videoTransform );
19+
VideoTransform& operator=( const VideoTransform& videoTransform );
20+
1721
public:
1822
VideoTransform();
1923
~VideoTransform();

0 commit comments

Comments
 (0)