Skip to content

Commit 265f968

Browse files
Merge pull request #27 from cchampet/dev_Dummy
Dummy Video
2 parents 88654cf + a729e24 commit 265f968

File tree

5 files changed

+28
-5
lines changed

5 files changed

+28
-5
lines changed

src/AvTranscoder/EssenceStream/DummyVideo.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace avtranscoder
88

99
DummyVideo::DummyVideo( )
1010
: InputEssence( )
11+
, _inputFrame( NULL )
1112
, _numberOfView( 1 )
1213
{
1314
}
@@ -27,13 +28,25 @@ VideoDesc DummyVideo::getVideoDesc() const
2728
return _videoDesc;
2829
}
2930

31+
void DummyVideo::setFrame( Frame& inputFrame )
32+
{
33+
_inputFrame = &inputFrame;
34+
}
35+
3036
bool DummyVideo::readNextFrame( Frame& frameBuffer )
3137
{
3238
frameBuffer.getBuffer().resize( _imageDesc.getDataSize() );
3339

34-
int fillChar = 0; // fill images with black
35-
memset( frameBuffer.getPtr(), fillChar, frameBuffer.getSize() );
36-
40+
if( ! _inputFrame )
41+
{
42+
int fillChar = 0; // fill images with black
43+
memset( frameBuffer.getPtr(), fillChar, frameBuffer.getSize() );
44+
return true;
45+
}
46+
47+
if( frameBuffer.getSize() != _inputFrame->getSize() )
48+
frameBuffer.getBuffer().resize( _inputFrame->getSize() );
49+
std::memcpy( frameBuffer.getPtr(), _inputFrame->getPtr(), _inputFrame->getSize() );
3750
return true;
3851
}
3952

src/AvTranscoder/EssenceStream/DummyVideo.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@ class AvExport DummyVideo : public InputEssence
2323

2424
void setup() {}
2525

26+
void setFrame( Frame& inputFrame );
27+
2628
bool readNextFrame( Frame& frameBuffer );
2729
bool readNextFrame( Frame& frameBuffer, const size_t subStreamIndex );
2830

2931
private:
32+
Frame* _inputFrame;
3033
VideoDesc _videoDesc;
3134
ImageDesc _imageDesc;
3235

src/AvTranscoder/Transcoder/StreamTranscoder.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ StreamTranscoder::StreamTranscoder(
170170
OutputVideo* outputVideo = new OutputVideo();
171171

172172
_outputEssence = outputVideo;
173-
ImageDesc srcImageDesc; // @todo better solution ?
174-
outputVideo->setProfile( profile, srcImageDesc );
173+
ImageDesc inputImageDesc = static_cast<DummyVideo*>( _inputEssence )->getVideoDesc().getImageDesc();
174+
outputVideo->setProfile( profile, inputImageDesc );
175175

176176
_outputStream = &outputFile.addVideoStream( outputVideo->getVideoDesc() );
177177
_sourceBuffer = new Image( outputVideo->getVideoDesc().getImageDesc() );

src/AvTranscoder/Transcoder/Transcoder.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ void Transcoder::add( const std::string& filename, const size_t streamIndex, con
107107
addTranscodeStream( filename, streamIndex, subStreamIndex, profileDesc );
108108
}
109109

110+
void Transcoder::add( StreamTranscoder& stream )
111+
{
112+
_streamTranscoders.push_back( &stream );
113+
}
114+
110115
bool Transcoder::processFrame()
111116
{
112117
if( _streamTranscoders.size() == 0 )

src/AvTranscoder/Transcoder/Transcoder.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ class Transcoder
5151
*/
5252
void add( const std::string& filename, const size_t streamIndex, const int subStreamIndex, Profile::ProfileDesc& profileDesc );
5353

54+
void add( StreamTranscoder& stream );
55+
5456
bool processFrame();
5557

5658
void process( ProgressListener& progress );

0 commit comments

Comments
 (0)