diff --git a/Changelog.md b/Changelog.md index 5bea71cd..359beba9 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,25 @@ -Next Release +2.2.0 (2021-03-??) ========================= +- [X] Might break settings from previous STABLE version, so starting with new settings is recommended +- [X] Might break templates and jobs from previous STABLE version +- [X] Changed menus from previous STABLE versions that need a menu reset, manual setting or global settings reset in order to see them +- Start of new versioning (no beta versions anymore, but stripped DEV versions) +- Check for updates adjusted (Dendraspis) +- MTN Thumbnailer description adjusted (JJKylee) +- JPSDR 3.2.5 (Clang AVX version) + + +2.1.9.0 Beta (2021-03-21) +========================= + +- [X] Might break settings from previous version, so starting with new settings is recommended +- [X] Might break templates and jobs from previous version +- [X] Changed menus that need a menu reset, manual setting or global settings reset in order to see them +- Since v2.1.8.5 StaxRip uses the SI prefix for sizes (Base 10: `1 MB = 1000 KB`) + Now it is possible to switch (back) to IEC prefix (Base 2: `1 MiB = 1024 KiB`) in the settings + *Please note, that the target size menu must be resetted or adjusted by hand after a change!* (Dendraspis, 44vince44) +- Set "Dark | Blue" as default theme (Dendraspis) - CheckBox appearance optimized (Dendraspis) - CodeEditor does not join "Cutting" filter (Dendraspis) - Block size for Compressibility Check can be set in seconds (Dendraspis, [#547](/../../issues/547)) @@ -9,29 +28,37 @@ Next Release - Extended option descrption for 'Temp Files Folder' if Auto-Deletion is enabled (Dendraspis, [#542](/../../issues/542)) - Progress Reformatting is a global option like Output Highlighting (Dendraspis) - Improved usability for subtitle options (stax76, [#577](/../../issues/577)) -- Since v2.1.8.5 StaxRip uses the SI prefix for sizes (Base 10: `1 MB = 1000 KB`) - Now it is possible to switch (back) to IEC prefix (Base 2: `1 MiB = 1024 KiB`) - *Please note, that the target size menu must be resetted or adjusted by hand after a change!* (Dendraspis) - Show target size label including size unit (Dendraspis, VEGAX265, [#580](/../../issues/580)) -- Set "Dark | Blue" as default theme (Dendraspis) - Theme "Default" is renamed to "System Colors" (Dendraspis) - Priority for current selected process can be set via menu on Processing window (Dendraspis) - Multiple theme related adjustments (Dendraspis, stax76) - New shortcuts for ***O**utput Highlighting* and ***P**rogress Reformatting* on Processing window (Dendraspis) - New shortcuts for existing actions on Jobs window (stax76) +- Fix x265 --tskip default value for Placebo preset (tkozybski, Dendraspis, [#600](/../../issues/600)) - Fix x265 Slower preset default values (tkozybski) - Fix x265 params --atc-sei and --pic-struct wrong parameter type (Dendraspis, [#593](/../../issues/593)) +- x264 default CRF value set while setting initial value to 20 (Dendraspis, [#594](/../../issues/594)) +- x264 fix UltraFast preset value sync (Dendraspis, [#594](/../../issues/594)) +- Fix NVEnc VBR Quality value localization (Dendraspis, [#604](/../../issues/604)) +- Fix NVEnc VBR Quality applies even it's disabled (Dendraspis, [#605](/../../issues/605)) - Removal of Menu Styles (Dendraspis, [#589](/../../issues/589)) - In quality mode main dialog shows count and type of active subtitles (stax76) - Main dialog and code editor show script info with F2 key and - advanced script info with Ctrl+F2, requires menus to be reset manually + advanced script info with Ctrl+F2, requires menus to be reset manually (stax76) - New setting to customize the code and console font (stax76) -- x264 default CRF value set while setting initial value to 20 (Dendraspis, [#594](/../../issues/594)) -- x264 fix UltraFast preset value sync (Dendraspis, [#594](/../../issues/594)) - Video encoder context console help was fixed and improved (stax76, [#595](/../../issues/595)) -- Fix x265 --tskip default value for Placebo preset (tkozybski, Dendraspis, [#600](/../../issues/600)) -- Fix NVEnc VBR Quality value localization (Dendraspis, [#604](/../../issues/604)) -- Fix NVEnc VBR Quality applies even it's disabled (Dendraspis, [#605](/../../issues/605)) +- Fix audio bitrate calculation for calculation of video bitrate (Dendraspis, 44vince44, [#608](/../../issues/608)) +- When toggling size prefix target size/bitrate are refreshed (Dendraspis) +- AddGrainC v1.8.3.0 +- AnimeIVTC v2.34 2020-12-19 mod +- AVSMeter v3.0.8.0 +- chapterEditor v1.27 +- CropResize 2021-02-01 +- MediaInfo.NET v7.0.0.0 +- MP4Box v1.1.0 DEV rev589 gcc10.2.0 Patman +- MTN Thumbnailer v3.4 +- SangNom2 v0.6.0 +- xy-VSFilter v3.2.0.804 2.1.8.5 Beta (2021-03-09) diff --git a/README.md b/README.md index d847b3da..13a7c79d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ It executes and controls console apps like x265, mkvmerge and ffmpeg and uses th ***StaxRip is no One-Click-Encoder!*** -Due to its possibilities, StaxRip forces you to know what you want to achieve and how to set up the options. +Due to its possibilities, StaxRip requires you to know what you want to achieve and how to set up the options. Especially at the beginning you have to learn the settings and maybe do some tests to learn how StaxRip works and what is possible. That being said, StaxRip also offers you an assistent, that takes care of your settings and changes. When you struggle, there are multiple ways to get help from the community. @@ -29,9 +29,9 @@ You can find various informations and instructions on [Wiki](https://github.com/ # Download -### **Stable** +### **Stable and Public Beta** - [Releases](https://github.com/staxrip/staxrip/releases) -### **Beta** +### **Older Beta** - [DropBox](https://www.dropbox.com/sh/4ctl2y928xkak4f/AAADEZj_hFpGQaNOdd3yqcAHa?dl=0) - [OneDrive](https://1drv.ms/u/s!ArwKS_ZUR01g0kH4d4eT_6a3GaKe?e=qbOfGS) diff --git a/Source/Encoding/NVEnc.vb b/Source/Encoding/NVEnc.vb index 935436c5..01247301 100644 --- a/Source/Encoding/NVEnc.vb +++ b/Source/Encoding/NVEnc.vb @@ -255,7 +255,7 @@ Public Class NVEnc .Switch = "--vbr-quality", .Text = "VBR Quality", .Config = {0, 51, 1, 1}, - .VisibleFunc = Function() Mode.Value = 3 OrElse Mode.Value = 4, + .VisibleFunc = Function() (Mode.Value = 3 OrElse Mode.Value = 4) AndAlso ConstantQualityMode.Value, .ArgsFunc = Function() If ConstantQualityMode.Value AndAlso VbrQuality.Value <> VbrQuality.DefaultValue Then @@ -456,10 +456,10 @@ Public Class NVEnc New NumParam With {.Switch = "--qp-min", .Text = "Minimum QP", .Config = {0, Integer.MaxValue, 1}}, New NumParam With {.Switch = "--max-bitrate", .Text = "Max Bitrate", .Init = 17500, .Config = {0, Integer.MaxValue, 1}}, New NumParam With {.Switch = "--vbv-bufsize", .Text = "VBV Bufsize", .Config = {0, Integer.MaxValue, 1}}, - New NumParam With {.Switch = "--aq-strength", .Text = "AQ Strength", .Config = {0, 15}, .VisibleFunc = Function() AQ.Value}, - VbrQuality, ConstantQualityMode, + VbrQuality, AQ, + New NumParam With {.Switch = "--aq-strength", .Text = "AQ Strength", .Config = {0, 15}, .VisibleFunc = Function() AQ.Value}, New BoolParam With {.Switch = "--aq-temporal", .Text = "Adaptive Quantization (Temporal)"}, Lossless) Add("Slice Decision", diff --git a/Source/Forms/MainForm.vb b/Source/Forms/MainForm.vb index 976a38aa..08acf649 100644 --- a/Source/Forms/MainForm.vb +++ b/Source/Forms/MainForm.vb @@ -3522,8 +3522,8 @@ Public Class MainForm b.Field = NameOf(s.CheckForUpdates) b = ui.AddBool - b.Text = "Include beta versions for update check" - b.Field = NameOf(s.CheckForUpdatesBeta) + b.Text = "Include Dev builds for update check" + b.Field = NameOf(s.CheckForUpdatesDev) b = ui.AddBool b.Text = "Save projects automatically" @@ -3649,6 +3649,7 @@ Public Class MainForm b.SaveAction = Sub(value) s.BinaryPrefix = value UpdateTargetSizeLabel() + UpdateSizeOrBitrate() End Sub b = ui.AddBool() @@ -6349,7 +6350,7 @@ Public Class MainForm Refresh() ProcessCommandLine(Environment.GetCommandLineArgs) StaxRip.StaxRipUpdate.ShowUpdateQuestion() - StaxRip.StaxRipUpdate.CheckForUpdate(False, s.CheckForUpdatesBeta, Environment.Is64BitProcess) + StaxRip.StaxRipUpdate.CheckForUpdate(False, s.CheckForUpdatesDev, Environment.Is64BitProcess) g.RunTask(AddressOf g.LoadPowerShellScripts) End Sub diff --git a/Source/General/ApplicationSettings.vb b/Source/General/ApplicationSettings.vb index 0fed7e28..e1582665 100644 --- a/Source/General/ApplicationSettings.vb +++ b/Source/General/ApplicationSettings.vb @@ -14,7 +14,7 @@ Public Class ApplicationSettings Public AviSynthProfiles As List(Of FilterCategory) Public BinaryPrefix As Boolean = False Public CheckForUpdates As Boolean - Public CheckForUpdatesBeta As Boolean + Public CheckForUpdatesDev As Boolean Public CheckForUpdatesDismissed As String Public CheckForUpdatesLastRequest As DateTime Public CheckForUpdatesQuestion As Boolean diff --git a/Source/General/AudioProfile.vb b/Source/General/AudioProfile.vb index 7e227f85..166b5c82 100644 --- a/Source/General/AudioProfile.vb +++ b/Source/General/AudioProfile.vb @@ -748,7 +748,7 @@ Public Class GUIAudioProfile Params.Migrate() End Sub - Function GetBitrate() As Integer + Public Function GetBitrate() As Integer If Params.RateMode = AudioRateMode.VBR Then Select Case Params.Codec Case AudioCodec.AAC diff --git a/Source/General/General.vb b/Source/General/General.vb index f97d2f0c..46c61949 100644 --- a/Source/General/General.vb +++ b/Source/General/General.vb @@ -439,6 +439,7 @@ Public Class HelpDocument body { font-family: Tahoma, Geneva, sans-serif; + font-size: 90%; color:#DDDDDD; background-color:#323232; } @@ -702,7 +703,7 @@ table { IsClosed = True Writer.WriteRaw("

 

" + BR) - Writer.WriteRaw("
Copyright (C) 2002-" & DateTime.Now.Year & " StaxRip authors

") + Writer.WriteRaw("
Copyright (C) 2002-" & Date.Now.Year & " StaxRip Authors

") Writer.WriteEndElement() 'body Writer.WriteEndElement() 'html Writer.Close() diff --git a/Source/General/GlobalCommands.vb b/Source/General/GlobalCommands.vb index 95e9ec79..384fbb6b 100644 --- a/Source/General/GlobalCommands.vb +++ b/Source/General/GlobalCommands.vb @@ -13,7 +13,7 @@ Imports VB6 = Microsoft.VisualBasic Public Class GlobalCommands Sub CheckForUpdate() - StaxRipUpdate.CheckForUpdate(True, s.CheckForUpdatesBeta, Environment.Is64BitProcess) + StaxRipUpdate.CheckForUpdate(True, s.CheckForUpdatesDev, Environment.Is64BitProcess) End Sub @@ -272,26 +272,41 @@ Public Class GlobalCommands End Try End Sub - Function GetReleaseType() As String + Function GetApplicationDetails(Optional includeName As Boolean = True, Optional includeVersion As Boolean = True, Optional includeReleaseType As Boolean = True) As String + Dim sb = New StringBuilder() Dim version = Assembly.GetExecutingAssembly.GetName.Version - If version.MinorRevision <> 0 Then - Return "Beta" + If includeName Then sb.Append(" StaxRip") + If includeVersion Then + sb.Append($" v{version.Major}.{version.Minor}") + + If version.Build > 0 Then + sb.Append($".{version.Build}") + End If End If + If includeReleaseType Then + If version.Build > 0 Then + sb.Append(" DEV") + End If + End If + + Return sb.ToString.Trim() End Function - + Sub OpenHelpTopic( topic As String) + Description("Name of the help topic to be opened.")> topic As String) Dim form As New HelpForm() Select Case topic Case "info" - form.Doc.WriteStart("StaxRip " + Application.ProductVersion + " " + GetReleaseType()) - 'TODO: convert media wiki link to markdown link - form.Doc.WriteParagraph($"[file:///{Uri.EscapeDataString(Folder.Startup + "Authors.html")} StaxRip Authors]") + form.Doc.WriteStart(GetApplicationDetails()) + 'form.Doc.WriteParagraph($"[file:///{Uri.EscapeDataString(Folder.Startup + "Authors.html")} StaxRip Authors]") + form.Doc.Write("Active Authors", "stax76, Dendraspis, DJATOM, Patman, JKyle, 44vince44") + form.Doc.Write("Retired Authors", "Revan654, NikosD, ernst, Brother John, Freepik, ilko-k, nulledone, vanontom") + form.Doc.Writer.WriteRaw("
") Dim licensePath = Folder.Startup + "License.txt" diff --git a/Source/General/Misc.vb b/Source/General/Misc.vb index 0674b873..f649fd09 100644 --- a/Source/General/Misc.vb +++ b/Source/General/Misc.vb @@ -164,8 +164,8 @@ Public Class Calc Shared Function GetAudioBitrate() As Double Dim b0, b1 As Double - If p.Audio0.File <> "" Then b0 = p.Audio0.Bitrate - If p.Audio1.File <> "" Then b1 = p.Audio1.Bitrate + If p.Audio0.File <> "" Then b0 = If(TypeOf p.Audio0 Is GUIAudioProfile, DirectCast(p.Audio0, GUIAudioProfile).GetBitrate, p.Audio0.Bitrate) + If p.Audio1.File <> "" Then b1 = If(TypeOf p.Audio1 Is GUIAudioProfile, DirectCast(p.Audio1, GUIAudioProfile).GetBitrate, p.Audio1.Bitrate) Return b0 + b1 + p.AudioTracks.Sum(Function(arg) arg.Bitrate) End Function @@ -176,7 +176,7 @@ Public Class Calc Return 0 End If - Dim kBits = New FileInfo(path).Length * 8 / 1024 + Dim kBits = New FileInfo(path).Length * 8 / 1000 Return kBits / seconds Catch ex As Exception g.ShowException(ex) diff --git a/Source/General/Package.vb b/Source/General/Package.vb index c4eb530e..f1e76614 100644 --- a/Source/General/Package.vb +++ b/Source/General/Package.vb @@ -365,7 +365,7 @@ Public Class Package .Name = "mtn", .Filename = "mtn.exe", .Location = "Thumbnails\MTN", - .Description = "Movie thumbnailer saves thumbnails (screenshots) of movie or video files to jpeg files. StaxRip uses a custom built version with HEVC support added in and also includes the latest FFMPEG.", + .Description = "Movie thumbnailer saves thumbnails (screenshots) of movie or video files to jpeg files.", .WebURL = "https://github.com/Revan654/Movie-Thumbnailer-mtn", .HelpURL = "http://moviethumbnail.sourceforge.net/usage.en.html", .HelpSwitch = ""}) diff --git a/Source/General/StaxRipUpdate.vb b/Source/General/StaxRipUpdate.vb index 8ff26307..2cbecaa4 100644 --- a/Source/General/StaxRipUpdate.vb +++ b/Source/General/StaxRipUpdate.vb @@ -18,7 +18,7 @@ Public Class StaxRipUpdate Shared Async Sub CheckForUpdate( Optional force As Boolean = False, - Optional includeBeta As Boolean = False, + Optional includeDevBuilds As Boolean = False, Optional x64 As Boolean = True) Try @@ -26,67 +26,32 @@ Public Class StaxRipUpdate Exit Sub End If - If (DateTime.Now - s.CheckForUpdatesLastRequest).TotalHours >= 24 OrElse force Then + If (Date.Now - s.CheckForUpdatesLastRequest).TotalHours >= 24 OrElse force Then Dim changelogUrl = "https://raw.githubusercontent.com/staxrip/staxrip/master/Changelog.md" - Dim betaSourcesUrl = "https://github.com/staxrip/staxrip" - Dim dropboxUrl = "https://www.dropbox.com/sh/4ctl2y928xkak4f/AAADEZj_hFpGQaNOdd3yqcAHa?dl=0&lst=" - Dim stableUrl = "https://github.com/staxrip/staxrip/releases" + Dim releaseUrl = "https://github.com/staxrip/staxrip/releases" Dim currentVersion = Reflection.Assembly.GetEntryAssembly.GetName.Version - Dim latestVersions = New List(Of (Version As Version, Status As String, - SourceSite As String, DownloadUri As String, FileName As String)) + Dim latestVersions = New List(Of (Version As Version, ReleaseType As String, SourceSite As String, DownloadUri As String, FileName As String)) + Dim response = Await HttpClient.GetAsync(releaseUrl) + response.EnsureSuccessStatusCode() + Dim content = Await response.Content.ReadAsStringAsync() + Dim linkMatches = Regex.Matches(content, "(?<="")/staxrip/staxrip/releases/download/(\d+\.\d+\.\d+(?:\.\d+)?)/(StaxRip-v(\d+\.\d+\.\d+(?:\.\d+)?)[^""]*\.7z)(?="")") - Dim response = Await HttpClient.GetAsync(stableUrl) + For Each linkMatch As Match In linkMatches + Dim onlineVersion = Version.Parse(linkMatch.Groups(3).Value) - If response.IsSuccessStatusCode Then - Dim content = Await response.Content.ReadAsStringAsync() - Dim titleMatch = Regex.Match(content, "title=""(\d+\.\d+\.\d+\.\d+)""") - Dim onlineVersion = Version.Parse(titleMatch.Groups(1).Value) - Dim linkMatch = Regex.Match(content, "(https://[^""]*/([^""/]*StaxRip[^""?]*)[^""]*)\\""") + If onlineVersion <= currentVersion Then + Exit For + End If - latestVersions.Add((onlineVersion, "Stable", stableUrl, - linkMatch.Groups(1).Value, linkMatch.Groups(2).Value)) - - ElseIf Not includeBeta Then - response.EnsureSuccessStatusCode() - End If - - If includeBeta Then - Try - Dim dropboxResponse = Await HttpClient.GetAsync(dropboxUrl) - - If Not dropboxResponse.IsSuccessStatusCode Then - Dim betaSourcesResponse = Await HttpClient.GetAsync(betaSourcesUrl) - Dim betaSourcesContent = Await betaSourcesResponse.Content.ReadAsStringAsync() - Dim dropboxMatch = Regex.Match(betaSourcesContent, "(https://www\.dropbox\.com[^""]*)""") - - If dropboxMatch.Success Then - dropboxResponse = Await HttpClient.GetAsync(dropboxMatch.Groups(1).Value) - End If + If onlineVersion.Build > 0 Then + If includeDevBuilds Then + latestVersions.Add((onlineVersion, "DEV", releaseUrl, "https://github.com" + linkMatch.Groups(0).Value, linkMatch.Groups(2).Value)) End If - - dropboxResponse.EnsureSuccessStatusCode() - Dim dropboxContent = Await dropboxResponse.Content.ReadAsStringAsync() - Dim betaPattern = If(x64, "(https://[^""]*/([^""/]*StaxRip[^""/?]*x64[^""?]*)[^""]*)\\""", - "(https://[^""]*/([^""/]*StaxRip[^""/?]*x86[^""?]*)[^""]*)\\""") - Dim betaMatches = Regex.Matches(dropboxContent, betaPattern) - - If betaMatches.Count > 0 Then - Dim sortedMatches = New Match(betaMatches.Count - 1) {} - betaMatches.CopyTo(sortedMatches, 0) - sortedMatches.OrderBy(Function(x) Regex.Replace(x.Groups(2).Value, "\d+", "$&".PadLeft(11, "0"c))) - Dim lastMatch = sortedMatches.Last() - - Dim uri = lastMatch.Groups(1).Value.Replace("?dl=0", "?dl=1") - Dim filename = lastMatch.Groups(2).Value - Dim versionMatch = Regex.Match(filename, ".*(\d+\.\d+\.\d+\.\d+).*") - Dim betaOnlineVersion = Version.Parse(versionMatch.Groups(1).Value) - - latestVersions.Add((betaOnlineVersion, "Beta", stableUrl, uri, filename)) - End If - Catch - End Try - End If + Else + latestVersions.Add((onlineVersion, "Stable", releaseUrl, linkMatch.Groups(0).Value, linkMatch.Groups(2).Value)) + End If + Next If latestVersions.Count > 0 Then Dim latestVersion = latestVersions.OrderBy(Function(x) x.Version).Last() @@ -95,7 +60,7 @@ Public Class StaxRipUpdate Version.Parse(s.CheckForUpdatesDismissed) <> latestVersion.Version OrElse force) Then Using td As New TaskDialog(Of String) - td.MainInstruction = "A new " + latestVersion.Status + " version was found: " + latestVersion.Version.ToString() + td.MainInstruction = "A new " + latestVersion.ReleaseType + " version was found: " + latestVersion.Version.ToString() Dim changelogResponse = Await HttpClient.GetAsync(changelogUrl) @@ -140,7 +105,7 @@ Public Class StaxRipUpdate .FileName = latestVersion.FileName, .Filter = "7-zip archive (*.7z)|*.7z", .OverwritePrompt = True, - .Title = "Save new " + latestVersion.Status + " version as..." + .Title = "Save new " + latestVersion.ReleaseType + " version as..." } If saveFileDialog.ShowDialog() = DialogResult.OK Then diff --git a/Source/My Project/AssemblyInfo.vb b/Source/My Project/AssemblyInfo.vb index 819ae45e..409e232f 100644 --- a/Source/My Project/AssemblyInfo.vb +++ b/Source/My Project/AssemblyInfo.vb @@ -7,6 +7,6 @@ Imports System.Runtime.InteropServices - - + +