From d204be2fbb8e67e84f13d8e72a423dcfba3106a6 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 10:59:19 +0200 Subject: [PATCH 1/8] InputFile: refactoring * Use reference instead of pointer for getStream. * Use reference instead of pointer for getFormatContext. --- app/audioRewrapper/audioRewrapper.cpp | 6 +++--- app/avTranscoder/avTranscoder.cpp | 2 +- app/avplay/AvReader.hpp | 15 ++++++++------- src/AvTranscoder/AvInputStream.cpp | 20 +++++++++----------- src/AvTranscoder/InputFile.cpp | 4 ++-- src/AvTranscoder/InputFile.hpp | 5 +++-- src/AvTranscoder/Transcoder.tcc | 4 ++-- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/app/audioRewrapper/audioRewrapper.cpp b/app/audioRewrapper/audioRewrapper.cpp index c2914d87..2b9c60c8 100644 --- a/app/audioRewrapper/audioRewrapper.cpp +++ b/app/audioRewrapper/audioRewrapper.cpp @@ -21,7 +21,7 @@ void rewrapAudio( const char* inputfilename, const char* outputFilename ) outputFile.setup(); - outputFile.addAudioStream( inputFile.getStream( 0 )->getAudioDesc() ); + outputFile.addAudioStream( inputFile.getStream( 0 ).getAudioDesc() ); DataStream data; @@ -30,7 +30,7 @@ void rewrapAudio( const char* inputfilename, const char* outputFilename ) size_t frame = 0; - while( inputFile.getStream( 0 )->readNextPacket( data ) ) + while( inputFile.getStream( 0 ).readNextPacket( data ) ) { std::cout << "\rprocess frame " << (int)frame - 1 << std::flush; @@ -58,7 +58,7 @@ void transcodeAudio( const char* inputfilename, const char* outputFilename ) outputFile.setup(); - outputFile.addAudioStream( inputFile.getStream( 0 )->getAudioDesc() ); + outputFile.addAudioStream( inputFile.getStream( 0 ).getAudioDesc() ); DataStream data; diff --git a/app/avTranscoder/avTranscoder.cpp b/app/avTranscoder/avTranscoder.cpp index 04a6a04c..7dd74a2e 100644 --- a/app/avTranscoder/avTranscoder.cpp +++ b/app/avTranscoder/avTranscoder.cpp @@ -91,7 +91,7 @@ void transcodeVideo( const char* inputfilename, const char* outputFilename ) exit( -1 ); } - of.addVideoStream( inputFile.getStream( 0 )->getVideoDesc() ); + of.addVideoStream( inputFile.getStream( 0 ).getVideoDesc() ); /*of.addAudioStream(); of.addAudioStream(); of.addAudioStream(); diff --git a/app/avplay/AvReader.hpp b/app/avplay/AvReader.hpp index 489893e7..7dc2a398 100644 --- a/app/avplay/AvReader.hpp +++ b/app/avplay/AvReader.hpp @@ -16,7 +16,7 @@ class AvReader : public Reader { public: - AvReader( std::string filename ) + AvReader( const std::string& filename ) : m_inputFile( filename ) , m_inputStreamVideo( NULL ) , m_sourceImage( NULL ) @@ -29,7 +29,7 @@ class AvReader : public Reader m_inputStreamVideo = new avtranscoder::InputStreamVideo( m_inputFile.getStream( m_videoStream ) ); - m_sourceImage = new avtranscoder::Image( m_inputFile.getStream( m_videoStream )->getVideoDesc().getImageDesc() ); + m_sourceImage = new avtranscoder::Image( m_inputFile.getStream( m_videoStream ).getVideoDesc().getImageDesc() ); pixel.setBitsPerPixel( getComponents() * getBitDepth() ); pixel.setComponents( getComponents() ); @@ -38,11 +38,11 @@ class AvReader : public Reader pixel.setAlpha( false ); pixel.setPlanar( false ); - imageDescToDisplay.setWidth ( m_sourceImage->desc().getWidth() ); + imageDescToDisplay.setWidth( m_sourceImage->desc().getWidth() ); imageDescToDisplay.setHeight( m_sourceImage->desc().getHeight() ); - imageDescToDisplay.setDar ( m_sourceImage->desc().getDar() ); - - imageDescToDisplay.setPixel ( pixel.findPixel() ); + imageDescToDisplay.setDar( m_sourceImage->desc().getDar() ); + + imageDescToDisplay.setPixel( pixel.findPixel() ); m_imageToDisplay = new avtranscoder::Image( imageDescToDisplay ); } @@ -105,6 +105,7 @@ class AvReader : public Reader private: avtranscoder::InputFile m_inputFile; + avtranscoder::InputStreamVideo* m_inputStreamVideo; avtranscoder::Image* m_sourceImage; @@ -117,4 +118,4 @@ class AvReader : public Reader size_t m_videoStream; }; -#endif \ No newline at end of file +#endif diff --git a/src/AvTranscoder/AvInputStream.cpp b/src/AvTranscoder/AvInputStream.cpp index c42e5d4c..94a3f567 100644 --- a/src/AvTranscoder/AvInputStream.cpp +++ b/src/AvTranscoder/AvInputStream.cpp @@ -86,15 +86,14 @@ void AvInputStream::addPacket( AVPacket& packet ) VideoDesc AvInputStream::getVideoDesc() const { - assert( m_inputFile->getFormatContext() != NULL ); - assert( m_streamIndex <= m_inputFile->getFormatContext()->nb_streams ); + assert( m_streamIndex <= m_inputFile->getFormatContext().nb_streams ); - if( m_inputFile->getFormatContext()->streams[m_streamIndex]->codec->codec_type != AVMEDIA_TYPE_VIDEO ) + if( m_inputFile->getFormatContext().streams[m_streamIndex]->codec->codec_type != AVMEDIA_TYPE_VIDEO ) { throw std::runtime_error( "unable to get video descriptor on non-video stream" ); } - AVCodecContext* codecContext = m_inputFile->getFormatContext()->streams[m_streamIndex]->codec; + AVCodecContext* codecContext = m_inputFile->getFormatContext().streams[m_streamIndex]->codec; VideoDesc desc( codecContext->codec_id ); @@ -106,15 +105,14 @@ VideoDesc AvInputStream::getVideoDesc() const AudioDesc AvInputStream::getAudioDesc() const { - assert( m_inputFile->getFormatContext() != NULL ); - assert( m_streamIndex <= m_inputFile->getFormatContext()->nb_streams ); + assert( m_streamIndex <= m_inputFile->getFormatContext().nb_streams ); - if( m_inputFile->getFormatContext()->streams[m_streamIndex]->codec->codec_type != AVMEDIA_TYPE_AUDIO ) + if( m_inputFile->getFormatContext().streams[m_streamIndex]->codec->codec_type != AVMEDIA_TYPE_AUDIO ) { throw std::runtime_error( "unable to get audio descriptor on non-audio stream" ); } - AVCodecContext* codecContext = m_inputFile->getFormatContext()->streams[m_streamIndex]->codec; + AVCodecContext* codecContext = m_inputFile->getFormatContext().streams[m_streamIndex]->codec; AudioDesc desc( codecContext->codec_id ); @@ -126,12 +124,12 @@ AudioDesc AvInputStream::getAudioDesc() const double AvInputStream::getDuration() const { - return 1.0 * m_inputFile->getFormatContext()->duration / AV_TIME_BASE; + return 1.0 * m_inputFile->getFormatContext().duration / AV_TIME_BASE; } double AvInputStream::getPacketDuration() const { - return m_packetDuration * av_q2d( m_inputFile->getFormatContext()->streams[m_streamIndex]->time_base ); + return m_packetDuration * av_q2d( m_inputFile->getFormatContext().streams[m_streamIndex]->time_base ); } void AvInputStream::clearBuffering() @@ -139,4 +137,4 @@ void AvInputStream::clearBuffering() m_streamCache.clear(); } -} \ No newline at end of file +} diff --git a/src/AvTranscoder/InputFile.cpp b/src/AvTranscoder/InputFile.cpp index 23ff742e..71cc3f97 100644 --- a/src/AvTranscoder/InputFile.cpp +++ b/src/AvTranscoder/InputFile.cpp @@ -139,9 +139,9 @@ AVMediaType InputFile::getStreamType( size_t index ) return m_formatContext->streams[index]->codec->codec_type; } -AvInputStream* InputFile::getStream( size_t index ) +AvInputStream& InputFile::getStream( size_t index ) { - return m_inputStreams.at( index ); + return *m_inputStreams.at( index ); } bool InputFile::readNextPacket( const size_t streamIndex ) diff --git a/src/AvTranscoder/InputFile.hpp b/src/AvTranscoder/InputFile.hpp index be32f4d8..d41eb56d 100644 --- a/src/AvTranscoder/InputFile.hpp +++ b/src/AvTranscoder/InputFile.hpp @@ -38,14 +38,15 @@ class AvExport InputFile AVMediaType getStreamType( size_t index ); - ::avtranscoder::AvInputStream* getStream( size_t index ); + AvInputStream& getStream( size_t index ); - AVFormatContext* getFormatContext() const { return m_formatContext; } + AVFormatContext& getFormatContext() const { return *m_formatContext; } bool readNextPacket( const size_t streamIndex ); void seekAtFrame( const size_t frame ); + /// @brief Indicate that the stream should be bufferized void readStream( const size_t streamIndex, const bool readStream = true ); protected: diff --git a/src/AvTranscoder/Transcoder.tcc b/src/AvTranscoder/Transcoder.tcc index 85691d87..f32a2de2 100644 --- a/src/AvTranscoder/Transcoder.tcc +++ b/src/AvTranscoder/Transcoder.tcc @@ -66,13 +66,13 @@ void Transcoder::add( const std::string& filename, const size_t streamIndex ) { case AVMEDIA_TYPE_VIDEO: { - _inputStreams.push_back( referenceFile->getStream( streamIndex ) ); + _inputStreams.push_back( & referenceFile->getStream( streamIndex ) ); _outputFile.addVideoStream( _inputStreams.back()->getVideoDesc() ); break; } case AVMEDIA_TYPE_AUDIO: { - _inputStreams.push_back( referenceFile->getStream( streamIndex ) ); + _inputStreams.push_back( & referenceFile->getStream( streamIndex ) ); _outputFile.addAudioStream( _inputStreams.back()->getAudioDesc() ); break; } From bc227930bcdbd67662d5d2d387c6adb7e2e1fe82 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:02:16 +0200 Subject: [PATCH 2/8] InputFile: include AvInputStream instead of forward declaration Necessary if I want to use the InputStream returned by getStream function. --- src/AvTranscoder/InputFile.hpp | 3 +-- src/AvTranscoder/avTranscoder.i | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/AvTranscoder/InputFile.hpp b/src/AvTranscoder/InputFile.hpp index d41eb56d..edc9fea2 100644 --- a/src/AvTranscoder/InputFile.hpp +++ b/src/AvTranscoder/InputFile.hpp @@ -1,6 +1,7 @@ #ifndef _AV_TRANSCODER_INPUT_FILE_HPP_ #define _AV_TRANSCODER_INPUT_FILE_HPP_ +#include #include #include #include @@ -19,8 +20,6 @@ class AVCodecContext; namespace avtranscoder { -class AvInputStream; - class AvExport InputFile { public: diff --git a/src/AvTranscoder/avTranscoder.i b/src/AvTranscoder/avTranscoder.i index bcacb3e7..429e3a11 100644 --- a/src/AvTranscoder/avTranscoder.i +++ b/src/AvTranscoder/avTranscoder.i @@ -20,17 +20,18 @@ #include -#include -#include - #include #include #include #include +#include #include #include +#include +#include + #include %} @@ -59,15 +60,16 @@ namespace std { %include -%include -%include - %include %include %include %include +%include %include %include +%include +%include + %include From 67a54722ec49a8055fc25c6086059f9801fb1c8d Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:04:21 +0200 Subject: [PATCH 3/8] AvInputStream: refactoring Use reference instead of pointer in the constructor. --- src/AvTranscoder/AvInputStream.cpp | 4 ++-- src/AvTranscoder/AvInputStream.hpp | 2 +- src/AvTranscoder/InputFile.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/AvTranscoder/AvInputStream.cpp b/src/AvTranscoder/AvInputStream.cpp index 94a3f567..c342ac82 100644 --- a/src/AvTranscoder/AvInputStream.cpp +++ b/src/AvTranscoder/AvInputStream.cpp @@ -29,9 +29,9 @@ AvInputStream::AvInputStream( ) { } -AvInputStream::AvInputStream( InputFile* inputFile, const size_t streamIndex ) +AvInputStream::AvInputStream( InputFile& inputFile, const size_t streamIndex ) : InputStream( ) - , m_inputFile( inputFile ) + , m_inputFile( &inputFile ) , m_packetDuration( 0 ) , m_streamIndex( streamIndex ) , m_bufferized( false ) diff --git a/src/AvTranscoder/AvInputStream.hpp b/src/AvTranscoder/AvInputStream.hpp index 1411aaf3..d9cdcc44 100644 --- a/src/AvTranscoder/AvInputStream.hpp +++ b/src/AvTranscoder/AvInputStream.hpp @@ -13,7 +13,7 @@ class AvExport AvInputStream : public InputStream public: AvInputStream( ); - AvInputStream( InputFile* inputFile, const size_t streamIndex ); + AvInputStream( InputFile& inputFile, const size_t streamIndex ); ~AvInputStream( ); AvInputStream( const AvInputStream& inputStream ) diff --git a/src/AvTranscoder/InputFile.cpp b/src/AvTranscoder/InputFile.cpp index 71cc3f97..1a1547fb 100644 --- a/src/AvTranscoder/InputFile.cpp +++ b/src/AvTranscoder/InputFile.cpp @@ -49,7 +49,7 @@ InputFile::InputFile( const std::string& filename ) for( size_t streamIndex = 0; streamIndex < m_formatContext->nb_streams; ++streamIndex ) { - m_inputStreams.push_back( new AvInputStream( this, streamIndex ) ); + m_inputStreams.push_back( new AvInputStream( *this, streamIndex ) ); } } From 8626844ab9f364b36776c5dcc4c67efb5d756094 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:07:06 +0200 Subject: [PATCH 4/8] InputStream Audio and Video: refactoring Use reference instead of pointer in the constructors. --- src/AvTranscoder/InputStreamAudio.cpp | 4 ++-- src/AvTranscoder/InputStreamAudio.hpp | 2 +- src/AvTranscoder/InputStreamVideo.cpp | 5 ++--- src/AvTranscoder/InputStreamVideo.hpp | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/AvTranscoder/InputStreamAudio.cpp b/src/AvTranscoder/InputStreamAudio.cpp index d4ceb8f1..3e27d4b5 100644 --- a/src/AvTranscoder/InputStreamAudio.cpp +++ b/src/AvTranscoder/InputStreamAudio.cpp @@ -17,8 +17,8 @@ extern "C" { namespace avtranscoder { -InputStreamAudio::InputStreamAudio( const InputStream* inputStream ) - : m_inputStream ( inputStream ) +InputStreamAudio::InputStreamAudio( const InputStream& inputStream ) + : m_inputStream ( &inputStream ) , m_codec ( NULL ) , m_codecContext ( NULL ) , m_frame ( NULL ) diff --git a/src/AvTranscoder/InputStreamAudio.hpp b/src/AvTranscoder/InputStreamAudio.hpp index 54d29277..f0578282 100644 --- a/src/AvTranscoder/InputStreamAudio.hpp +++ b/src/AvTranscoder/InputStreamAudio.hpp @@ -10,7 +10,7 @@ namespace avtranscoder class AvExport InputStreamAudio { public: - InputStreamAudio( const InputStream* inputStream ); + InputStreamAudio( const InputStream& inputStream ); ~InputStreamAudio(); bool readNextFrame( AudioFrame& audioFrameBuffer ); diff --git a/src/AvTranscoder/InputStreamVideo.cpp b/src/AvTranscoder/InputStreamVideo.cpp index 8da04176..fdcd9aec 100644 --- a/src/AvTranscoder/InputStreamVideo.cpp +++ b/src/AvTranscoder/InputStreamVideo.cpp @@ -19,8 +19,8 @@ extern "C" { namespace avtranscoder { -InputStreamVideo::InputStreamVideo( AvInputStream* inputStream ) - : m_inputStream ( inputStream ) +InputStreamVideo::InputStreamVideo( AvInputStream& inputStream ) + : m_inputStream ( &inputStream ) , m_codec ( NULL ) , m_codecContext ( NULL ) , m_frame ( NULL ) @@ -92,7 +92,6 @@ InputStreamVideo::~InputStreamVideo() bool InputStreamVideo::readNextFrame( Image& frameBuffer ) { - int got_frame = 0; while( ! got_frame ) diff --git a/src/AvTranscoder/InputStreamVideo.hpp b/src/AvTranscoder/InputStreamVideo.hpp index f54fde3c..c83a2d4f 100644 --- a/src/AvTranscoder/InputStreamVideo.hpp +++ b/src/AvTranscoder/InputStreamVideo.hpp @@ -19,9 +19,9 @@ class AvInputStream; class AvExport InputStreamVideo { public: - InputStreamVideo( AvInputStream* inputStream ); + InputStreamVideo( AvInputStream& inputStream ); ~InputStreamVideo(); - + bool readNextFrame( Image& frameBuffer ); void flushDecoder(); From 4918995a7b0da941782838aaa07f5186b0ec149a Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:08:44 +0200 Subject: [PATCH 5/8] VideoDesc: refactoring SetImageParameters by the ImageDesc instead of the complete Image. --- app/avTranscoder/avTranscoder.cpp | 2 +- src/AvTranscoder/DatasStructures/VideoDesc.cpp | 4 ++-- src/AvTranscoder/DatasStructures/VideoDesc.hpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/avTranscoder/avTranscoder.cpp b/app/avTranscoder/avTranscoder.cpp index 7dd74a2e..7d86d4f1 100644 --- a/app/avTranscoder/avTranscoder.cpp +++ b/app/avTranscoder/avTranscoder.cpp @@ -63,7 +63,7 @@ void transcodeVideo( const char* inputfilename, const char* outputFilename ) videoDesc.setTimeBase( 1, 25 ); // 25 fps - videoDesc.setImageParameters( sourceImage ); + videoDesc.setImageParameters( sourceImage.desc() ); //videoDesc.initCodecContext(); diff --git a/src/AvTranscoder/DatasStructures/VideoDesc.cpp b/src/AvTranscoder/DatasStructures/VideoDesc.cpp index c9f24f67..785e321a 100644 --- a/src/AvTranscoder/DatasStructures/VideoDesc.cpp +++ b/src/AvTranscoder/DatasStructures/VideoDesc.cpp @@ -49,9 +49,9 @@ void VideoDesc::setVideoCodec( const AVCodecID codecId ) initCodecContext(); } -void VideoDesc::setImageParameters( const Image& image ) +void VideoDesc::setImageParameters( const ImageDesc& imageDesc ) { - setImageParameters( image.desc().getWidth(), image.desc().getHeight(), image.desc().getPixelDesc() ); + setImageParameters( imageDesc.getWidth(), imageDesc.getHeight(), imageDesc.getPixelDesc() ); } diff --git a/src/AvTranscoder/DatasStructures/VideoDesc.hpp b/src/AvTranscoder/DatasStructures/VideoDesc.hpp index 5fa9bdd6..be0515b6 100644 --- a/src/AvTranscoder/DatasStructures/VideoDesc.hpp +++ b/src/AvTranscoder/DatasStructures/VideoDesc.hpp @@ -30,7 +30,7 @@ class AvExport VideoDesc void setVideoCodec( const std::string& codecName ); void setVideoCodec( const AVCodecID codecId ); - void setImageParameters( const Image& image ); + void setImageParameters( const ImageDesc& imageDesc ); void setImageParameters( const size_t width, const size_t height, const Pixel& pixel ); void setImageParameters( const size_t width, const size_t height, const AVPixelFormat& pixel ); From 72311cae70014fea8ea660aef94ebc5550abf0d4 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:11:25 +0200 Subject: [PATCH 6/8] AvInputStream: throw if try to read on non-bufferized input stream Throw runtime_error in readNextPacket if try to read packet on non- bufferized input stream. --- src/AvTranscoder/AvInputStream.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/AvTranscoder/AvInputStream.cpp b/src/AvTranscoder/AvInputStream.cpp index c342ac82..b1ec7381 100644 --- a/src/AvTranscoder/AvInputStream.cpp +++ b/src/AvTranscoder/AvInputStream.cpp @@ -44,6 +44,9 @@ AvInputStream::~AvInputStream( ) bool AvInputStream::readNextPacket( DataStream& data ) { + if( ! m_bufferized ) + throw std::runtime_error( "Can't read packet on non-bufferized input stream." ); + if( m_streamCache.empty() ) m_inputFile->readNextPacket( m_streamIndex ); From 069e9da8ef6c1b3167b211b90030e65d4ed3cd4e Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:14:59 +0200 Subject: [PATCH 7/8] InputStream and InputFile: refactoring * InputStream: update comment. * InputFile: add comment. --- src/AvTranscoder/InputFile.cpp | 2 +- src/AvTranscoder/InputStream.hpp | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/AvTranscoder/InputFile.cpp b/src/AvTranscoder/InputFile.cpp index 1a1547fb..72002d60 100644 --- a/src/AvTranscoder/InputFile.cpp +++ b/src/AvTranscoder/InputFile.cpp @@ -176,7 +176,7 @@ bool InputFile::readNextPacket( const size_t streamIndex ) void InputFile::seekAtFrame( const size_t frame ) { - uint64_t pos = frame / 25 * AV_TIME_BASE; + uint64_t pos = frame / 25 * AV_TIME_BASE; // WARNING: hardcoded fps if( (int)m_formatContext->start_time != AV_NOPTS_VALUE ) pos += m_formatContext->start_time; diff --git a/src/AvTranscoder/InputStream.hpp b/src/AvTranscoder/InputStream.hpp index 4068e20c..2aa9d527 100644 --- a/src/AvTranscoder/InputStream.hpp +++ b/src/AvTranscoder/InputStream.hpp @@ -18,7 +18,7 @@ class InputStream virtual bool readNextPacket( DataStream& data ) = 0; - // Stream propeerties + // Stream properties virtual VideoDesc getVideoDesc() const = 0; virtual AudioDesc getAudioDesc() const = 0; @@ -28,8 +28,6 @@ class InputStream virtual void setBufferred( const bool bufferized ) = 0; virtual void clearBuffering() = 0; - -private: }; } From 6105f2532fa3737843efff69ba954418974965cd Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 2 Jun 2014 11:16:29 +0200 Subject: [PATCH 8/8] DataStructures Image: refactoring Add comments to prepare the field for the template ! --- src/AvTranscoder/DatasStructures/Image.hpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/AvTranscoder/DatasStructures/Image.hpp b/src/AvTranscoder/DatasStructures/Image.hpp index 0001cd49..43e2e512 100644 --- a/src/AvTranscoder/DatasStructures/Image.hpp +++ b/src/AvTranscoder/DatasStructures/Image.hpp @@ -24,8 +24,6 @@ extern "C" { namespace avtranscoder { -typedef std::vector< unsigned char > DataBuffer; - // struct ColorProperties // { // //EColorspace eColorspace; @@ -78,9 +76,14 @@ class AvExport ImageDesc bool m_topFieldFirst; }; +//template< template Alloc > +//class AvExport ImageBase class AvExport Image { public: +// typedef std::vector< unsigned char, Alloc > DataBuffer; + typedef std::vector< unsigned char> DataBuffer; + Image( const ImageDesc& ref ) : m_dataBuffer( ref.getDataSize(), 0 ) , m_imageDesc( ref ) @@ -99,6 +102,8 @@ class AvExport Image const ImageDesc m_imageDesc; }; +//typedef ImageBase Image; + } #endif