Skip to content

Commit 14ac3b9

Browse files
author
Valentin Noel
committed
Add Frame base class for Image and AudioFrame into DataStructures
1 parent e9bae72 commit 14ac3b9

File tree

3 files changed

+31
-32
lines changed

3 files changed

+31
-32
lines changed

src/AvTranscoder/DatasStructures/AudioFrame.hpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@ extern "C" {
2020
#include <stdexcept>
2121

2222
//#include "Sample.hpp"
23+
#include "Frame.hpp"
2324

2425
namespace avtranscoder
2526
{
2627

27-
typedef std::vector< unsigned char > DataBuffer;
28-
29-
class AudioFrameDesc
28+
class AvExport AudioFrameDesc
3029
{
3130
public:
3231
AudioFrameDesc()
@@ -59,28 +58,22 @@ class AudioFrameDesc
5958
AVSampleFormat m_sampleFormat;
6059
};
6160

62-
class AudioFrame
61+
class AvExport AudioFrame : public Frame
6362
{
6463
public:
6564
AudioFrame( const AudioFrameDesc& ref )
66-
: m_dataBuffer( ref.getDataSize(), 0 )
67-
, m_audioFrameDesc( ref )
65+
: m_audioFrameDesc( ref )
6866
, m_nbSamples( 0 )
69-
{ }
67+
{
68+
m_dataBuffer = DataBuffer( ref.getDataSize(), (unsigned char) 0 );
69+
}
7070

7171
const AudioFrameDesc& desc() const { return m_audioFrameDesc; }
72-
DataBuffer& getBuffer() { return m_dataBuffer; }
73-
unsigned char* getPtr() { return &m_dataBuffer[0]; }
74-
#ifndef SWIG
75-
const unsigned char* getPtr() const { return &m_dataBuffer[0]; }
76-
#endif
77-
size_t getSize() const { return m_dataBuffer.size(); }
7872

7973
size_t getNbSamples() const { return m_nbSamples; }
8074
void setNbSamples( size_t nbSamples ) { m_nbSamples = nbSamples; }
8175

8276
private:
83-
DataBuffer m_dataBuffer;
8477
const AudioFrameDesc m_audioFrameDesc;
8578
size_t m_nbSamples;
8679
};
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
#ifndef _AV_TRANSCODER_DATA_FRAME_HPP_
22
#define _AV_TRANSCODER_DATA_FRAME_HPP_
33

4+
#include <AvTranscoder/common.hpp>
5+
46
#include <string>
7+
#include <vector>
58

69
namespace avtranscoder
710
{
811

9-
class Frame
12+
typedef std::vector< unsigned char> DataBuffer;
13+
14+
class AvExport Frame
1015
{
1116
public:
12-
Frame(){};
1317

14-
private:
18+
Frame() {};
19+
20+
virtual DataBuffer& getBuffer() { return m_dataBuffer; }
21+
virtual unsigned char* getPtr() { return &m_dataBuffer[0]; }
22+
#ifndef SWIG
23+
virtual const unsigned char* getPtr() const { return &m_dataBuffer[0]; }
24+
#endif
25+
virtual size_t getSize() const { return m_dataBuffer.size(); }
26+
27+
protected:
28+
DataBuffer m_dataBuffer;
1529

1630
};
1731

1832
}
1933

20-
#endif
34+
#endif

src/AvTranscoder/DatasStructures/Image.hpp

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ extern "C" {
2020
#include <stdexcept>
2121

2222
#include "Pixel.hpp"
23+
#include "Frame.hpp"
2324

2425
namespace avtranscoder
2526
{
@@ -78,27 +79,18 @@ class AvExport ImageDesc
7879

7980
//template< template<typename> Alloc >
8081
//class AvExport ImageBase
81-
class AvExport Image
82+
class AvExport Image : public Frame
8283
{
8384
public:
84-
// typedef std::vector< unsigned char, Alloc<unsigned char> > DataBuffer;
85-
typedef std::vector< unsigned char> DataBuffer;
86-
8785
Image( const ImageDesc& ref )
88-
: m_dataBuffer( ref.getDataSize(), 0 )
89-
, m_imageDesc( ref )
90-
{ }
86+
: m_imageDesc( ref )
87+
{
88+
m_dataBuffer = DataBuffer( ref.getDataSize(), 0 );
89+
}
9190

9291
const ImageDesc& desc() const { return m_imageDesc; }
93-
DataBuffer& getBuffer() { return m_dataBuffer; }
94-
unsigned char* getPtr() { return &m_dataBuffer[0]; }
95-
#ifndef SWIG
96-
const unsigned char* getPtr() const { return &m_dataBuffer[0]; }
97-
#endif
98-
size_t getSize() const { return m_dataBuffer.size(); }
9992

10093
private:
101-
DataBuffer m_dataBuffer;
10294
const ImageDesc m_imageDesc;
10395
};
10496

0 commit comments

Comments
 (0)