diff --git a/VideoNodes/FfmpegBuilderNodes/TrackSelectorFlowElement.cs b/VideoNodes/FfmpegBuilderNodes/TrackSelectorFlowElement.cs index 7de87640..58432988 100644 --- a/VideoNodes/FfmpegBuilderNodes/TrackSelectorFlowElement.cs +++ b/VideoNodes/FfmpegBuilderNodes/TrackSelectorFlowElement.cs @@ -45,6 +45,11 @@ public abstract class TrackSelectorFlowElement : FfmpegBuilderNode where T : /// Gets the label for the custom selection /// protected virtual string CustomLabel => "Custom"; + /// + /// Gets if this allows filtering by the index + /// + protected virtual bool AllowIndex => false; + /// /// Gets or sets the track selection options @@ -65,6 +70,7 @@ public abstract class TrackSelectorFlowElement : FfmpegBuilderNode where T : { if (_TrackSelectionOptionsOptions == null) { + var instance = (T)Activator.CreateInstance(typeof(T))!; _TrackSelectionOptionsOptions = new List { new() { Label = "Channels", Value = "Channels" }, @@ -72,6 +78,8 @@ public abstract class TrackSelectorFlowElement : FfmpegBuilderNode where T : new() { Label = "Language", Value = "Language" }, new() { Label = "Title", Value = "Title" } }; + if(instance.AllowIndex) + _TrackSelectionOptionsOptions.Add(new () { Label = "Index", Value = "Index"}); } return _TrackSelectionOptionsOptions; diff --git a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderTrackRemover.cs b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderTrackRemover.cs index 94196a0b..3d72b54a 100644 --- a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderTrackRemover.cs +++ b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderTrackRemover.cs @@ -20,6 +20,8 @@ public class FfmpegBuilderTrackRemover: TrackSelectorFlowElement "All"; /// protected override string CustomLabel => "Matching"; + /// + protected override bool AllowIndex => true; /// /// Gets or sets the stream types to remove