Skip to content

Commit ffeece9

Browse files
adding EssenceTransform in StreamTranscoder
1 parent bd7c740 commit ffeece9

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/AvTranscoder/Transcoder/StreamTranscoder.cpp

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33

44
#include <AvTranscoder/CodedStream/AvInputStream.hpp>
55

6+
#include <AvTranscoder/EssenceTransform/AudioEssenceTransform.hpp>
7+
#include <AvTranscoder/EssenceTransform/VideoEssenceTransform.hpp>
8+
69
#include <cassert>
710

811
namespace avtranscoder
@@ -14,11 +17,13 @@ StreamTranscoder::StreamTranscoder(
1417
)
1518
: _inputStream( &inputStream )
1619
, _outputStream( NULL )
20+
, _sourceBuffer( NULL )
1721
, _frameBuffer( NULL )
1822
, _videoFrameBuffer( NULL )
1923
, _audioFrameBuffer( NULL )
2024
, _inputEssence( NULL )
2125
, _outputEssence( NULL )
26+
, _transform( NULL )
2227
, _transcodeStream( false )
2328
{
2429
// create a re-wrapping case
@@ -46,11 +51,13 @@ StreamTranscoder::StreamTranscoder(
4651
)
4752
: _inputStream( &inputStream )
4853
, _outputStream( NULL )
54+
, _sourceBuffer( NULL )
4955
, _frameBuffer( NULL )
5056
, _videoFrameBuffer( NULL )
5157
, _audioFrameBuffer( NULL )
5258
, _inputEssence( NULL )
5359
, _outputEssence( NULL )
60+
, _transform( NULL )
5461
, _transcodeStream( true )
5562
{
5663
// create a transcode case
@@ -67,9 +74,13 @@ StreamTranscoder::StreamTranscoder(
6774
_outputEssence->setProfile( profile );
6875

6976
_outputStream = &outputFile.addVideoStream( outputVideo->getVideoDesc() );
77+
78+
_sourceBuffer = new Image( _inputStream->getVideoDesc().getImageDesc() );
7079
_videoFrameBuffer = new Image( outputVideo->getVideoDesc().getImageDesc() );
7180
_frameBuffer = _videoFrameBuffer;
7281

82+
_transform = new VideoEssenceTransform();
83+
7384
break;
7485
}
7586
case AVMEDIA_TYPE_AUDIO :
@@ -83,9 +94,13 @@ StreamTranscoder::StreamTranscoder(
8394
_outputEssence->setProfile( profile );
8495

8596
_outputStream = &outputFile.addAudioStream( outputAudio->getAudioDesc() );
97+
98+
_sourceBuffer = new AudioFrame( _inputStream->getAudioDesc().getFrameDesc() );
8699
_audioFrameBuffer = new AudioFrame( outputAudio->getAudioDesc().getFrameDesc() );
87100
_frameBuffer = _audioFrameBuffer;
88101

102+
_transform = new AudioEssenceTransform();
103+
89104
break;
90105
}
91106
default:
@@ -103,11 +118,13 @@ StreamTranscoder::StreamTranscoder(
103118
)
104119
: _inputStream( NULL )
105120
, _outputStream( NULL )
121+
, _sourceBuffer( NULL )
106122
, _frameBuffer( NULL )
107123
, _videoFrameBuffer( NULL )
108124
, _audioFrameBuffer( NULL )
109125
, _inputEssence( &inputEssence )
110126
, _outputEssence( NULL )
127+
, _transform( NULL )
111128
, _transcodeStream( true )
112129
{
113130
if( ! profile.count( Profile::avProfileType ) )
@@ -177,14 +194,15 @@ bool StreamTranscoder::processTranscode()
177194
{
178195
assert( _inputEssence != NULL );
179196
assert( _outputEssence != NULL );
197+
assert( _sourceBuffer != NULL );
180198
assert( _frameBuffer != NULL );
181199

182200
std::cout << "transcode" << std::endl;
183201

184202
DataStream dataStream;
185-
if( _inputEssence->readNextFrame( *_frameBuffer ) )
203+
if( _inputEssence->readNextFrame( *_sourceBuffer ) )
186204
{
187-
std::cout << "encode" << std::endl;
205+
_transform->convert( *_sourceBuffer, *_frameBuffer );
188206
_outputEssence->encodeFrame( *_frameBuffer, dataStream );
189207
}
190208
else

src/AvTranscoder/Transcoder/StreamTranscoder.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
namespace avtranscoder
1717
{
1818

19+
class EssenceTransform;
20+
1921
class StreamTranscoder
2022
{
2123
public:
@@ -52,13 +54,16 @@ class StreamTranscoder
5254
InputStream* _inputStream;
5355
OutputStream* _outputStream;
5456

57+
Frame* _sourceBuffer;
5558
Frame* _frameBuffer;
5659
Image* _videoFrameBuffer;
5760
AudioFrame* _audioFrameBuffer;
5861

5962
InputEssence* _inputEssence;
6063
OutputEssence* _outputEssence;
6164

65+
EssenceTransform* _transform;
66+
6267
bool _transcodeStream;
6368

6469

0 commit comments

Comments
 (0)