diff --git a/Encoding/VideoEncoder.vb b/Encoding/VideoEncoder.vb index 9b4e7956..c553324c 100644 --- a/Encoding/VideoEncoder.vb +++ b/Encoding/VideoEncoder.vb @@ -330,10 +330,7 @@ Public MustInherit Class BasicVideoEncoder For Each i In {"tune", "preset", "profile"} Dim match = Regex.Match(commandLine, "(.*)(--" + i + "\s\w+)(.*)") - - If match.Success Then - commandLine = match.Groups(2).Value + " " + match.Groups(1).Value + " " + match.Groups(3).Value - End If + If match.Success Then commandLine = match.Groups(2).Value + " " + match.Groups(1).Value + " " + match.Groups(3).Value Next Dim a = commandLine.SplitNoEmptyAndWhiteSpace(" ") diff --git a/Encoding/x265Enc.vb b/Encoding/x265Enc.vb index e2297291..ced62c55 100644 --- a/Encoding/x265Enc.vb +++ b/Encoding/x265Enc.vb @@ -820,7 +820,9 @@ Public Class x265Params constvbv) Add("Motion Search", SubME, [Me], MErange, MaxMerge, Weightp, Weightb, TemporalMVP, New BoolParam With {.Switch = "--analyze-src-pics", .NoSwitch = "--no-analyze-src-pics", .Text = "Analyze SRC Pics"}) - Add("Slice Decision", BAdapt, + Add("Slice Decision", + New OptionParam() With {.Switch = "--force-flush", .Text = "Force Flush", .Expand = True, .IntegerValue = True, .Options = {"Flush the encoder only when all the input pictures are over", "Flush all the frames even when the input is not over", "Flush the slicetype decided frames only"}}, + BAdapt, New OptionParam With {.Switch = "--ctu-info", .Text = "CTU Info", .Options = {"0", "1", "2", "4", "6"}}, BFrames, BFrameBias, RCLookahead, @@ -828,7 +830,8 @@ Public Class x265Params New NumParam() With {.Switch = "--lookahead-threads", .Text = "Lookahead Threads"}, Scenecut, New NumParam() With {.Switch = "--scenecut-bias", .Text = "Scenecut Bias", .Init = 5, .Config = {0, 100, 1, 1}}, - Ref, MinKeyint, Keyint, Bpyramid, OpenGop, IntraRefresh) + Ref, MinKeyint, Keyint, + Bpyramid, OpenGop, IntraRefresh) Add("Performance", New StringParam With {.Switch = "--pools", .Switches = {"--numa-pools"}, .Text = "Pools", .Quotes = True}, New NumParam With {.Switch = "--slices", .Text = "Slices", .Init = 1}, diff --git a/Forms/AppsForm.vb b/Forms/AppsForm.vb index 6e9d25f0..eef76563 100644 --- a/Forms/AppsForm.vb +++ b/Forms/AppsForm.vb @@ -223,14 +223,7 @@ Public Class AppsForm ScaleClientSize(41, 27) tv.ItemHeight = CInt(FontHeight * 1.5) - Dim plugins = Package.Items.Values.OfType(Of PluginPackage) - Dim x64 = Package.Items.Values.Where(Function(arg) Not arg.Version Is Nothing AndAlso Not arg.Version.Contains("x86")).Count - Dim avs = plugins.Where(Function(arg) Not arg.AviSynthFilterNames.NothingOrEmpty).Count - Dim vs = plugins.Where(Function(arg) Not arg.VapourSynthFilterNames.NothingOrEmpty).Count - Dim exe = Package.Items.Values.Where(Function(arg) arg.Filename.Ext = "exe" AndAlso Not arg.Version Is Nothing AndAlso arg.Version.Contains("x64")).Count - Dim dll = Package.Items.Values.Where(Function(arg) arg.Filename.Ext = "dll" AndAlso Not TypeOf arg Is PluginPackage).Count - - Text = $"{x64} x64 packages {avs} AVS x64 plugins {exe} x64 tools {vs} VS x64 plugins {dll} x64 libraries" + Text = $"{Package.Items.Count} tools" SearchTextBox_TextChanged() tv.Scrollable = True @@ -395,7 +388,7 @@ Public Class AppsForm Case Keys.F1 tsbHelp.PerformClick() Case Keys.F10 - Dim fp = "D:\Projekte\VS\VB\StaxRip\md\test-build.md" + Dim fp = "D:\Projekte\VS\VB\StaxRip\md\changelog.md" If File.Exists(fp) Then g.StartProcess(fp) Case Keys.F11 tsbPath.PerformClick() diff --git a/Forms/JobsForm.vb b/Forms/JobsForm.vb index 23fc3196..04fa1768 100644 --- a/Forms/JobsForm.vb +++ b/Forms/JobsForm.vb @@ -13,7 +13,7 @@ Friend Class JobsForm Friend WithEvents bnUp As StaxRip.UI.ButtonEx Friend WithEvents bnLoad As StaxRip.UI.ButtonEx Friend WithEvents lv As ListViewEx - Friend WithEvents TableLayoutPanel1 As TableLayoutPanel + Friend WithEvents tlpMain As TableLayoutPanel Friend WithEvents TableLayoutPanel2 As TableLayoutPanel Friend WithEvents TableLayoutPanel3 As TableLayoutPanel Private components As System.ComponentModel.IContainer @@ -26,10 +26,10 @@ Friend Class JobsForm Me.bnStart = New StaxRip.UI.ButtonEx() Me.bnLoad = New StaxRip.UI.ButtonEx() Me.lv = New StaxRip.UI.ListViewEx() - Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.tlpMain = New System.Windows.Forms.TableLayoutPanel() Me.TableLayoutPanel3 = New System.Windows.Forms.TableLayoutPanel() Me.TableLayoutPanel2 = New System.Windows.Forms.TableLayoutPanel() - Me.TableLayoutPanel1.SuspendLayout() + Me.tlpMain.SuspendLayout() Me.TableLayoutPanel3.SuspendLayout() Me.TableLayoutPanel2.SuspendLayout() Me.SuspendLayout() @@ -45,7 +45,7 @@ Friend Class JobsForm 'bnRemove ' Me.bnRemove.Anchor = System.Windows.Forms.AnchorStyles.None - Me.bnRemove.Location = New System.Drawing.Point(359, 0) + Me.bnRemove.Location = New System.Drawing.Point(392, 0) Me.bnRemove.Margin = New System.Windows.Forms.Padding(10, 0, 0, 0) Me.bnRemove.Size = New System.Drawing.Size(250, 70) Me.bnRemove.Text = "Remove" @@ -54,7 +54,7 @@ Friend Class JobsForm ' Me.bnUp.Anchor = System.Windows.Forms.AnchorStyles.Right Me.bnUp.Enabled = False - Me.bnUp.Location = New System.Drawing.Point(534, 0) + Me.bnUp.Location = New System.Drawing.Point(566, 0) Me.bnUp.Margin = New System.Windows.Forms.Padding(0, 0, 5, 0) Me.bnUp.Size = New System.Drawing.Size(70, 70) ' @@ -69,7 +69,7 @@ Friend Class JobsForm 'bnLoad ' Me.bnLoad.Anchor = System.Windows.Forms.AnchorStyles.None - Me.bnLoad.Location = New System.Drawing.Point(99, 0) + Me.bnLoad.Location = New System.Drawing.Point(132, 0) Me.bnLoad.Margin = New System.Windows.Forms.Padding(0) Me.bnLoad.Size = New System.Drawing.Size(250, 70) Me.bnLoad.Text = "Load" @@ -79,33 +79,31 @@ Friend Class JobsForm Me.lv.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TableLayoutPanel1.SetColumnSpan(Me.lv, 2) - Me.lv.Location = New System.Drawing.Point(0, 0) + Me.tlpMain.SetColumnSpan(Me.lv, 2) + Me.lv.Location = New System.Drawing.Point(15, 15) Me.lv.Margin = New System.Windows.Forms.Padding(0, 0, 0, 14) Me.lv.Name = "lv" - Me.lv.Size = New System.Drawing.Size(1218, 264) + Me.lv.Size = New System.Drawing.Size(1283, 543) Me.lv.TabIndex = 7 Me.lv.UseCompatibleStateImageBehavior = False ' - 'TableLayoutPanel1 + 'tlpMain ' - Me.TableLayoutPanel1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TableLayoutPanel1.ColumnCount = 2 - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.Controls.Add(Me.TableLayoutPanel3, 1, 1) - Me.TableLayoutPanel1.Controls.Add(Me.TableLayoutPanel2, 0, 1) - Me.TableLayoutPanel1.Controls.Add(Me.lv, 0, 0) - Me.TableLayoutPanel1.Location = New System.Drawing.Point(20, 19) - Me.TableLayoutPanel1.Margin = New System.Windows.Forms.Padding(4, 3, 4, 3) - Me.TableLayoutPanel1.Name = "TableLayoutPanel1" - Me.TableLayoutPanel1.RowCount = 2 - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 66.66666!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle()) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(1218, 348) - Me.TableLayoutPanel1.TabIndex = 15 + Me.tlpMain.ColumnCount = 2 + Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.tlpMain.Controls.Add(Me.TableLayoutPanel3, 1, 1) + Me.tlpMain.Controls.Add(Me.TableLayoutPanel2, 0, 1) + Me.tlpMain.Controls.Add(Me.lv, 0, 0) + Me.tlpMain.Dock = System.Windows.Forms.DockStyle.Fill + Me.tlpMain.Location = New System.Drawing.Point(0, 0) + Me.tlpMain.Name = "tlpMain" + Me.tlpMain.Padding = New System.Windows.Forms.Padding(15) + Me.tlpMain.RowCount = 2 + Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 66.66666!)) + Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle()) + Me.tlpMain.Size = New System.Drawing.Size(1313, 657) + Me.tlpMain.TabIndex = 15 ' 'TableLayoutPanel3 ' @@ -120,12 +118,12 @@ Friend Class JobsForm Me.TableLayoutPanel3.Controls.Add(Me.bnLoad, 1, 0) Me.TableLayoutPanel3.Controls.Add(Me.bnRemove, 2, 0) Me.TableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill - Me.TableLayoutPanel3.Location = New System.Drawing.Point(609, 278) + Me.TableLayoutPanel3.Location = New System.Drawing.Point(656, 572) Me.TableLayoutPanel3.Margin = New System.Windows.Forms.Padding(0) Me.TableLayoutPanel3.Name = "TableLayoutPanel3" Me.TableLayoutPanel3.RowCount = 1 Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel3.Size = New System.Drawing.Size(609, 70) + Me.TableLayoutPanel3.Size = New System.Drawing.Size(642, 70) Me.TableLayoutPanel3.TabIndex = 9 ' 'TableLayoutPanel2 @@ -138,27 +136,28 @@ Friend Class JobsForm Me.TableLayoutPanel2.Controls.Add(Me.bnStart, 0, 0) Me.TableLayoutPanel2.Controls.Add(Me.bnUp, 1, 0) Me.TableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill - Me.TableLayoutPanel2.Location = New System.Drawing.Point(0, 278) + Me.TableLayoutPanel2.Location = New System.Drawing.Point(15, 572) Me.TableLayoutPanel2.Margin = New System.Windows.Forms.Padding(0) Me.TableLayoutPanel2.Name = "TableLayoutPanel2" Me.TableLayoutPanel2.RowCount = 1 Me.TableLayoutPanel2.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - Me.TableLayoutPanel2.Size = New System.Drawing.Size(609, 70) + Me.TableLayoutPanel2.Size = New System.Drawing.Size(641, 70) Me.TableLayoutPanel2.TabIndex = 8 ' 'JobsForm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(288.0!, 288.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.ClientSize = New System.Drawing.Size(1258, 386) - Me.Controls.Add(Me.TableLayoutPanel1) + Me.ClientSize = New System.Drawing.Size(1313, 657) + Me.Controls.Add(Me.tlpMain) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable Me.KeyPreview = True Me.Margin = New System.Windows.Forms.Padding(0, 2, 0, 2) Me.MinimumSize = New System.Drawing.Size(323, 204) Me.Name = "JobsForm" Me.Text = "Jobs" - Me.TableLayoutPanel1.ResumeLayout(False) - Me.TableLayoutPanel1.PerformLayout() + Me.tlpMain.ResumeLayout(False) + Me.tlpMain.PerformLayout() Me.TableLayoutPanel3.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) Me.ResumeLayout(False) @@ -174,7 +173,7 @@ Friend Class JobsForm MyBase.New() InitializeComponent() - ScaleClientSize(35, 20) + ScaleClientSize(38, 20) bnUp.Image = ImageHelp.GetSymbolImage(Symbol.Up) bnDown.Image = ImageHelp.GetSymbolImage(Symbol.Down) @@ -189,6 +188,7 @@ Friend Class JobsForm lv.ItemCheckProperty = NameOf(StringBooleanPair.Value) lv.AddItems(Job.GetJobs()) lv.SelectFirst() + UpdateControls() FileWatcher.Path = Folder.Settings diff --git a/Forms/PreviewForm.vb b/Forms/PreviewForm.vb index a35b67c5..f9bfea62 100644 --- a/Forms/PreviewForm.vb +++ b/Forms/PreviewForm.vb @@ -411,13 +411,8 @@ Public Class PreviewForm Dim workingArea = Screen.GetWorkingArea(Me) Dim screenRect = RectangleToScreen(ClientRectangle) - If screenRect.Bottom > workingArea.Height Then - Top -= screenRect.Bottom - workingArea.Height - End If - - If screenRect.Right > workingArea.Width Then - Left -= screenRect.Right - workingArea.Width - End If + If screenRect.Bottom > workingArea.Height Then Top -= screenRect.Bottom - workingArea.Height + If screenRect.Right > workingArea.Width Then Left -= screenRect.Right - workingArea.Width End Sub Function GetNormalSize() As Size diff --git a/General/AudioProfile.vb b/General/AudioProfile.vb index 3f8ad9f4..c458c61d 100644 --- a/General/AudioProfile.vb +++ b/General/AudioProfile.vb @@ -923,7 +923,7 @@ Public Class GUIAudioProfile Function GetEncoder() As GuiAudioEncoder Select Case Params.Encoder Case GuiAudioEncoder.Eac3to - If {AudioCodec.AAC, AudioCodec.AC3, AudioCodec.FLAC, AudioCodec.DTS}.Contains(Params.Codec) Then Return GuiAudioEncoder.Eac3to + If {AudioCodec.AAC, AudioCodec.AC3, AudioCodec.FLAC, AudioCodec.DTS, AudioCodec.W64, AudioCodec.WAV}.Contains(Params.Codec) Then Return GuiAudioEncoder.Eac3to Case GuiAudioEncoder.ffmpeg Return GuiAudioEncoder.ffmpeg Case GuiAudioEncoder.qaac diff --git a/General/Misc.vb b/General/Misc.vb index c36398e4..1868c999 100644 --- a/General/Misc.vb +++ b/General/Misc.vb @@ -1961,7 +1961,7 @@ End Enum Public Class FileTypes Shared Property AudioRaw As String() = {"thd", "aac", "eac3"} Shared Property Audio As String() = {"flac", "dtshd", "dtsma", "dtshr", "thd", "thd+ac3", "true-hd", "truehd", "aac", "ac3", "dts", "eac3", "m4a", "mka", "mp2", "mp3", "mpa", "opus", "wav", "w64"} - Shared Property VideoAudio As String() = {"avi", "mp4", "mkv", "divx", "flv", "mov", "mpeg", "mpg", "ts", "m2ts", "vob", "webm", "wmv", "pva", "ogg", "ogm"} + Shared Property VideoAudio As String() = {"avi", "mp4", "mkv", "divx", "flv", "mov", "mpeg", "mpg", "ts", "m2ts", "vob", "webm", "wmv", "pva", "ogg", "ogm", "m4v", "3gp"} Shared Property BeSweetInput As String() = {"wav", "mp2", "mpa", "mp3", "ac3", "ogg"} Shared Property DGDecNVInput As String() = {"264", "h264", "265", "h265", "avc", "hevc", "hvc", "mkv", "mp4", "mpg", "vob", "ts", "m2ts", "mts", "m2t", "mpv", "m2v"} Shared Property eac3toInput As String() = {"dts", "dtshd", "dtshr", "dtsma", "evo", "vob", "ts", "m2ts", "wav", "w64", "pcm", "raw", "flac", "ac3", "eac3", "thd", "thd+ac3", "mlp", "mp2", "mp3", "mpa"} @@ -1971,9 +1971,9 @@ Public Class FileTypes Shared Property SubtitleSingle As String() = {"srt", "ass", "sup", "ttxt", "ssa", "smi"} Shared Property SubtitleIncludingContainers As String() = {"m2ts", "mkv", "mp4", "ass", "idx", "smi", "srt", "ssa", "sup", "ttxt"} Shared Property TextSub As String() = {"ass", "idx", "smi", "srt", "ssa", "ttxt", "usf", "ssf", "psb", "sub"} - Shared Property Video As String() = {"264", "265", "avc", "avi", "avs", "d2v", "dgi", "dgim", "divx", "flv", "h264", "h265", "hevc", "hvc", "m2t", "m2ts", "m2v", "mkv", "mov", "mp4", "mpeg", "mpg", "mpv", "mts", "ogg", "ogm", "pva", "rmvb", "ts", "vdr", "vob", "vpy", "webm", "wmv", "y4m"} + Shared Property Video As String() = {"264", "265", "avc", "avi", "avs", "d2v", "dgi", "dgim", "divx", "flv", "h264", "h265", "hevc", "hvc", "m2t", "m2ts", "m2v", "mkv", "mov", "mp4", "mpeg", "mpg", "mpv", "mts", "ogg", "ogm", "pva", "rmvb", "ts", "vdr", "vob", "vpy", "webm", "wmv", "y4m", "3gp"} Shared Property VideoIndex As String() = {"d2v", "dgi", "dga", "dgim"} - Shared Property VideoOnly As String() = {"264", "265", "avc", "h264", "h265", "hevc", "hvc", "m2v", "m4v", "mpv", "y4m"} + Shared Property VideoOnly As String() = {"264", "265", "avc", "h264", "h265", "hevc", "hvc", "m2v", "mpv", "y4m"} Shared Property VideoRaw As String() = {"264", "265", "h264", "h265", "avc", "hevc", "hvc"} Shared Property VideoText As String() = {"d2v", "dgi", "dga", "dgim", "avs", "vpy"} Shared Property VideoDemuxOutput As String() = {"mpg", "h264", "avi", "h265"} diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 1bc15026..a724e6a3 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -7,4 +7,4 @@ Imports System.Runtime.InteropServices - \ No newline at end of file + \ No newline at end of file diff --git a/Screenshots/MediaInfo.png b/Screenshots/MediaInfo.png new file mode 100644 index 00000000..97fc14c6 Binary files /dev/null and b/Screenshots/MediaInfo.png differ diff --git a/md/changelog.md b/md/changelog.md index 60b3f4f3..d4bb41f2 100644 --- a/md/changelog.md +++ b/md/changelog.md @@ -10,6 +10,15 @@ https://drive.google.com/open?id=0B-gPKiJYuKuITld4dzhuTC1WWWM https://onedrive.live.com/redir?resid=604D4754F64B0ABC!4140&authkey=!ANUm9V3vTPmEFNI&ithint=folder%2c7z +#### 1.6.0.0 stable build + +- new: x265 option --force-flush added + +- fix: job dialog DPI scaling issue on small screens + +- update: mpv 0.26.0 +- update: x265 2.5+6 + #### 1.5.3.4 unstable test build - fix: the main window stayed in the background instead of meaing activated to be top most