22using System . Collections . Generic ;
33using System . Linq ;
44using System . Threading . Tasks ;
5+ using System . Windows . Forms ;
56using System . Windows . Input ;
67using Nmkoder . Data ;
78using Nmkoder . Data . Codecs ;
9+ using Nmkoder . Data . Ui ;
810using Nmkoder . Extensions ;
911using Nmkoder . Forms ;
1012using Nmkoder . IO ;
@@ -35,14 +37,16 @@ public static async Task Run()
3537 IEncoder vCodec = CodecUtils . GetCodec ( GetCurrentCodecV ( ) ) ;
3638 CodecUtils . AudioCodec aCodec = GetCurrentCodecA ( ) ;
3739 CodecUtils . SubtitleCodec sCodec = GetCurrentCodecS ( ) ;
40+ bool anyVideoStreams = Program . mainForm . streamList . CheckedItems . Cast < ListViewItem > ( ) . Where ( x => ( ( MediaStreamListEntry ) x . Tag ) . Stream . Type == Data . Streams . Stream . StreamType . Video ) . Count ( ) > 0 ;
41+ bool anyAudioStreams = Program . mainForm . streamList . CheckedItems . Cast < ListViewItem > ( ) . Where ( x => ( ( MediaStreamListEntry ) x . Tag ) . Stream . Type == Data . Streams . Stream . StreamType . Audio ) . Count ( ) > 0 ;
3842 bool crf = ( QualityMode ) Program . mainForm . encQualModeBox . SelectedIndex == QualityMode . Crf ;
39- bool twoPass = vCodec . SupportsTwoPass && ( vCodec . ForceTwoPass || ! crf ) ;
43+ bool twoPass = anyVideoStreams && vCodec . SupportsTwoPass && ( vCodec . ForceTwoPass || ! crf ) ;
4044 Dictionary < string , string > videoArgs = vCodec . DoesNotEncode ? new Dictionary < string , string > ( ) : GetVideoArgsFromUi ( ! crf ) ;
4145
4246 string inFiles = TrackList . GetInputFilesString ( ) ;
4347 string outPath = GetOutPath ( vCodec ) ;
4448 string map = TrackList . GetMapArgs ( ) ;
45- string a = CodecUtils . GetCodec ( aCodec ) . GetArgs ( GetAudioArgsFromUi ( ) , TrackList . current . File ) . Arguments ;
49+ string a = anyAudioStreams ? CodecUtils . GetCodec ( aCodec ) . GetArgs ( GetAudioArgsFromUi ( ) , TrackList . current . File ) . Arguments : "" ;
4650 string s = CodecUtils . GetCodec ( sCodec ) . GetArgs ( ) . Arguments ;
4751 string meta = GetMetadataArgs ( ) ;
4852 string custIn = Program . mainForm . customArgsInBox . Text . Trim ( ) ;
@@ -64,8 +68,8 @@ public static async Task Run()
6468 else
6569 {
6670 CodecArgs codecArgs = vCodec . GetArgs ( videoArgs , TrackList . current . File , Pass . OneOfOne ) ;
67- string v = codecArgs . Arguments ;
68- string vf = vCodec . DoesNotEncode ? "" : await GetVideoFilterArgs ( vCodec , codecArgs ) ;
71+ string v = anyVideoStreams ? codecArgs . Arguments : "" ;
72+ string vf = anyVideoStreams && ! vCodec . DoesNotEncode ? await GetVideoFilterArgs ( vCodec , codecArgs ) : "" ;
6973
7074 args = $ "{ custIn } { inFiles } { map } { v } { vf } { a } { s } { meta } { custOut } { muxing } { outPath . Wrap ( ) } ";
7175 }
0 commit comments