Skip to content

Commit 1b75117

Browse files
committed
Concat util using mkvmerge, check if files are in list before running util
1 parent f79f122 commit 1b75117

File tree

11 files changed

+328
-107
lines changed

11 files changed

+328
-107
lines changed

Media/icon_concat.png

104 Bytes
Loading

ff-utils-winforms/Forms/MainForm.Designer.cs

Lines changed: 149 additions & 98 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ff-utils-winforms/Forms/MainForm.Utils.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,19 @@ private void SelectOcr(object sender, EventArgs e)
106106
UpdatePanels();
107107
}
108108

109+
private void SelectConcat(object sender, EventArgs e)
110+
{
111+
currentTask = RunTask.TaskType.UtilConcat;
112+
UpdatePanels();
113+
}
114+
109115
private void UpdatePanels()
110116
{
111117
utilsBitratesPanel.BorderStyle = (currentTask == RunTask.TaskType.UtilReadBitrates) ? BorderStyle.FixedSingle : BorderStyle.None;
112118
utilsMetricsPanel.BorderStyle = (currentTask == RunTask.TaskType.UtilGetMetrics) ? BorderStyle.FixedSingle : BorderStyle.None;
113119
utilsOcrPanel.BorderStyle = (currentTask == RunTask.TaskType.UtilOcr) ? BorderStyle.FixedSingle : BorderStyle.None;
114120
utilsColorDataPanel.BorderStyle = (currentTask == RunTask.TaskType.UtilColorData) ? BorderStyle.FixedSingle : BorderStyle.None;
121+
utilsConcatPanel.BorderStyle = (currentTask == RunTask.TaskType.UtilConcat) ? BorderStyle.FixedSingle : BorderStyle.None;
115122
}
116123
}
117124
}

ff-utils-winforms/Forms/MainForm.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@
120120
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
121121
<value>17, 17</value>
122122
</metadata>
123+
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124+
<value>17, 17</value>
125+
</metadata>
123126
<metadata name="checkItemsContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124127
<value>107, 17</value>
125128
</metadata>

ff-utils-winforms/Main/RunTask.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Nmkoder.Main
1616
{
1717
public class RunTask
1818
{
19-
public enum TaskType { Null, None, Convert, Av1an, UtilReadBitrates, UtilGetMetrics, UtilOcr, UtilColorData };
19+
public enum TaskType { Null, None, Convert, Av1an, UtilReadBitrates, UtilGetMetrics, UtilOcr, UtilColorData, UtilConcat };
2020
//public static TaskType currentTask;
2121

2222
public enum FileListMode { MultiFileInput, BatchProcess };
@@ -50,7 +50,14 @@ public static async Task Start (TaskType batchTask = TaskType.Null)
5050

5151
TaskType taskType = batchTask == TaskType.Null ? Program.mainForm.GetCurrentTaskType() : batchTask;
5252

53-
bool loadedFileRequired = taskType == TaskType.Convert || taskType == TaskType.Av1an || taskType == TaskType.UtilReadBitrates;
53+
if (Program.mainForm.fileListBox.Items.Count < 1)
54+
{
55+
MessageBox.Show("No input files in file list! Please add one or more files first.", "Error");
56+
Program.mainForm.mainTabList.SelectedIndex = 0;
57+
return;
58+
}
59+
60+
bool loadedFileRequired = taskType == TaskType.Convert || taskType == TaskType.Av1an || taskType == TaskType.UtilReadBitrates || taskType == TaskType.UtilOcr;
5461

5562
if (loadedFileRequired && (currentFileListMode == FileListMode.MultiFileInput && TrackList.current == null))
5663
{
@@ -88,7 +95,10 @@ public static async Task Start (TaskType batchTask = TaskType.Null)
8895
if (taskType == TaskType.UtilColorData)
8996
await UtilColorData.Run();
9097

91-
Logger.Log($"Done - Finished task in {sw}");
98+
if (taskType == TaskType.UtilConcat)
99+
await UtilConcat.Run();
100+
101+
Logger.Log($"Done - Finished task in {sw}.");
92102
Program.mainForm.SetProgress(0);
93103
Program.mainForm.SetWorking(false);
94104
}

ff-utils-winforms/Nmkoder.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,7 @@
395395
<Compile Include="Properties\AssemblyInfo.cs" />
396396
<Compile Include="UI\FileList.cs" />
397397
<Compile Include="UI\Tasks\UtilColorData.cs" />
398+
<Compile Include="UI\Tasks\UtilConcat.cs" />
398399
<Compile Include="UI\Tasks\UtilOcr.cs" />
399400
<Compile Include="UI\Tasks\UtilReadBitrates.cs" />
400401
<Compile Include="UI\Tasks\UtilGetMetrics.cs" />
@@ -405,6 +406,7 @@
405406
<Compile Include="UI\Tasks\QuickConvertUi.cs" />
406407
<Compile Include="UI\ThumbnailView.cs" />
407408
<Compile Include="Utils\ColorDataUtils.cs" />
409+
<Compile Include="Utils\ConcatUtils.cs" />
408410
<Compile Include="Utils\FormatUtils.cs" />
409411
<Compile Include="Utils\MiscUtils.cs" />
410412
<Compile Include="Utils\NmkdStopwatch.cs" />
@@ -463,6 +465,7 @@
463465
<Content Include="ff-utils-icon-new.ico" />
464466
<Content Include="NMKD2020-nonly1-smoothed2.ico" />
465467
<Content Include="nmkoder.ico" />
468+
<None Include="Resources\icon_concat.png" />
466469
<None Include="Resources\icon_videocolor.png" />
467470
<None Include="Resources\icon_info.png" />
468471
<None Include="Resources\icon_checklist.png" />

ff-utils-winforms/Properties/Resources.Designer.cs

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ff-utils-winforms/Properties/Resources.resx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@
133133
<data name="icon_delaySync" type="System.Resources.ResXFileRef, System.Windows.Forms">
134134
<value>..\Resources\icon_delaySync.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
135135
</data>
136+
<data name="icon_videocolor" type="System.Resources.ResXFileRef, System.Windows.Forms">
137+
<value>..\Resources\icon_videocolor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
138+
</data>
136139
<data name="icon_clear" type="System.Resources.ResXFileRef, System.Windows.Forms">
137140
<value>..\Resources\icon_clear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
138141
</data>
@@ -172,14 +175,14 @@
172175
<data name="dragdrop2-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
173176
<value>..\Resources\dragdrop2-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
174177
</data>
175-
<data name="icon_imgStack2" type="System.Resources.ResXFileRef, System.Windows.Forms">
176-
<value>..\Resources\icon_imgStack2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
178+
<data name="dragdrop2" type="System.Resources.ResXFileRef, System.Windows.Forms">
179+
<value>..\Resources\dragdrop2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
177180
</data>
178181
<data name="icon_imgStack" type="System.Resources.ResXFileRef, System.Windows.Forms">
179182
<value>..\Resources\icon_imgStack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
180183
</data>
181-
<data name="dragdrop2" type="System.Resources.ResXFileRef, System.Windows.Forms">
182-
<value>..\Resources\dragdrop2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
184+
<data name="icon_imgStack2" type="System.Resources.ResXFileRef, System.Windows.Forms">
185+
<value>..\Resources\icon_imgStack2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
183186
</data>
184187
<data name="play_32px_div" type="System.Resources.ResXFileRef, System.Windows.Forms">
185188
<value>..\Resources\play-32px-div.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -202,7 +205,7 @@
202205
<data name="icon_speed" type="System.Resources.ResXFileRef, System.Windows.Forms">
203206
<value>..\Resources\icon_speed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
204207
</data>
205-
<data name="icon_videocolor" type="System.Resources.ResXFileRef, System.Windows.Forms">
206-
<value>..\Resources\icon_videocolor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
208+
<data name="icon_concat" type="System.Resources.ResXFileRef, System.Windows.Forms">
209+
<value>..\Resources\icon_concat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
207210
</data>
208211
</root>
104 Bytes
Loading
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using Nmkoder.Data;
2+
using Nmkoder.Data.Ui;
3+
using Nmkoder.Forms.Utils;
4+
using Nmkoder.IO;
5+
using Nmkoder.Main;
6+
using Nmkoder.Utils;
7+
using System;
8+
using System.Collections.Generic;
9+
using System.IO;
10+
using System.Linq;
11+
using System.Text;
12+
using System.Threading.Tasks;
13+
14+
namespace Nmkoder.UI.Tasks
15+
{
16+
class UtilConcat
17+
{
18+
public static async Task Run()
19+
{
20+
if (RunTask.currentFileListMode == RunTask.FileListMode.BatchProcess)
21+
{
22+
Logger.Log($"Color Data Utility: Didn't run because this util only works in Multi File Mode!");
23+
return;
24+
}
25+
26+
Program.mainForm.SetWorking(true);
27+
28+
try
29+
{
30+
List<string> paths = Program.mainForm.fileListBox.Items.OfType<FileListEntry>().Where(x => x.File.TruePath == x.File.SourcePath).Select(x => x.File.TruePath).ToList();
31+
string filename = new FileInfo(paths[0]).Directory.Name + "-merge.mkv";
32+
string outPath = Path.Combine(new FileInfo(paths[0]).Directory.FullName, filename);
33+
IoUtils.TryDeleteIfExists(outPath);
34+
await ConcatUtils.ConcatMkvMerge(paths, outPath);
35+
}
36+
catch (Exception e)
37+
{
38+
Logger.Log($"{e.Message}\n{e.StackTrace}");
39+
}
40+
41+
Program.mainForm.SetWorking(false);
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)