Skip to content

Commit 05947a3

Browse files
committed
EACDemuxer: Add SkipAllAudioTracks and SkipAllSubtitleTracks options to skip checking and extracting of all audio/subtitle tracks. If you set them to true, the corresponding AudioTracks and SubtitleTracks options will be ignored.
1 parent d576650 commit 05947a3

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

OKEGui/OKEGui/JobProcessor/Demuxer/EACDemuxer.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

OKEGui/OKEGui/Task/TaskProfile.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public class TaskProfile : ICloneable
2828
public bool Rpc;
2929
public bool TimeCode;
3030
public bool RenumberChapters;
31+
public bool SkipAllAudioTracks;
32+
public bool SkipAllSubtitleTracks;
3133

3234
//后续任务中填写的参数
3335
public string VideoFormat;

0 commit comments

Comments
 (0)