@@ -277,6 +277,8 @@ void Transcoder::process( IProgress& progress )
277
277
if ( _streamTranscoders.size () == 0 )
278
278
throw std::runtime_error ( " missing input streams in transcoder" );
279
279
280
+ manageInfinityStreamFromProcessMethod ();
281
+
280
282
if ( _verbose )
281
283
std::cout << " begin transcoding" << std::endl;
282
284
init ();
@@ -313,34 +315,6 @@ void Transcoder::setProcessMethod( const EProcessMethod eProcessMethod, const si
313
315
{
314
316
_eProcessMethod = eProcessMethod;
315
317
_mainStreamIndex = indexBasedStream;
316
-
317
- for ( size_t i = 0 ; i < _streamTranscoders.size (); ++i )
318
- {
319
- switch ( _eProcessMethod )
320
- {
321
- case eProcessMethodShortest :
322
- if ( _streamTranscoders.at ( i )->getDuration () == getMinTotalDuration () )
323
- _streamTranscoders.at ( i )->setInfinityStream ( false );
324
- else
325
- _streamTranscoders.at ( i )->setInfinityStream ( true );
326
- break ;
327
- case eProcessMethodLongest :
328
- if ( _streamTranscoders.at ( i )->getDuration () == getMaxTotalDuration () )
329
- _streamTranscoders.at ( i )->setInfinityStream ( false );
330
- else
331
- _streamTranscoders.at ( i )->setInfinityStream ( true );
332
- break ;
333
- case eProcessMethodBasedOnStream :
334
- if ( i != _mainStreamIndex )
335
- _streamTranscoders.at ( i )->setInfinityStream ( true );
336
- else
337
- _streamTranscoders.at ( i )->setInfinityStream ( false );
338
- break ;
339
- case eProcessMethodInfinity :
340
- _streamTranscoders.at ( i )->setInfinityStream ( true );
341
- break ;
342
- }
343
- }
344
318
}
345
319
346
320
void Transcoder::setVerbose ( bool verbose )
@@ -523,4 +497,35 @@ double Transcoder::getTotalDurationFromProcessMethod() const
523
497
}
524
498
}
525
499
500
+ void Transcoder::manageInfinityStreamFromProcessMethod ()
501
+ {
502
+ for ( size_t i = 0 ; i < _streamTranscoders.size (); ++i )
503
+ {
504
+ switch ( _eProcessMethod )
505
+ {
506
+ case eProcessMethodShortest :
507
+ if ( _streamTranscoders.at ( i )->getDuration () == getMinTotalDuration () )
508
+ _streamTranscoders.at ( i )->setInfinityStream ( false );
509
+ else
510
+ _streamTranscoders.at ( i )->setInfinityStream ( true );
511
+ break ;
512
+ case eProcessMethodLongest :
513
+ if ( _streamTranscoders.at ( i )->getDuration () == getMaxTotalDuration () )
514
+ _streamTranscoders.at ( i )->setInfinityStream ( false );
515
+ else
516
+ _streamTranscoders.at ( i )->setInfinityStream ( true );
517
+ break ;
518
+ case eProcessMethodBasedOnStream :
519
+ if ( i != _mainStreamIndex )
520
+ _streamTranscoders.at ( i )->setInfinityStream ( true );
521
+ else
522
+ _streamTranscoders.at ( i )->setInfinityStream ( false );
523
+ break ;
524
+ case eProcessMethodInfinity :
525
+ _streamTranscoders.at ( i )->setInfinityStream ( true );
526
+ break ;
527
+ }
528
+ }
529
+ }
530
+
526
531
}
0 commit comments