@@ -57,6 +57,8 @@ public EacOutputTrackType(TrackCodec codec, string rawOutput, string extension,
5757 private List < Info > JobSub ;
5858 private int length ;
5959 private string WorkingPathPrefix ;
60+ private bool SkipAllAudioTracks ;
61+ private bool SkipAllSubtitleTracks ;
6062
6163 private static List < EacOutputTrackType > s_eacOutputs = new List < EacOutputTrackType > {
6264 new EacOutputTrackType ( TrackCodec . RAW_PCM , "RAW/PCM" , "flac" , true , TrackType . Audio ) ,
@@ -86,16 +88,20 @@ public EACDemuxer(string eacPath, string fileName, TaskProfile jobProfile)
8688 _eacPath = eacPath ;
8789 sourceFile = fileName ;
8890 JobAudio = new List < AudioInfo > ( ) ;
89- if ( jobProfile . AudioTracks != null )
91+ if ( jobProfile . AudioTracks != null && ! jobProfile . SkipAllAudioTracks )
9092 {
9193 JobAudio . AddRange ( jobProfile . AudioTracks ) ;
9294 }
9395 JobSub = new List < Info > ( ) ;
94- if ( jobProfile . SubtitleTracks != null )
96+ if ( jobProfile . SubtitleTracks != null && ! jobProfile . SkipAllSubtitleTracks )
9597 {
9698 JobSub . AddRange ( jobProfile . SubtitleTracks ) ;
9799 }
98100 WorkingPathPrefix = jobProfile . WorkingPathPrefix ;
101+ SkipAllAudioTracks = jobProfile . SkipAllAudioTracks ;
102+ SkipAllSubtitleTracks = jobProfile . SkipAllSubtitleTracks ;
103+
104+ Logger . Debug ( $ "SkipAllAudioTracks: { jobProfile . SkipAllAudioTracks } , SkipAllSubtitleTracks: { jobProfile . SkipAllSubtitleTracks } ") ;
99105 }
100106
101107 private void StartEac ( string arguments , bool asyncRead )
@@ -294,6 +300,17 @@ public MediaFile Extract(Action<double, EACProgressType> progressCallback)
294300 state = ProcessState . FetchStream ;
295301 StartEac ( $ "\" { sourceFile } \" ", false ) ;
296302
303+ if ( SkipAllAudioTracks )
304+ {
305+ tracks . RemoveAll ( track => track . Type == TrackType . Audio ) ;
306+ Logger . Debug ( "Skip all audio tracks" ) ;
307+ }
308+ if ( SkipAllSubtitleTracks )
309+ {
310+ tracks . RemoveAll ( track => track . Type == TrackType . Subtitle ) ;
311+ Logger . Debug ( "Skip all subtitle tracks" ) ;
312+ }
313+
297314 var args = new List < string > ( ) ;
298315 var extractResult = new List < TrackInfo > ( ) ;
299316 List < TrackInfo > srcAudio = new List < TrackInfo > ( ) ;
@@ -463,6 +480,8 @@ public MediaFile Extract(Action<double, EACProgressType> progressCallback)
463480 }
464481 }
465482
483+ Logger . Debug ( $ "extract audio number: { audioId } , extract sub number: { subId } ") ;
484+
466485 return mf ;
467486 }
468487 }
0 commit comments