Skip to content

Commit 8da8549

Browse files
author
Clement Champetier
committed
StreamTranscoder: fix preProcessCodecLatency on rewrap cases
A rewrap case can need to transcode at specific moments: * if there is an offset at the beginning * if it continues with a generator at the end of the rewrap.
1 parent 434b31c commit 8da8549

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/AvTranscoder/transcoder/StreamTranscoder.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,6 @@ StreamTranscoder::~StreamTranscoder()
305305

306306
void StreamTranscoder::preProcessCodecLatency()
307307
{
308-
// rewrap case: no need to take care of the latency of codec
309-
if( ! _currentDecoder )
310-
return;
311-
312308
int latency = _outputEncoder->getCodec().getLatency();
313309

314310
LOG_DEBUG( "Latency of stream: " << latency )
@@ -317,6 +313,10 @@ void StreamTranscoder::preProcessCodecLatency()
317313
latency < _outputEncoder->getCodec().getAVCodecContext().frame_number )
318314
return;
319315

316+
// set a decoder to preload generated frames
317+
if( isRewrapCase() )
318+
switchToGeneratorDecoder();
319+
320320
while( ( latency-- ) > 0 )
321321
{
322322
processFrame();
@@ -325,7 +325,7 @@ void StreamTranscoder::preProcessCodecLatency()
325325

326326
bool StreamTranscoder::processFrame()
327327
{
328-
if( ! _currentDecoder )
328+
if( isRewrapCase() )
329329
{
330330
return processRewrap();
331331
}

0 commit comments

Comments
 (0)