@ -49,6 +49,7 @@ public class PipelineBuilder
@@ -49,6 +49,7 @@ public class PipelineBuilder
{
var allVideoStreams = _ inputFiles . SelectMany ( f = > f . Streams )
. Filter ( s = > s . Kind = = StreamKind . Video )
. OfType < VideoStream > ( )
. ToList ( ) ;
// -sc_threshold 0 is unsupported with mpeg2video
@ -57,9 +58,13 @@ public class PipelineBuilder
@@ -57,9 +58,13 @@ public class PipelineBuilder
? new NoSceneDetectOutputOption ( 0 )
: new NoSceneDetectOutputOption ( 1 _ 0 0 0 _ 0 0 0 _ 0 0 0 ) ) ;
InputFile head = _ inputFiles . First ( ) ;
var videoStream = head . Streams . First ( s = > s . Kind = = StreamKind . Video ) as VideoStream ;
Option < AudioStream > audioStream = head . Streams . OfType < AudioStream > ( ) . Find ( s = > s . Kind = = StreamKind . Audio ) ;
var allAudioStreams = _ inputFiles . SelectMany ( f = > f . Streams )
. Filter ( s = > s . Kind = = StreamKind . Audio )
. OfType < AudioStream > ( )
. ToList ( ) ;
VideoStream videoStream = allVideoStreams . Head ( ) ;
Option < AudioStream > audioStream = allAudioStreams . HeadOrNone ( ) ;
if ( videoStream ! = null )
{
Option < int > initialFrameRate = Option < int > . None ;
@ -194,6 +199,11 @@ public class PipelineBuilder
@@ -194,6 +199,11 @@ public class PipelineBuilder
}
}
if ( videoStream . StillImage )
{
_ pipelineSteps . Add ( new InfiniteLoopInputOption ( currentState ) ) ;
}
// TODO: while?
if ( ! IsDesiredVideoState ( currentState , desiredState ) )
{