diff --git a/Code/AudioVideo/FFmpegCommands.cs b/Code/AudioVideo/FFmpegCommands.cs
index a6c3477..6b845cd 100644
--- a/Code/AudioVideo/FFmpegCommands.cs
+++ b/Code/AudioVideo/FFmpegCommands.cs
@@ -18,22 +18,22 @@ namespace Flowframes
static string mpDecDef = "\"mpdecimate\"";
static string mpDecAggr = "\"mpdecimate=hi=64*32:lo=64*32:frac=0.1\"";
- public static async Task VideoToFrames(string inputFile, string frameFolderPath, bool deDupe, bool delSrc)
+ public static async Task VideoToFrames(string inputFile, string frameFolderPath, bool deDupe, bool delSrc, bool timecodes = true)
{
- await VideoToFrames(inputFile, frameFolderPath, deDupe, delSrc, new Size());
+ await VideoToFrames(inputFile, frameFolderPath, deDupe, delSrc, new Size(), timecodes);
}
- public static async Task VideoToFrames(string inputFile, string frameFolderPath, bool deDupe, bool delSrc, Size size)
+ public static async Task VideoToFrames(string inputFile, string frameFolderPath, bool deDupe, bool delSrc, Size size, bool timecodes = true)
{
- string sizeStr = "";
- if (size.Width > 1 && size.Height > 1) sizeStr = $"-s {size.Width}x{size.Height}";
+ string sizeStr = (size.Width > 1 && size.Height > 1) ? $"-s {size.Width}x{size.Height}" : "";
if (!Directory.Exists(frameFolderPath))
Directory.CreateDirectory(frameFolderPath);
- string args = $"-i {inputFile.Wrap()} {pngComprArg} -vsync 0 -pix_fmt rgb24 -copyts -r 1000 -frame_pts true -vf {divisionFilter} {sizeStr} \"{frameFolderPath}/%08d.png\"";
+ string timecodeStr = timecodes ? "-copyts -r 1000 -frame_pts true" : "";
+ string args = $"-i {inputFile.Wrap()} {pngComprArg} -vsync 0 -pix_fmt rgb24 {timecodeStr} -vf {divisionFilter} {sizeStr} \"{frameFolderPath}/%08d.png\"";
if (deDupe)
{
string mpStr = (Config.GetInt("mpdecimateMode") == 0) ? mpDecDef : mpDecAggr;
- args = $"-i {inputFile.Wrap()} -copyts -r 1000 {pngComprArg} -vsync 0 -pix_fmt rgb24 -frame_pts true -vf {mpStr},{divisionFilter} {sizeStr} \"{frameFolderPath}/%08d.png\"";
+ args = $"-i {inputFile.Wrap()} {pngComprArg} -vsync 0 -pix_fmt rgb24 {timecodeStr} -vf {mpStr},{divisionFilter} {sizeStr} \"{frameFolderPath}/%08d.png\"";
}
await AvProcess.RunFfmpeg(args, AvProcess.LogMode.OnlyLastLine);
await Task.Delay(1);
diff --git a/Code/AudioVideo/FFmpegStrings.cs b/Code/AudioVideo/FFmpegStrings.cs
deleted file mode 100644
index 4926349..0000000
--- a/Code/AudioVideo/FFmpegStrings.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Flowframes
-{
- class FFmpegStrings
- {
-
- }
-}
diff --git a/Code/Flowframes.csproj b/Code/Flowframes.csproj
index d4ab1da..e2417bf 100644
--- a/Code/Flowframes.csproj
+++ b/Code/Flowframes.csproj
@@ -197,7 +197,6 @@
-
Form
@@ -221,6 +220,7 @@
+
@@ -280,6 +280,8 @@
+
+
diff --git a/Code/Form1.Designer.cs b/Code/Form1.Designer.cs
index 72dde4b..db48f59 100644
--- a/Code/Form1.Designer.cs
+++ b/Code/Form1.Designer.cs
@@ -32,7 +32,6 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.titleLabel = new System.Windows.Forms.Label();
this.tilesize = new System.Windows.Forms.ComboBox();
- this.tileSizeInfoLabel = new System.Windows.Forms.Label();
this.aiCombox = new System.Windows.Forms.ComboBox();
this.label13 = new System.Windows.Forms.Label();
this.outModeCombox = new System.Windows.Forms.ComboBox();
@@ -95,6 +94,15 @@
this.longProgBar = new HTAlt.WinForms.HTProgressBar();
this.cancelBtn = new System.Windows.Forms.Button();
this.mainTabControl = new HTAlt.WinForms.HTTabControl();
+ this.welcomeTab = new System.Windows.Forms.TabPage();
+ this.label22 = new System.Windows.Forms.Label();
+ this.panel8 = new System.Windows.Forms.Panel();
+ this.patronsLabel = new System.Windows.Forms.Label();
+ this.label21 = new System.Windows.Forms.Label();
+ this.panel6 = new System.Windows.Forms.Panel();
+ this.newsLabel = new System.Windows.Forms.Label();
+ this.label15 = new System.Windows.Forms.Label();
+ this.label11 = new System.Windows.Forms.Label();
this.interpOptsTab = new System.Windows.Forms.TabPage();
this.tilesizeNotAvailLabel = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
@@ -115,6 +123,9 @@
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.info1)).BeginInit();
this.mainTabControl.SuspendLayout();
+ this.welcomeTab.SuspendLayout();
+ this.panel8.SuspendLayout();
+ this.panel6.SuspendLayout();
this.interpOptsTab.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.videoUtilsTab.SuspendLayout();
@@ -156,18 +167,6 @@
this.tilesize.TabIndex = 25;
this.tilesize.SelectedIndexChanged += new System.EventHandler(this.tilesize_SelectedIndexChanged);
//
- // tileSizeInfoLabel
- //
- this.tileSizeInfoLabel.AutoSize = true;
- this.tileSizeInfoLabel.ForeColor = System.Drawing.Color.Silver;
- this.tileSizeInfoLabel.Location = new System.Drawing.Point(532, 135);
- this.tileSizeInfoLabel.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0);
- this.tileSizeInfoLabel.Name = "tileSizeInfoLabel";
- this.tileSizeInfoLabel.Size = new System.Drawing.Size(327, 15);
- this.tileSizeInfoLabel.TabIndex = 24;
- this.tileSizeInfoLabel.Text = "Note: You can use much higher values with CAIN than DAIN.";
- this.tileSizeInfoLabel.Visible = false;
- //
// aiCombox
//
this.aiCombox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
@@ -637,6 +636,7 @@
// logBox
//
this.logBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.logBox.Cursor = System.Windows.Forms.Cursors.Arrow;
this.logBox.ForeColor = System.Drawing.Color.White;
this.logBox.Location = new System.Drawing.Point(221, 357);
this.logBox.MinimumSize = new System.Drawing.Size(4, 21);
@@ -928,6 +928,7 @@
this.mainTabControl.AllowDrop = true;
this.mainTabControl.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(48)))));
this.mainTabControl.BorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(122)))), ((int)(((byte)(204)))));
+ this.mainTabControl.Controls.Add(this.welcomeTab);
this.mainTabControl.Controls.Add(this.interpOptsTab);
this.mainTabControl.Controls.Add(this.videoUtilsTab);
this.mainTabControl.Controls.Add(this.previewTab);
@@ -936,7 +937,7 @@
this.mainTabControl.DisableDragging = true;
this.mainTabControl.Font = new System.Drawing.Font("Segoe UI", 9F);
this.mainTabControl.HoverTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(82)))), ((int)(((byte)(176)))), ((int)(((byte)(239)))));
- this.mainTabControl.HoverTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(151)))), ((int)(((byte)(234)))));
+ this.mainTabControl.HoverTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70)))));
this.mainTabControl.HoverUnselectedTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(85)))), ((int)(((byte)(85)))), ((int)(((byte)(85)))));
this.mainTabControl.Location = new System.Drawing.Point(13, 62);
this.mainTabControl.Name = "mainTabControl";
@@ -952,33 +953,133 @@
this.mainTabControl.UnselectedTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70)))));
this.mainTabControl.UpDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70)))));
this.mainTabControl.UpDownTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(112)))));
+ this.mainTabControl.SelectedIndexChanged += new System.EventHandler(this.mainTabControl_SelectedIndexChanged);
this.mainTabControl.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
this.mainTabControl.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
//
+ // welcomeTab
+ //
+ this.welcomeTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
+ this.welcomeTab.Controls.Add(this.label22);
+ this.welcomeTab.Controls.Add(this.panel8);
+ this.welcomeTab.Controls.Add(this.panel6);
+ this.welcomeTab.Controls.Add(this.label11);
+ this.welcomeTab.Location = new System.Drawing.Point(4, 27);
+ this.welcomeTab.Name = "welcomeTab";
+ this.welcomeTab.Padding = new System.Windows.Forms.Padding(3);
+ this.welcomeTab.Size = new System.Drawing.Size(901, 258);
+ this.welcomeTab.TabIndex = 4;
+ this.welcomeTab.Text = "Welcome";
+ //
+ // label22
+ //
+ this.label22.AutoSize = true;
+ this.label22.Font = new System.Drawing.Font("Yu Gothic UI", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label22.ForeColor = System.Drawing.Color.Gray;
+ this.label22.Location = new System.Drawing.Point(142, 3);
+ this.label22.Margin = new System.Windows.Forms.Padding(3, 0, 3, 10);
+ this.label22.Name = "label22";
+ this.label22.Size = new System.Drawing.Size(478, 40);
+ this.label22.TabIndex = 5;
+ this.label22.Text = "Click The Interpolation Tab To Begin.";
+ //
+ // panel8
+ //
+ this.panel8.AutoScroll = true;
+ this.panel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.panel8.Controls.Add(this.patronsLabel);
+ this.panel8.Controls.Add(this.label21);
+ this.panel8.Location = new System.Drawing.Point(593, 57);
+ this.panel8.Margin = new System.Windows.Forms.Padding(5);
+ this.panel8.Name = "panel8";
+ this.panel8.Size = new System.Drawing.Size(300, 193);
+ this.panel8.TabIndex = 4;
+ //
+ // patronsLabel
+ //
+ this.patronsLabel.AutoSize = true;
+ this.patronsLabel.ForeColor = System.Drawing.Color.White;
+ this.patronsLabel.Location = new System.Drawing.Point(8, 31);
+ this.patronsLabel.Margin = new System.Windows.Forms.Padding(8, 8, 3, 0);
+ this.patronsLabel.Name = "patronsLabel";
+ this.patronsLabel.Size = new System.Drawing.Size(0, 15);
+ this.patronsLabel.TabIndex = 9;
+ //
+ // label21
+ //
+ this.label21.AutoSize = true;
+ this.label21.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label21.ForeColor = System.Drawing.Color.White;
+ this.label21.Location = new System.Drawing.Point(8, 8);
+ this.label21.Margin = new System.Windows.Forms.Padding(8, 8, 3, 0);
+ this.label21.Name = "label21";
+ this.label21.Size = new System.Drawing.Size(119, 15);
+ this.label21.TabIndex = 8;
+ this.label21.Text = "Patreon Supporters:";
+ //
+ // panel6
+ //
+ this.panel6.AutoScroll = true;
+ this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.panel6.Controls.Add(this.newsLabel);
+ this.panel6.Controls.Add(this.label15);
+ this.panel6.Location = new System.Drawing.Point(8, 57);
+ this.panel6.Margin = new System.Windows.Forms.Padding(5);
+ this.panel6.Name = "panel6";
+ this.panel6.Size = new System.Drawing.Size(575, 193);
+ this.panel6.TabIndex = 3;
+ //
+ // newsLabel
+ //
+ this.newsLabel.AutoSize = true;
+ this.newsLabel.ForeColor = System.Drawing.Color.White;
+ this.newsLabel.Location = new System.Drawing.Point(8, 31);
+ this.newsLabel.Margin = new System.Windows.Forms.Padding(8, 8, 3, 0);
+ this.newsLabel.Name = "newsLabel";
+ this.newsLabel.Size = new System.Drawing.Size(0, 15);
+ this.newsLabel.TabIndex = 8;
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label15.ForeColor = System.Drawing.Color.White;
+ this.label15.Location = new System.Drawing.Point(8, 8);
+ this.label15.Margin = new System.Windows.Forms.Padding(8, 8, 3, 0);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(41, 15);
+ this.label15.TabIndex = 7;
+ this.label15.Text = "News:";
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Font = new System.Drawing.Font("Yu Gothic UI", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label11.ForeColor = System.Drawing.Color.White;
+ this.label11.Location = new System.Drawing.Point(6, 3);
+ this.label11.Margin = new System.Windows.Forms.Padding(3, 0, 3, 10);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(143, 40);
+ this.label11.TabIndex = 1;
+ this.label11.Text = "Welcome!";
+ //
// interpOptsTab
//
this.interpOptsTab.AllowDrop = true;
this.interpOptsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.interpOptsTab.Controls.Add(this.tilesizeNotAvailLabel);
- this.interpOptsTab.Controls.Add(this.panel7);
this.interpOptsTab.Controls.Add(this.label1);
this.interpOptsTab.Controls.Add(this.browseOutBtn);
this.interpOptsTab.Controls.Add(this.browseInputFileBtn);
this.interpOptsTab.Controls.Add(this.browseInputBtn);
this.interpOptsTab.Controls.Add(this.label4);
- this.interpOptsTab.Controls.Add(this.pictureBox4);
this.interpOptsTab.Controls.Add(this.label2);
- this.interpOptsTab.Controls.Add(this.pictureBox3);
this.interpOptsTab.Controls.Add(this.label3);
- this.interpOptsTab.Controls.Add(this.pictureBox2);
this.interpOptsTab.Controls.Add(this.inputTbox);
- this.interpOptsTab.Controls.Add(this.pictureBox1);
this.interpOptsTab.Controls.Add(this.outputTbox);
- this.interpOptsTab.Controls.Add(this.info1);
this.interpOptsTab.Controls.Add(this.interpFactorCombox);
this.interpOptsTab.Controls.Add(this.tilesize);
this.interpOptsTab.Controls.Add(this.fpsInTbox);
- this.interpOptsTab.Controls.Add(this.tileSizeInfoLabel);
this.interpOptsTab.Controls.Add(this.fpsOutTbox);
this.interpOptsTab.Controls.Add(this.label5);
this.interpOptsTab.Controls.Add(this.aiCombox);
@@ -988,6 +1089,12 @@
this.interpOptsTab.Controls.Add(this.label8);
this.interpOptsTab.Controls.Add(this.label9);
this.interpOptsTab.Controls.Add(this.outModeCombox);
+ this.interpOptsTab.Controls.Add(this.panel7);
+ this.interpOptsTab.Controls.Add(this.pictureBox4);
+ this.interpOptsTab.Controls.Add(this.pictureBox3);
+ this.interpOptsTab.Controls.Add(this.pictureBox2);
+ this.interpOptsTab.Controls.Add(this.pictureBox1);
+ this.interpOptsTab.Controls.Add(this.info1);
this.interpOptsTab.Location = new System.Drawing.Point(4, 27);
this.interpOptsTab.Name = "interpOptsTab";
this.interpOptsTab.Padding = new System.Windows.Forms.Padding(3);
@@ -1217,6 +1324,12 @@
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.info1)).EndInit();
this.mainTabControl.ResumeLayout(false);
+ this.welcomeTab.ResumeLayout(false);
+ this.welcomeTab.PerformLayout();
+ this.panel8.ResumeLayout(false);
+ this.panel8.PerformLayout();
+ this.panel6.ResumeLayout(false);
+ this.panel6.PerformLayout();
this.interpOptsTab.ResumeLayout(false);
this.interpOptsTab.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
@@ -1258,7 +1371,6 @@
private System.Windows.Forms.Label statusLabel;
private System.Windows.Forms.ComboBox aiCombox;
private System.Windows.Forms.Label label13;
- private System.Windows.Forms.Label tileSizeInfoLabel;
private System.Windows.Forms.ComboBox tilesize;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Button debugExtractFramesBtn;
@@ -1311,6 +1423,15 @@
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel panel3;
private HTAlt.WinForms.HTButton updateBtn;
+ private System.Windows.Forms.TabPage welcomeTab;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.Panel panel6;
+ private System.Windows.Forms.Label label15;
+ private System.Windows.Forms.Panel panel8;
+ private System.Windows.Forms.Label patronsLabel;
+ private System.Windows.Forms.Label label21;
+ private System.Windows.Forms.Label newsLabel;
+ private System.Windows.Forms.Label label22;
}
}
diff --git a/Code/Form1.cs b/Code/Form1.cs
index 032d0fb..b27e8ad 100644
--- a/Code/Form1.cs
+++ b/Code/Form1.cs
@@ -53,6 +53,8 @@ namespace Flowframes
Setup.Init();
Initialized();
+ GetWebInfo.LoadNews(newsLabel);
+ GetWebInfo.LoadPatronList(patronsLabel);
Updater.AsyncUpdateCheck();
}
@@ -60,6 +62,17 @@ namespace Flowframes
public bool IsInFocus() { return (ActiveForm == this); }
+ public void SetTab (string tabName)
+ {
+ foreach(TabPage tab in mainTabControl.TabPages)
+ {
+ if (tab.Text.ToLower() == tabName.ToLower())
+ mainTabControl.SelectedTab = tab;
+ }
+ mainTabControl.Refresh();
+ mainTabControl.Update();
+ }
+
public BatchEntry GetBatchEntry()
{
return new BatchEntry(inputTbox.Text.Trim(), outputTbox.Text.Trim(), GetAi(), fpsInTbox.GetFloat(), interpFactorCombox.GetInt(), GetOutMode());
@@ -158,7 +171,7 @@ namespace Flowframes
public void runBtn_Click(object sender, EventArgs e)
{
if (!BatchProcessing.busy)
- mainTabControl.SelectedIndex = 0;
+ SetTab("interpolation");
if (fpsInTbox.Visible)
Interpolate.SetFps(fpsInTbox.GetFloat());
if (interpFactorCombox.Visible)
@@ -245,7 +258,6 @@ namespace Flowframes
private void aiCombox_SelectedIndexChanged(object sender, EventArgs e)
{
tilesize.Visible = GetAi().supportsTiling;
- tileSizeInfoLabel.Visible = tilesize.Visible;
tilesizeNotAvailLabel.Visible = !tilesize.Visible;
interpFactorCombox_SelectedIndexChanged(null, null);
if(GetAi().supportsTiling)
@@ -282,7 +294,7 @@ namespace Flowframes
private void Form1_DragDrop(object sender, DragEventArgs e)
{
if (Program.busy) return;
- mainTabControl.SelectedIndex = 0; // Select main tab
+ SetTab("interpolation");
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
inputTbox.Text = files[0];
Logger.Log("Selected video/directory: " + Path.GetFileName(files[0]));
@@ -311,7 +323,7 @@ namespace Flowframes
private void cancelBtn_Click(object sender, EventArgs e)
{
- mainTabControl.SelectedIndex = 0;
+ SetTab("interpolation");
Interpolate.Cancel();
}
@@ -368,5 +380,10 @@ namespace Flowframes
if (!initialized || !GetAi().supportsTiling) return;
Config.Set($"tilesize_{GetAi().aiName}", tilesize.GetInt().ToString());
}
+
+ private void mainTabControl_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ mainTabControl.Refresh();
+ }
}
}
diff --git a/Code/Form1.resx b/Code/Form1.resx
index 69f1b21..501f1a2 100644
--- a/Code/Form1.resx
+++ b/Code/Form1.resx
@@ -123,7 +123,8 @@
Based on:
- dain-ncnn-vulkan by nihui, originally based on DAIN (Depth-Aware Video Frame Interpolation) by baowenbo
- cain-ncnn-vulkan by nihui, originally based on and CAIN (Channel Attention Is All You Need for Video Frame Interpolation) by myungsub
-- RIFE by hzwer
+- RIFE by hzwer
+- rife-ncnn-vulkan by nihui
17, 17
diff --git a/Code/Forms/SettingsForm.Designer.cs b/Code/Forms/SettingsForm.Designer.cs
index 50a4cc8..9ad5112 100644
--- a/Code/Forms/SettingsForm.Designer.cs
+++ b/Code/Forms/SettingsForm.Designer.cs
@@ -69,6 +69,10 @@
this.enableAudio = new System.Windows.Forms.CheckBox();
this.label1 = new System.Windows.Forms.Label();
this.aiOptsPage = new Cyotek.Windows.Forms.TabListPage();
+ this.panel12 = new System.Windows.Forms.Panel();
+ this.label44 = new System.Windows.Forms.Label();
+ this.ncnnThreads = new System.Windows.Forms.ComboBox();
+ this.label43 = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.panel1 = new System.Windows.Forms.Panel();
this.torchGpus = new System.Windows.Forms.ComboBox();
@@ -108,6 +112,10 @@
this.label8 = new System.Windows.Forms.Label();
this.minOutVidLength = new System.Windows.Forms.ComboBox();
this.debugTab = new Cyotek.Windows.Forms.TabListPage();
+ this.ffEncPreset = new System.Windows.Forms.ComboBox();
+ this.label47 = new System.Windows.Forms.Label();
+ this.label46 = new System.Windows.Forms.Label();
+ this.label45 = new System.Windows.Forms.Label();
this.label41 = new System.Windows.Forms.Label();
this.ffprobeCountFrames = new System.Windows.Forms.CheckBox();
this.label40 = new System.Windows.Forms.Label();
@@ -122,14 +130,6 @@
this.cmdDebugMode = new System.Windows.Forms.ComboBox();
this.titleLabel = new System.Windows.Forms.Label();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.label43 = new System.Windows.Forms.Label();
- this.ncnnThreads = new System.Windows.Forms.ComboBox();
- this.label44 = new System.Windows.Forms.Label();
- this.panel12 = new System.Windows.Forms.Panel();
- this.label45 = new System.Windows.Forms.Label();
- this.label46 = new System.Windows.Forms.Label();
- this.label47 = new System.Windows.Forms.Label();
- this.ffEncPreset = new System.Windows.Forms.ComboBox();
this.settingsTabList.SuspendLayout();
this.generalTab.SuspendLayout();
this.tabListPage2.SuspendLayout();
@@ -204,15 +204,12 @@
// tempDirBrowseBtn
//
this.tempDirBrowseBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.tempDirBrowseBtn.FlatAppearance.BorderSize = 0;
- this.tempDirBrowseBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.tempDirBrowseBtn.ForeColor = System.Drawing.Color.White;
this.tempDirBrowseBtn.Location = new System.Drawing.Point(709, 66);
this.tempDirBrowseBtn.Name = "tempDirBrowseBtn";
this.tempDirBrowseBtn.Size = new System.Drawing.Size(50, 23);
this.tempDirBrowseBtn.TabIndex = 70;
this.tempDirBrowseBtn.Text = "Browse";
- this.tempDirBrowseBtn.UseVisualStyleBackColor = false;
this.tempDirBrowseBtn.Click += new System.EventHandler(this.tempDirBrowseBtn_Click);
//
// tempDirCustom
@@ -627,6 +624,53 @@
this.aiOptsPage.Size = new System.Drawing.Size(762, 419);
this.aiOptsPage.Text = "AI Specific Settings";
//
+ // panel12
+ //
+ this.panel12.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
+ this.panel12.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ this.panel12.Location = new System.Drawing.Point(336, 187);
+ this.panel12.Name = "panel12";
+ this.panel12.Size = new System.Drawing.Size(21, 21);
+ this.panel12.TabIndex = 58;
+ this.toolTip1.SetToolTip(this.panel12, "Allows custom input.");
+ //
+ // label44
+ //
+ this.label44.AutoSize = true;
+ this.label44.ForeColor = System.Drawing.Color.Silver;
+ this.label44.Location = new System.Drawing.Point(370, 191);
+ this.label44.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
+ this.label44.Name = "label44";
+ this.label44.Size = new System.Drawing.Size(358, 13);
+ this.label44.TabIndex = 60;
+ this.label44.Text = "Use 1 for small videos, 2 for >1080p, higher values might cause slowdown!";
+ //
+ // ncnnThreads
+ //
+ this.ncnnThreads.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.ncnnThreads.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.ncnnThreads.ForeColor = System.Drawing.Color.White;
+ this.ncnnThreads.FormattingEnabled = true;
+ this.ncnnThreads.Items.AddRange(new object[] {
+ "1",
+ "2",
+ "3",
+ "4"});
+ this.ncnnThreads.Location = new System.Drawing.Point(280, 187);
+ this.ncnnThreads.Name = "ncnnThreads";
+ this.ncnnThreads.Size = new System.Drawing.Size(50, 21);
+ this.ncnnThreads.TabIndex = 59;
+ //
+ // label43
+ //
+ this.label43.AutoSize = true;
+ this.label43.Location = new System.Drawing.Point(10, 190);
+ this.label43.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
+ this.label43.Name = "label43";
+ this.label43.Size = new System.Drawing.Size(135, 13);
+ this.label43.TabIndex = 58;
+ this.label43.Text = "NCNN Processing Threads";
+ //
// panel2
//
this.panel2.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
@@ -1122,11 +1166,63 @@
this.debugTab.Size = new System.Drawing.Size(762, 419);
this.debugTab.Text = "Debugging / Experimental";
//
+ // ffEncPreset
+ //
+ this.ffEncPreset.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.ffEncPreset.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.ffEncPreset.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.ffEncPreset.ForeColor = System.Drawing.Color.White;
+ this.ffEncPreset.FormattingEnabled = true;
+ this.ffEncPreset.Items.AddRange(new object[] {
+ "veryfast",
+ "faster",
+ "fast",
+ "medium",
+ "slow",
+ "slower",
+ "veryslow"});
+ this.ffEncPreset.Location = new System.Drawing.Point(280, 217);
+ this.ffEncPreset.Name = "ffEncPreset";
+ this.ffEncPreset.Size = new System.Drawing.Size(250, 21);
+ this.ffEncPreset.TabIndex = 78;
+ //
+ // label47
+ //
+ this.label47.AutoSize = true;
+ this.label47.Location = new System.Drawing.Point(10, 220);
+ this.label47.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
+ this.label47.Name = "label47";
+ this.label47.Size = new System.Drawing.Size(85, 13);
+ this.label47.TabIndex = 77;
+ this.label47.Text = "Encoding Preset";
+ //
+ // label46
+ //
+ this.label46.AutoSize = true;
+ this.label46.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label46.Location = new System.Drawing.Point(10, 160);
+ this.label46.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
+ this.label46.Name = "label46";
+ this.label46.Size = new System.Drawing.Size(65, 16);
+ this.label46.TabIndex = 76;
+ this.label46.Text = "FFmpeg";
+ //
+ // label45
+ //
+ this.label45.AutoSize = true;
+ this.label45.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label45.Location = new System.Drawing.Point(10, 10);
+ this.label45.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
+ this.label45.Name = "label45";
+ this.label45.Size = new System.Drawing.Size(63, 16);
+ this.label45.TabIndex = 75;
+ this.label45.Text = "General";
+ //
// label41
//
this.label41.AutoSize = true;
this.label41.ForeColor = System.Drawing.Color.Silver;
- this.label41.Location = new System.Drawing.Point(308, 280);
+ this.label41.Location = new System.Drawing.Point(308, 250);
this.label41.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label41.Name = "label41";
this.label41.Size = new System.Drawing.Size(423, 13);
@@ -1137,7 +1233,7 @@
// ffprobeCountFrames
//
this.ffprobeCountFrames.AutoSize = true;
- this.ffprobeCountFrames.Location = new System.Drawing.Point(280, 280);
+ this.ffprobeCountFrames.Location = new System.Drawing.Point(280, 250);
this.ffprobeCountFrames.Name = "ffprobeCountFrames";
this.ffprobeCountFrames.Size = new System.Drawing.Size(15, 14);
this.ffprobeCountFrames.TabIndex = 73;
@@ -1146,7 +1242,7 @@
// label40
//
this.label40.AutoSize = true;
- this.label40.Location = new System.Drawing.Point(10, 280);
+ this.label40.Location = new System.Drawing.Point(10, 250);
this.label40.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label40.Name = "label40";
this.label40.Size = new System.Drawing.Size(162, 13);
@@ -1157,7 +1253,7 @@
//
this.label38.AutoSize = true;
this.label38.ForeColor = System.Drawing.Color.Silver;
- this.label38.Location = new System.Drawing.Point(570, 224);
+ this.label38.Location = new System.Drawing.Point(570, 194);
this.label38.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label38.Name = "label38";
this.label38.Size = new System.Drawing.Size(131, 13);
@@ -1168,7 +1264,7 @@
//
this.panel11.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
this.panel11.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel11.Location = new System.Drawing.Point(536, 220);
+ this.panel11.Location = new System.Drawing.Point(536, 190);
this.panel11.Name = "panel11";
this.panel11.Size = new System.Drawing.Size(21, 21);
this.panel11.TabIndex = 61;
@@ -1178,7 +1274,7 @@
//
this.ffEncThreads.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.ffEncThreads.ForeColor = System.Drawing.Color.White;
- this.ffEncThreads.Location = new System.Drawing.Point(280, 220);
+ this.ffEncThreads.Location = new System.Drawing.Point(280, 190);
this.ffEncThreads.MinimumSize = new System.Drawing.Size(4, 21);
this.ffEncThreads.Name = "ffEncThreads";
this.ffEncThreads.Size = new System.Drawing.Size(250, 21);
@@ -1187,7 +1283,7 @@
// label37
//
this.label37.AutoSize = true;
- this.label37.Location = new System.Drawing.Point(10, 220);
+ this.label37.Location = new System.Drawing.Point(10, 190);
this.label37.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label37.Name = "label37";
this.label37.Size = new System.Drawing.Size(204, 13);
@@ -1271,105 +1367,6 @@
this.titleLabel.TabIndex = 1;
this.titleLabel.Text = "Settings";
//
- // label43
- //
- this.label43.AutoSize = true;
- this.label43.Location = new System.Drawing.Point(10, 190);
- this.label43.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label43.Name = "label43";
- this.label43.Size = new System.Drawing.Size(135, 13);
- this.label43.TabIndex = 58;
- this.label43.Text = "NCNN Processing Threads";
- //
- // ncnnThreads
- //
- this.ncnnThreads.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.ncnnThreads.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.ncnnThreads.ForeColor = System.Drawing.Color.White;
- this.ncnnThreads.FormattingEnabled = true;
- this.ncnnThreads.Items.AddRange(new object[] {
- "1",
- "2",
- "3",
- "4"});
- this.ncnnThreads.Location = new System.Drawing.Point(280, 187);
- this.ncnnThreads.Name = "ncnnThreads";
- this.ncnnThreads.Size = new System.Drawing.Size(50, 21);
- this.ncnnThreads.TabIndex = 59;
- //
- // label44
- //
- this.label44.AutoSize = true;
- this.label44.ForeColor = System.Drawing.Color.Silver;
- this.label44.Location = new System.Drawing.Point(370, 191);
- this.label44.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label44.Name = "label44";
- this.label44.Size = new System.Drawing.Size(358, 13);
- this.label44.TabIndex = 60;
- this.label44.Text = "Use 1 for small videos, 2 for >1080p, higher values might cause slowdown!";
- //
- // panel12
- //
- this.panel12.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
- this.panel12.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel12.Location = new System.Drawing.Point(336, 187);
- this.panel12.Name = "panel12";
- this.panel12.Size = new System.Drawing.Size(21, 21);
- this.panel12.TabIndex = 58;
- this.toolTip1.SetToolTip(this.panel12, "Allows custom input.");
- //
- // label45
- //
- this.label45.AutoSize = true;
- this.label45.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label45.Location = new System.Drawing.Point(10, 10);
- this.label45.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label45.Name = "label45";
- this.label45.Size = new System.Drawing.Size(63, 16);
- this.label45.TabIndex = 75;
- this.label45.Text = "General";
- //
- // label46
- //
- this.label46.AutoSize = true;
- this.label46.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label46.Location = new System.Drawing.Point(10, 190);
- this.label46.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label46.Name = "label46";
- this.label46.Size = new System.Drawing.Size(65, 16);
- this.label46.TabIndex = 76;
- this.label46.Text = "FFmpeg";
- //
- // label47
- //
- this.label47.AutoSize = true;
- this.label47.Location = new System.Drawing.Point(10, 250);
- this.label47.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label47.Name = "label47";
- this.label47.Size = new System.Drawing.Size(85, 13);
- this.label47.TabIndex = 77;
- this.label47.Text = "Encoding Preset";
- //
- // ffEncPreset
- //
- this.ffEncPreset.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.ffEncPreset.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.ffEncPreset.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.ffEncPreset.ForeColor = System.Drawing.Color.White;
- this.ffEncPreset.FormattingEnabled = true;
- this.ffEncPreset.Items.AddRange(new object[] {
- "veryfast",
- "faster",
- "fast",
- "medium",
- "slow",
- "slower",
- "veryslow"});
- this.ffEncPreset.Location = new System.Drawing.Point(280, 247);
- this.ffEncPreset.Name = "ffEncPreset";
- this.ffEncPreset.Size = new System.Drawing.Size(250, 21);
- this.ffEncPreset.TabIndex = 78;
- //
// SettingsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
diff --git a/Code/Forms/UpdaterForm.cs b/Code/Forms/UpdaterForm.cs
index 170d222..3bbdc81 100644
--- a/Code/Forms/UpdaterForm.cs
+++ b/Code/Forms/UpdaterForm.cs
@@ -32,8 +32,16 @@ namespace Flowframes.Forms
}
else
{
- updateBtn.Text = "Update To Latest Version!";
- statusLabel.Text = "Update Available!";
+ if(installed < latest)
+ {
+ updateBtn.Text = "Update To Latest Version!";
+ statusLabel.Text = "Update Available!";
+ }
+ else
+ {
+ updateBtn.Text = "Rollback To Public Version";
+ statusLabel.Text = "Using Newer Version Than Latest Public Release.";
+ }
}
updateBtn.Enabled = true;
diff --git a/Code/Main/BatchProcessing.cs b/Code/Main/BatchProcessing.cs
index eb76ecc..1a1e214 100644
--- a/Code/Main/BatchProcessing.cs
+++ b/Code/Main/BatchProcessing.cs
@@ -19,7 +19,7 @@ namespace Flowframes.Main
public static async void Start()
{
stopped = false;
- Program.mainForm.GetMainTabControl().SelectedIndex = 2;
+ Program.mainForm.SetTab("preview");
int initTaskCount = Program.batchQueue.Count;
for (int i = 0; i < initTaskCount; i++)
@@ -35,7 +35,7 @@ namespace Flowframes.Main
}
Logger.Log("[Queue] Finished queue processing.");
SetBusy(false);
- Program.mainForm.GetMainTabControl().SelectedIndex = 0;
+ Program.mainForm.SetTab("interpolation");
}
public static void Stop()
diff --git a/Code/Main/Interpolate.cs b/Code/Main/Interpolate.cs
index 6f20c9c..cf7138d 100644
--- a/Code/Main/Interpolate.cs
+++ b/Code/Main/Interpolate.cs
@@ -20,7 +20,7 @@ namespace Flowframes
{
public class Interpolate
{
- public enum OutMode { VidMp4, VidGif, ImgPng, ImgJpg }
+ public enum OutMode { VidMp4, VidGif, ImgPng }
public static string currentTempDir;
static string framesPath;
@@ -29,6 +29,7 @@ namespace Flowframes
public static float currentOutFps;
public static string lastInputPath;
+ public static AI lastAi;
public static bool canceled = false;
@@ -52,6 +53,7 @@ namespace Flowframes
if (!Utils.CheckDeleteOldTempFolder()) return; // Try to delete temp folder if an old one exists
if(!Utils.CheckPathValid(inPath)) return; // Check if input path/file is valid
Utils.PathAsciiCheck(inPath, outDir);
+ lastAi = ai;
Program.mainForm.SetStatus("Starting...");
Program.mainForm.SetWorking(true);
await Task.Delay(10);
@@ -131,8 +133,6 @@ namespace Flowframes
if (Config.GetInt("dedupMode") == 1)
await MagickDedupe.Run(framesPath);
- //await Task.Delay(10000);
-
if (Config.GetInt("timingMode") == 1 && Config.GetInt("dedupMode") != 0)
await VfrDedupe.CreateTimecodeFile(framesPath, Config.GetBool("enableLoop"), interpFactor, firstFrameFix);
@@ -140,8 +140,11 @@ namespace Flowframes
MagickDedupe.RenameCounterDir(framesPath, "png");
MagickDedupe.ZeroPadDir(framesPath, "png", 8);
- if (firstFrameFix)
- IOUtils.TryCopy(new DirectoryInfo(framesPath).GetFiles("*.png")[0].FullName, Path.Combine(framesPath, "00000000.png"), true);
+ if (lastAi.aiName == Networks.rifeCuda.aiName)
+ {
+ bool s = IOUtils.TryCopy(new DirectoryInfo(framesPath).GetFiles("*.png")[0].FullName, Path.Combine(framesPath, "00000000.png"), true);
+ Logger.Log("FirstFrameFix TryCopy Success:" + s, true);
+ }
}
static async Task RunAi(string outpath, int targetFrames, int tilesize, AI ai)
@@ -170,7 +173,7 @@ namespace Flowframes
if (AiProcess.processTime.IsRunning && Directory.Exists(outdir))
{
if (firstProgUpd && Program.mainForm.IsInFocus())
- Program.mainForm.GetMainTabControl().SelectedIndex = 2;
+ Program.mainForm.SetTab("preview");
firstProgUpd = false;
string[] frames = Directory.GetFiles(outdir, $"*.{Utils.lastExt}");
if (frames.Length > 1)
@@ -197,7 +200,7 @@ namespace Flowframes
if(!Config.GetBool("keepTempFolder"))
IOUtils.TryDeleteIfExists(currentTempDir);
Program.mainForm.SetWorking(false);
- Program.mainForm.mainTabControl.SelectedIndex = 0;
+ Program.mainForm.SetTab("interpolation");
Logger.Log("Canceled interpolation.");
if (!string.IsNullOrWhiteSpace(reason) && !noMsgBox)
Utils.ShowMessage($"Canceled:\n\n{reason}");
diff --git a/Code/OS/AiProcess.cs b/Code/OS/AiProcess.cs
index afecab6..6f4dfde 100644
--- a/Code/OS/AiProcess.cs
+++ b/Code/OS/AiProcess.cs
@@ -22,10 +22,9 @@ namespace Flowframes
public static int lastStartupTimeMs = 1000;
- static void Init (Process proc, int startupTimeMs, string defaultExt = "png", bool needsFirstFrameFix = false)
+ static void Init (Process proc, int startupTimeMs, string defaultExt = "png")
{
lastStartupTimeMs = startupTimeMs;
- Interpolate.firstFrameFix = needsFirstFrameFix;
InterpolateUtils.lastExt = defaultExt;
if (Config.GetBool("jpegInterps")) InterpolateUtils.lastExt = "jpg";
processTime.Restart();
@@ -134,8 +133,7 @@ namespace Flowframes
string rifeDir = Path.Combine(Paths.GetPkgPath(), Path.GetFileNameWithoutExtension(Packages.rifeCuda.fileName));
Process rifePy = OSUtils.NewProcess(!OSUtils.ShowHiddenCmd());
- Logger.Log("HIDDEN: " + !OSUtils.ShowHiddenCmd());
- Init(rifePy, 3000, "png", true);
+ Init(rifePy, 3000, "png");
string args = $" --input {framesPath.Wrap()} --times {(int)Math.Log(interpFactor, 2)}";
rifePy.StartInfo.Arguments = $"{OSUtils.GetHiddenCmdArg()} cd /D {rifeDir.Wrap()} & " +
$"set CUDA_VISIBLE_DEVICES={Config.Get("torchGpus")} & {Python.GetPyCmd()} {script} {args} --imgformat {InterpolateUtils.lastExt}";
diff --git a/Code/OS/Updater.cs b/Code/OS/Updater.cs
index 26bef09..52405cd 100644
--- a/Code/OS/Updater.cs
+++ b/Code/OS/Updater.cs
@@ -82,7 +82,7 @@ namespace Flowframes.OS
int latest = latestVer.GetInt();
int installed = GetInstalledVer();
- if (installed != latest)
+ if (installed < latest)
Logger.Log("An update for Flowframes is available! Download it using the Updater.");
else
Logger.Log("Flowframes is up to date.");
diff --git a/Code/Program.cs b/Code/Program.cs
index 8541d73..b89dd6d 100644
--- a/Code/Program.cs
+++ b/Code/Program.cs
@@ -12,7 +12,7 @@ namespace Flowframes
{
static class Program
{
- public const int version = 15;
+ public const int version = 16;
public static Form1 mainForm;
diff --git a/Code/Properties/Resources.Designer.cs b/Code/Properties/Resources.Designer.cs
index ed254c2..f72b81d 100644
--- a/Code/Properties/Resources.Designer.cs
+++ b/Code/Properties/Resources.Designer.cs
@@ -170,6 +170,16 @@ namespace Flowframes.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap flowframesIcoNew_512px {
+ get {
+ object obj = ResourceManager.GetObject("flowframesIcoNew_512px", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
diff --git a/Code/Properties/Resources.resx b/Code/Properties/Resources.resx
index 6a6d8a1..739a066 100644
--- a/Code/Properties/Resources.resx
+++ b/Code/Properties/Resources.resx
@@ -121,9 +121,6 @@
..\Resources\baseline_image_white_48dp-4x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\baseline_image_white_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\baseline_queue_white_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -139,6 +136,9 @@
..\Resources\baseline_system_update_alt_white_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\patreon256px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Resources\questmark-72px-bordeer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -157,8 +157,8 @@
..\Resources\separatorTest1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\patreon256px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\baseline_image_white_48dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\baseline_create_white_18dp-semiTransparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -169,4 +169,7 @@
..\Resources\baseline_image_white_48dp-4x-25pcAlpha.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\flowframesIcoNew-512px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/Code/Resources/flowframesIcoNew-512px.png b/Code/Resources/flowframesIcoNew-512px.png
new file mode 100644
index 0000000..1e78c39
Binary files /dev/null and b/Code/Resources/flowframesIcoNew-512px.png differ
diff --git a/Code/Resources/flowframesIcoNew.png b/Code/Resources/flowframesIcoNew.png
new file mode 100644
index 0000000..2d8579a
Binary files /dev/null and b/Code/Resources/flowframesIcoNew.png differ
diff --git a/Code/UI/GetWebInfo.cs b/Code/UI/GetWebInfo.cs
new file mode 100644
index 0000000..5c35d4f
--- /dev/null
+++ b/Code/UI/GetWebInfo.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Flowframes.UI
+{
+ class GetWebInfo
+ {
+ public static async Task LoadNews (Label newsLabel)
+ {
+ string url = $"https://dl.nmkd.de/flowframes/changelog.txt";
+ var client = new WebClient();
+ var str = await client.DownloadStringTaskAsync(new Uri(url));
+ newsLabel.Text = str;
+ }
+
+ public static async Task LoadPatronList(Label patronsLabel)
+ {
+ string url = $"https://dl.nmkd.de/flowframes/patreon.txt";
+ var client = new WebClient();
+ var str = await client.DownloadStringTaskAsync(new Uri(url));
+ patronsLabel.Text = str;
+ }
+ }
+}
diff --git a/Code/UI/UtilsTab.cs b/Code/UI/UtilsTab.cs
index 4a901b5..e3bab53 100644
--- a/Code/UI/UtilsTab.cs
+++ b/Code/UI/UtilsTab.cs
@@ -19,7 +19,7 @@ namespace Flowframes.UI
{
string outPath = Path.ChangeExtension(videoPath, null) + "-extracted";
Program.mainForm.SetWorking(true);
- await FFmpegCommands.VideoToFrames(videoPath, Path.Combine(outPath, "frames"), false, false);
+ await FFmpegCommands.VideoToFrames(videoPath, Path.Combine(outPath, "frames"), false, false, false);
File.WriteAllText(Path.Combine(outPath, "fps.ini"), Interpolate.currentInFps.ToString());
if (withAudio)
await FFmpegCommands.ExtractAudio(videoPath, Path.Combine(outPath, "audio"));