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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy