diff --git a/IFME.FFmpeg/MediaInfo.cs b/IFME.FFmpeg/MediaInfo.cs
index c2ac718..0c94f6b 100644
--- a/IFME.FFmpeg/MediaInfo.cs
+++ b/IFME.FFmpeg/MediaInfo.cs
@@ -58,6 +58,7 @@ public MediaInfo(string path)
string lang = "und";
try { lang = stream.tags.language; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
+ if (string.IsNullOrEmpty(lang)) lang = "und";
string codec = "unknown";
try { codec = stream.codec_name; }
@@ -142,6 +143,11 @@ public MediaInfo(string path)
try { id = stream.index; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
+ string lang = "und";
+ try { lang = stream.tags.language; }
+ catch (Exception ex) { Console.WriteLine(ex.Message); }
+ if (string.IsNullOrEmpty(lang)) lang = "und";
+
string codec = "unknown";
try { codec = stream.codec_name; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
@@ -158,10 +164,6 @@ public MediaInfo(string path)
try { channel = stream.channels; }
catch(Exception ex) { Console.WriteLine(ex.Message); }
- string lang = "und";
- try { lang = stream.tags.language; }
- catch (Exception ex) { Console.WriteLine(ex.Message); }
-
if (bitdepth == 0) bitdepth = 16;
else if (bitdepth >= 32) bitdepth = 24;
@@ -183,13 +185,14 @@ public MediaInfo(string path)
try { id = stream.index; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
- string codec = "unknown";
- try { codec = stream.codec_name; }
- catch (Exception ex) { Console.WriteLine(ex.Message); }
-
string lang = "und";
try { lang = stream.tags.language; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
+ if (string.IsNullOrEmpty(lang)) lang = "und";
+
+ string codec = "unknown";
+ try { codec = stream.codec_name; }
+ catch (Exception ex) { Console.WriteLine(ex.Message); }
Subtitle.Add(new StreamSubtitle
{
@@ -232,10 +235,12 @@ public static string Print(MediaInfo value)
$"Duration : {value.Duration} seconds{Environment.NewLine}" +
$"Overall bit rate : {value.BitRate} bps{Environment.NewLine}";
- var video = $"{Environment.NewLine}Video{Environment.NewLine}";
+ var v = 0;
+ var video = string.Empty;
foreach (var item in value.Video)
{
- video += $"ID : {item.Id}{Environment.NewLine}" +
+ video += $"{Environment.NewLine}Video #{v++}{Environment.NewLine}" +
+ $"ID : {item.Id}{Environment.NewLine}" +
$"Format : {item.Codec}{Environment.NewLine}" +
$"Width : {item.Width}{Environment.NewLine}" +
$"Height : {item.Height}{Environment.NewLine}" +
@@ -246,10 +251,12 @@ public static string Print(MediaInfo value)
$"Language : {item.Language}{Environment.NewLine}";
}
- var audio = $"{Environment.NewLine}Audio{Environment.NewLine}";
+ var a = 0;
+ var audio = string.Empty;
foreach (var item in value.Audio)
{
- audio += $"ID : {item.Id}{Environment.NewLine}" +
+ audio += $"{Environment.NewLine}Audio #{a++}{Environment.NewLine}" +
+ $"ID : {item.Id}{Environment.NewLine}" +
$"Format : {item.Codec}{Environment.NewLine}" +
$"Channel(s) : {item.Channel}{Environment.NewLine}" +
$"Sampling rate : {item.SampleRate} Hz{Environment.NewLine}" +
@@ -257,18 +264,22 @@ public static string Print(MediaInfo value)
$"Language : {item.Language}{Environment.NewLine}";
}
- var subtitle = $"{Environment.NewLine}Subtitles{Environment.NewLine}";
+ var s = 0;
+ var subtitle = string.Empty;
foreach (var item in value.Subtitle)
{
- subtitle += $"ID : {item.Id}{Environment.NewLine}" +
+ subtitle += $"{Environment.NewLine}Subtitles #{s++}{Environment.NewLine}" +
+ $"ID : {item.Id}{Environment.NewLine}" +
$"Format : {item.Codec}{Environment.NewLine}" +
$"Language : {item.Language}{Environment.NewLine}";
}
- var attach = $"{Environment.NewLine}Attachments{Environment.NewLine}";
+ var t = 0;
+ var attach = string.Empty;
foreach (var item in value.Attachment)
{
- attach += $"ID : {item.Id}{Environment.NewLine}" +
+ attach += $"{Environment.NewLine}Attachments #{t++}{Environment.NewLine}" +
+ $"ID : {item.Id}{Environment.NewLine}" +
$"Name : {item.FileName}{Environment.NewLine}" +
$"MIME : {item.MimeType}{Environment.NewLine}";
}
diff --git a/IFME/IFME.csproj b/IFME/IFME.csproj
index 9237a1a..096acb5 100644
--- a/IFME/IFME.csproj
+++ b/IFME/IFME.csproj
@@ -135,6 +135,9 @@
PreserveNewest
+
+ PreserveNewest
+
SettingsSingleFileGenerator
Settings.Designer.cs
@@ -179,5 +182,10 @@
+
+
+ PreserveNewest
+
+
\ No newline at end of file
diff --git a/IFME/MediaEncoding.cs b/IFME/MediaEncoding.cs
index 07eaf56..6be6132 100644
--- a/IFME/MediaEncoding.cs
+++ b/IFME/MediaEncoding.cs
@@ -106,8 +106,6 @@ internal static void Audio(MediaQueue queue, string tempDir)
internal static void Video(MediaQueue queue, string tempDir)
{
- var original_data = new FFmpeg.MediaInfo(queue.FilePath);
-
for (int i = 0; i < queue.Video.Count; i++)
{
var item = queue.Video[i];
@@ -152,15 +150,6 @@ internal static void Video(MediaQueue queue, string tempDir)
fps = $"-r {item.Quality.FrameRate}";
}
- if (item.Quality.Width >= 128 && item.Quality.Height >= 128)
- {
- res = $"-s {item.Quality.Width}x{item.Quality.Height}";
- }
- else
- {
- res = $"-s {original_data.Video[i].Width}x{original_data.Video[i].Height}";
- }
-
if (!vc.Args.Preset.IsDisable() && !item.Encoder.Preset.IsDisable())
{
preset = $"{vc.Args.Preset} {item.Encoder.Preset}";
@@ -188,12 +177,24 @@ internal static void Video(MediaQueue queue, string tempDir)
}
// FFmpeg Video Filter
+ if (item.Quality.Width >= 128 && item.Quality.Height >= 128)
+ {
+ res = $"scale={item.Quality.Width}:{item.Quality.Height}";
+
+ if (item.Quality.OriginalWidth > item.Quality.Width)
+ res += ":flags=lanczos";
+ }
+ else
+ {
+ res = $"scale={item.Quality.OriginalWidth}:{item.Quality.OriginalHeight}";
+ }
+
if (item.DeInterlace.Enable)
{
fi.Add($"yadif={item.DeInterlace.Mode}:{item.DeInterlace.Field}:0");
}
- if (item.Quality.CommandFilter.IsDisable())
+ if (!item.Quality.CommandFilter.IsDisable())
{
fi.Add(item.Quality.CommandFilter);
}
@@ -218,8 +219,15 @@ internal static void Video(MediaQueue queue, string tempDir)
}
}
+ // Resolution filter
+ fi.Add(res);
+
+ // Concat multiple filter
if (fi.Count > 0)
- vf = $"-vf \"{string.Join(", ", fi)}\"";
+ vf = $"-vf \"{string.Join(",", fi)}\"";
+
+ // Tell You
+ Console2.WriteLine($"[INFO] Video filter command is: {vf}");
// begin encoding
Console2.WriteLine($"[INFO] Encoding video file...");
@@ -244,9 +252,9 @@ internal static void Video(MediaQueue queue, string tempDir)
Console2.WriteLine($"[INFO] Multi-pass encoding: {p} of {item.Encoder.MultiPass}");
if (vc.Args.Pipe)
- ProcessManager.Start(tempDir, $"\"{FFmpeg}\" -hide_banner -v error -i \"{item.File}\" -strict -1 {trim} -map 0:{item.Id} -f yuv4mpegpipe -pix_fmt {yuv} {res} {fps} {vf} {item.Quality.Command} - | \"{en}\" {vc.Args.Input} {vc.Args.Y4M} {preset} {quality} {tune} {bitdepth} {pass} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
+ ProcessManager.Start(tempDir, $"\"{FFmpeg}\" -hide_banner -v error -i \"{item.File}\" -strict -1 {trim} -map 0:{item.Id} -f yuv4mpegpipe -pix_fmt {yuv} {fps} {vf} {item.Quality.Command} - | \"{en}\" {vc.Args.Input} {vc.Args.Y4M} {preset} {quality} {tune} {bitdepth} {pass} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
else
- ProcessManager.Start(tempDir, $"\"{en}\" {vc.Args.Input} \"{item.File}\" {trim} -map 0:{item.Id} -pix_fmt {yuv} {res} {fps} {vf} {vc.Args.UnPipe} {preset} {quality} {tune} {pass} {item.Encoder.Command} {vc.Args.Command} {vc.Args.Output} {outrawfile}");
+ ProcessManager.Start(tempDir, $"\"{en}\" {vc.Args.Input} \"{item.File}\" {trim} -map 0:{item.Id} -pix_fmt {yuv} {fps} {vf} {vc.Args.UnPipe} {preset} {quality} {tune} {pass} {item.Encoder.Command} {vc.Args.Command} {vc.Args.Output} {outrawfile}");
++p;
@@ -255,9 +263,9 @@ internal static void Video(MediaQueue queue, string tempDir)
else
{
if (vc.Args.Pipe)
- ProcessManager.Start(tempDir, $"\"{FFmpeg}\" -hide_banner -v error -i \"{item.File}\" -strict -1 {trim} -map 0:{item.Id} -f yuv4mpegpipe -pix_fmt {yuv} {res} {fps} {vf} {item.Quality.Command} - | \"{en}\" {vc.Args.Input} {vc.Args.Y4M} {preset} {quality} {tune} {bitdepth} {framecount} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
+ ProcessManager.Start(tempDir, $"\"{FFmpeg}\" -hide_banner -v error -i \"{item.File}\" -strict -1 {trim} -map 0:{item.Id} -f yuv4mpegpipe -pix_fmt {yuv} {fps} {vf} {item.Quality.Command} - | \"{en}\" {vc.Args.Input} {vc.Args.Y4M} {preset} {quality} {tune} {bitdepth} {framecount} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
else
- ProcessManager.Start(tempDir, $"\"{en}\" {vc.Args.Input} \"{item.File}\" {trim} -map 0:{item.Id} -pix_fmt {yuv} {res} {fps} {vf} {vc.Args.UnPipe} {preset} {quality} {tune} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
+ ProcessManager.Start(tempDir, $"\"{en}\" {vc.Args.Input} \"{item.File}\" {trim} -map 0:{item.Id} -pix_fmt {yuv} {fps} {vf} {vc.Args.UnPipe} {preset} {quality} {tune} {item.Encoder.Command} {vc.Args.Output} {outrawfile}");
}
// Raw file dont have pts (time), need to remux
diff --git a/IFME/MediaQueue/MediaQueueParse.cs b/IFME/MediaQueue/MediaQueueParse.cs
index 268ba8b..51257ce 100644
--- a/IFME/MediaQueue/MediaQueueParse.cs
+++ b/IFME/MediaQueue/MediaQueueParse.cs
@@ -33,6 +33,8 @@ public static MediaQueueVideo Video(string path, FFmpeg.StreamVideo data)
{
Width = data.Width,
Height = data.Height,
+ OriginalWidth = data.Width,
+ OriginalHeight = data.Height,
FrameRate = (float)Math.Round(data.FrameRateAvg, 3),
FrameRateAvg = data.FrameRateAvg,
FrameCount = (int)Math.Ceiling(data.Duration * data.FrameRate),
diff --git a/IFME/MediaQueue/MediaQueueVideo.cs b/IFME/MediaQueue/MediaQueueVideo.cs
index 80e4cb6..6470066 100644
--- a/IFME/MediaQueue/MediaQueueVideo.cs
+++ b/IFME/MediaQueue/MediaQueueVideo.cs
@@ -28,6 +28,8 @@ public class MediaQueueVideoQuality
{
public int Width { get; set; }
public int Height { get; set; }
+ public int OriginalWidth { get; set; }
+ public int OriginalHeight { get; set; }
public bool IsVFR { get; set; }
public float FrameRate { get; set; }
public float FrameRateAvg { get; set; }
diff --git a/IFME/Profiles/Profile_0000-00-00_00-00-00_0003.json b/IFME/Profiles/Profile_0000-00-00_00-00-00_0003.json
index 940d88d..3be15d5 100644
--- a/IFME/Profiles/Profile_0000-00-00_00-00-00_0003.json
+++ b/IFME/Profiles/Profile_0000-00-00_00-00-00_0003.json
@@ -1,5 +1,5 @@
{
- "ProfileName": "HDR to SDR YUV420 (x265 AAC)",
+ "ProfileName": "HDR to SDR YUV420 8bit (x265 AAC)",
"ProfileAuthor": "Anime4000",
"Container": "mkv",
"Video": {
diff --git a/IFME/Profiles/Profile_0000-00-00_00-00-00_0004.json b/IFME/Profiles/Profile_0000-00-00_00-00-00_0004.json
index 86e3a2a..ef4fbda 100644
--- a/IFME/Profiles/Profile_0000-00-00_00-00-00_0004.json
+++ b/IFME/Profiles/Profile_0000-00-00_00-00-00_0004.json
@@ -1,5 +1,5 @@
{
- "ProfileName": "HDR to SDR YUV444 (x265 AAC)",
+ "ProfileName": "HDR to SDR YUV444 8bit (x265 AAC)",
"ProfileAuthor": "Anime4000",
"Container": "mkv",
"Video": {
diff --git a/IFME/Profiles/Profile_0000-00-00_00-00-00_0005.json b/IFME/Profiles/Profile_0000-00-00_00-00-00_0005.json
new file mode 100644
index 0000000..9fd50a3
--- /dev/null
+++ b/IFME/Profiles/Profile_0000-00-00_00-00-00_0005.json
@@ -0,0 +1,43 @@
+{
+ "ProfileName": "HDR to SDR YUV420 10bit (x265 AAC)",
+ "ProfileAuthor": "Anime4000",
+ "Container": "mkv",
+ "Video": {
+ "Encoder": {
+ "Id": "deadbeef-0265-0265-0265-026502650265",
+ "Preset": "veryslow",
+ "Tune": "psnr",
+ "Mode": 0,
+ "Value": 23,
+ "MultiPass": 2,
+ "Command": "--pme --pmode"
+ },
+ "Quality": {
+ "Width": 0,
+ "Height": 0,
+ "FrameRate": 0,
+ "BitDepth": 10,
+ "PixelFormat": 420,
+ "Command": "",
+ "CommandFilter": "zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p10le"
+ },
+ "DeInterlace": {
+ "Enable": false,
+ "Field": 0,
+ "Mode": 1
+ }
+ },
+ "Audio": {
+ "Encoder": {
+ "Id": "deadbeef-0aac-0aac-0aac-0aac0aac0aac",
+ "Mode": 0,
+ "Quality": 128,
+ "SampleRate": 44100,
+ "Channel": 2,
+ "Command": ""
+ },
+ "Copy": false,
+ "Command": "",
+ "CommandFilter": ""
+ }
+}
\ No newline at end of file
diff --git a/IFME/Profiles/Profile_0000-00-00_00-00-00_0006.json b/IFME/Profiles/Profile_0000-00-00_00-00-00_0006.json
new file mode 100644
index 0000000..b6748b5
--- /dev/null
+++ b/IFME/Profiles/Profile_0000-00-00_00-00-00_0006.json
@@ -0,0 +1,43 @@
+{
+ "ProfileName": "HDR to SDR YUV444 10bit (x265 AAC)",
+ "ProfileAuthor": "Anime4000",
+ "Container": "mkv",
+ "Video": {
+ "Encoder": {
+ "Id": "deadbeef-0265-0265-0265-026502650265",
+ "Preset": "veryslow",
+ "Tune": "psnr",
+ "Mode": 0,
+ "Value": 23,
+ "MultiPass": 2,
+ "Command": "--pme --pmode"
+ },
+ "Quality": {
+ "Width": 0,
+ "Height": 0,
+ "FrameRate": 0,
+ "BitDepth": 10,
+ "PixelFormat": 444,
+ "Command": "",
+ "CommandFilter": "zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv444p10le"
+ },
+ "DeInterlace": {
+ "Enable": false,
+ "Field": 0,
+ "Mode": 1
+ }
+ },
+ "Audio": {
+ "Encoder": {
+ "Id": "deadbeef-0aac-0aac-0aac-0aac0aac0aac",
+ "Mode": 0,
+ "Quality": 128,
+ "SampleRate": 44100,
+ "Channel": 2,
+ "Command": ""
+ },
+ "Copy": false,
+ "Command": "",
+ "CommandFilter": ""
+ }
+}
\ No newline at end of file
diff --git a/IFME/frmMain.Designer.cs b/IFME/frmMain.Designer.cs
index b4db75c..20140d6 100644
--- a/IFME/frmMain.Designer.cs
+++ b/IFME/frmMain.Designer.cs
@@ -144,6 +144,8 @@ private void InitializeComponent()
this.Seperator3 = new System.Windows.Forms.Label();
this.btnVideoDel = new System.Windows.Forms.Button();
this.tabConfig = new System.Windows.Forms.TabControl();
+ this.tabConfigMediaInfo = new System.Windows.Forms.TabPage();
+ this.txtMediaInfo = new System.Windows.Forms.TextBox();
this.lstFile = new System.Windows.Forms.ListView();
this.colFileName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colFileType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@@ -172,8 +174,6 @@ private void InitializeComponent()
this.tsmiProfilesDelete = new System.Windows.Forms.ToolStripMenuItem();
this.cmsPower = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsmiPowerOff = new System.Windows.Forms.ToolStripMenuItem();
- this.tabConfigMediaInfo = new System.Windows.Forms.TabPage();
- this.txtMediaInfo = new System.Windows.Forms.TextBox();
this.tabConfigSubtitle.SuspendLayout();
this.grpAudioCodec.SuspendLayout();
this.tabConfigAudio.SuspendLayout();
@@ -189,10 +189,10 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.nudVideoMultiPass)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudVideoRateFactor)).BeginInit();
this.tabConfig.SuspendLayout();
+ this.tabConfigMediaInfo.SuspendLayout();
this.cmsFileAdd.SuspendLayout();
this.cmsProfiles.SuspendLayout();
this.cmsPower.SuspendLayout();
- this.tabConfigMediaInfo.SuspendLayout();
this.SuspendLayout();
//
// cboSubLang
@@ -1525,6 +1525,28 @@ private void InitializeComponent()
this.tabConfig.Size = new System.Drawing.Size(776, 292);
this.tabConfig.TabIndex = 11;
//
+ // tabConfigMediaInfo
+ //
+ this.tabConfigMediaInfo.Controls.Add(this.txtMediaInfo);
+ this.tabConfigMediaInfo.Location = new System.Drawing.Point(4, 24);
+ this.tabConfigMediaInfo.Name = "tabConfigMediaInfo";
+ this.tabConfigMediaInfo.Size = new System.Drawing.Size(768, 264);
+ this.tabConfigMediaInfo.TabIndex = 6;
+ this.tabConfigMediaInfo.Text = "Media Info";
+ this.tabConfigMediaInfo.UseVisualStyleBackColor = true;
+ //
+ // txtMediaInfo
+ //
+ this.txtMediaInfo.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.txtMediaInfo.Location = new System.Drawing.Point(0, 0);
+ this.txtMediaInfo.Multiline = true;
+ this.txtMediaInfo.Name = "txtMediaInfo";
+ this.txtMediaInfo.ReadOnly = true;
+ this.txtMediaInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.txtMediaInfo.Size = new System.Drawing.Size(768, 264);
+ this.txtMediaInfo.TabIndex = 0;
+ this.txtMediaInfo.WordWrap = false;
+ //
// lstFile
//
this.lstFile.AllowDrop = true;
@@ -1768,27 +1790,6 @@ private void InitializeComponent()
this.tsmiPowerOff.Text = "Shutdown when complete";
this.tsmiPowerOff.Click += new System.EventHandler(this.tsmiPowerOff_Click);
//
- // tabConfigMediaInfo
- //
- this.tabConfigMediaInfo.Controls.Add(this.txtMediaInfo);
- this.tabConfigMediaInfo.Location = new System.Drawing.Point(4, 24);
- this.tabConfigMediaInfo.Name = "tabConfigMediaInfo";
- this.tabConfigMediaInfo.Size = new System.Drawing.Size(768, 264);
- this.tabConfigMediaInfo.TabIndex = 6;
- this.tabConfigMediaInfo.Text = "Media Info";
- this.tabConfigMediaInfo.UseVisualStyleBackColor = true;
- //
- // txtMediaInfo
- //
- this.txtMediaInfo.Dock = System.Windows.Forms.DockStyle.Fill;
- this.txtMediaInfo.Location = new System.Drawing.Point(0, 0);
- this.txtMediaInfo.Multiline = true;
- this.txtMediaInfo.Name = "txtMediaInfo";
- this.txtMediaInfo.ReadOnly = true;
- this.txtMediaInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
- this.txtMediaInfo.Size = new System.Drawing.Size(768, 264);
- this.txtMediaInfo.TabIndex = 0;
- //
// frmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@@ -1839,11 +1840,11 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.nudVideoMultiPass)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudVideoRateFactor)).EndInit();
this.tabConfig.ResumeLayout(false);
+ this.tabConfigMediaInfo.ResumeLayout(false);
+ this.tabConfigMediaInfo.PerformLayout();
this.cmsFileAdd.ResumeLayout(false);
this.cmsProfiles.ResumeLayout(false);
this.cmsPower.ResumeLayout(false);
- this.tabConfigMediaInfo.ResumeLayout(false);
- this.tabConfigMediaInfo.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
diff --git a/IFME/frmMain.Function.cs b/IFME/frmMain.Function.cs
index 5aae50f..5c024d9 100644
--- a/IFME/frmMain.Function.cs
+++ b/IFME/frmMain.Function.cs
@@ -482,15 +482,17 @@ private void SetProfileData(Profiles value)
item.Quality.BitDepth = value.Video.Quality.BitDepth;
item.Quality.PixelFormat = value.Video.Quality.PixelFormat;
item.Quality.Command = value.Video.Quality.Command;
+ item.Quality.CommandFilter = value.Video.Quality.CommandFilter;
item.DeInterlace = value.Video.DeInterlace;
}
foreach (var item in (queue.Tag as MediaQueue).Audio)
{
+ item.Copy = value.Audio.Copy;
item.Encoder = value.Audio.Encoder;
item.Command = value.Audio.Command;
- item.Copy = value.Audio.Copy;
+ item.CommandFilter = value.Audio.CommandFilter;
}
}
diff --git a/IFME/frmMain.cs b/IFME/frmMain.cs
index f2b7688..f206644 100644
--- a/IFME/frmMain.cs
+++ b/IFME/frmMain.cs
@@ -1181,6 +1181,9 @@ private void btnAudioMoveDown_Click(object sender, EventArgs e)
private void lstAudio_SelectedIndexChanged(object sender, EventArgs e)
{
+ if (btnAudioDel.Focused)
+ return;
+
if (lstAudio.SelectedItems.Count > 0)
{
var data = (lstFile.SelectedItems[0].Tag as MediaQueue).Audio[lstAudio.SelectedItems[0].Index];
diff --git a/IFME/frmMain.resx b/IFME/frmMain.resx
index fc2259a..f1a586d 100644
--- a/IFME/frmMain.resx
+++ b/IFME/frmMain.resx
@@ -147,9 +147,6 @@
True
-
- True
-
True
@@ -222,57 +219,12 @@
True
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
True
True
-
- True
-
True
@@ -294,21 +246,6 @@
True
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
True
@@ -336,9 +273,6 @@
True
-
- True
-
True
@@ -357,24 +291,6 @@
True
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
True
@@ -420,12 +336,6 @@
True
-
- True
-
-
- True
-
True
@@ -453,69 +363,6 @@
True
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
True
diff --git a/IFME/frmSplashScreen.cs b/IFME/frmSplashScreen.cs
index c9ee01f..cb57aac 100644
--- a/IFME/frmSplashScreen.cs
+++ b/IFME/frmSplashScreen.cs
@@ -4,6 +4,7 @@
using System.Data;
using System.Drawing;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -18,6 +19,8 @@ public partial class frmSplashScreen : Form
public frmSplashScreen()
{
InitializeComponent();
+ Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);
+
bgThread.DoWork += BgThread_DoWork;
bgThread.RunWorkerCompleted += BgThread_RunWorkerCompleted;
}