mirror of
https://github.com/staxrip/staxrip.git
synced 2026-10-28 21:47:41 +08:00
2.1.5.5 Beta
This commit is contained in:
+12
-2
@@ -1,13 +1,23 @@
|
||||
|
||||
2.1.5.5 Beta (2020-12-??)
|
||||
2.1.5.6 Beta (2020-12-??)
|
||||
=========================
|
||||
|
||||
2.1.5.5 Beta (2020-12-30)
|
||||
=========================
|
||||
|
||||
- Multiple AviSynth.dlls were included due to bug in release script. (stax76, 44vince44 [#407](/../../issues/407))
|
||||
- Apple QuickTime library removed.
|
||||
- The apps dialog has a feature to copy the path to the clipboard. (stax76)
|
||||
- The apps dialog has a feature to edit the user PATH environment variable. (stax76 [#305](/../../issues/305))
|
||||
- mpv.net 5.4.8.6
|
||||
- VapourSynth CAS plugin added (LSFmod dependency).
|
||||
- On Windows 10 Unicode for AviSynth is supported even when the default
|
||||
code page is not UTF-8. This currently works for staxrip, mpv.net and x264.
|
||||
- aomenc bitrate UI fix (Dendraspis, 44vince44, [#375](/../../issues/375))
|
||||
- mpv.net 5.4.8.6
|
||||
- x264 M-0.161.3027-4121277-x64-gcc10.2.0 Patman
|
||||
- x265 M-3.4+28 gcc10.2.0 Yuuki-Asuna/msg7086/DJATOM/Patman,
|
||||
it supports direct AviSynth and VapourSynth input which can be
|
||||
enabled in the encoder settings: Input/Output > Pipe > None
|
||||
|
||||
|
||||
2.1.5.4 Beta (2020-12-27)
|
||||
|
||||
+3
-4
@@ -46,7 +46,6 @@ Public Class x264Enc
|
||||
End Function
|
||||
|
||||
Overrides Sub Encode()
|
||||
p.Script.Synchronize()
|
||||
Encode("Video encoding", GetArgs(1, p.Script), s.ProcessPriority)
|
||||
|
||||
If Params.Mode.Value = x264RateMode.TwoPass Then
|
||||
@@ -61,7 +60,7 @@ Public Class x264Enc
|
||||
End Sub
|
||||
|
||||
Overloads Sub Encode(passName As String, commandLine As String, priority As ProcessPriorityClass)
|
||||
p.Script.Synchronize()
|
||||
p.Script.Synchronize(avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
|
||||
Using proc As New Proc
|
||||
proc.Package = Package.x264
|
||||
@@ -110,7 +109,7 @@ Public Class x264Enc
|
||||
|
||||
script.Filters.Add(New VideoFilter("aaa", "aaa", code))
|
||||
script.Path = (p.TempDir + p.TargetFile.Base + "_CompCheck." + script.FileType).ToShortFilePath
|
||||
script.Synchronize()
|
||||
script.Synchronize(avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
|
||||
Log.WriteLine(BR + script.GetFullScript + BR)
|
||||
|
||||
@@ -1078,7 +1077,7 @@ Public Class x264Params
|
||||
End If
|
||||
|
||||
If includePaths Then
|
||||
Dim input = If(pipeTool = "none", script.Path.ToShortFilePath.Escape, "-")
|
||||
Dim input = If(pipeTool = "none", script.Path.Escape, "-")
|
||||
Dim dmx = Demuxer.ValueText
|
||||
|
||||
If dmx = "automatic" Then
|
||||
|
||||
+8
-2
@@ -117,8 +117,14 @@ Public Class x265Enc
|
||||
proc.Encoding = Encoding.UTF8
|
||||
proc.Priority = priority
|
||||
proc.SkipString = "%] "
|
||||
proc.File = "cmd.exe"
|
||||
proc.Arguments = "/S /C """ + commandLine + """"
|
||||
|
||||
If commandLine.Contains("|") Then
|
||||
proc.File = "cmd.exe"
|
||||
proc.Arguments = "/S /C """ + commandLine + """"
|
||||
Else
|
||||
proc.CommandLine = commandLine
|
||||
End If
|
||||
|
||||
proc.Start()
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
+1
-1
@@ -608,7 +608,7 @@ Public Class CropForm
|
||||
script.Engine = p.Script.Engine
|
||||
script.Path = (p.TempDir + p.TargetFile.Base + "_crop." + script.FileType).ToShortFilePath
|
||||
script.Filters.Add(p.Script.GetFilter("Source").GetCopy)
|
||||
script.Synchronize(True, True, True)
|
||||
script.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
|
||||
FrameServer = FrameServerFactory.Create(script.Path)
|
||||
Renderer = New VideoRenderer(pnVideo, FrameServer)
|
||||
|
||||
+24
-16
@@ -6,7 +6,7 @@ Imports System.Text
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports System.Threading
|
||||
Imports System.Threading.Tasks
|
||||
|
||||
Imports Microsoft.Win32
|
||||
Imports StaxRip.UI
|
||||
Imports VB6 = Microsoft.VisualBasic
|
||||
|
||||
@@ -2189,7 +2189,7 @@ Public Class MainForm
|
||||
|
||||
If film >= 95 Then
|
||||
content = content.Replace("Field_Operation=0" + BR + "Frame_Rate=29970 (30000/1001)", "Field_Operation=1" + BR + "Frame_Rate=23976 (24000/1001)")
|
||||
content.WriteFileDefault(p.SourceFile)
|
||||
content.WriteFileSystemEncoding(p.SourceFile)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
@@ -2198,7 +2198,6 @@ Public Class MainForm
|
||||
Dim errorMsg = ""
|
||||
|
||||
Try
|
||||
p.SourceScript.Synchronize()
|
||||
errorMsg = p.SourceScript.GetError
|
||||
Catch ex As Exception
|
||||
errorMsg = ex.Message
|
||||
@@ -2292,7 +2291,7 @@ Public Class MainForm
|
||||
Dim isCropActive = p.Script.IsFilterActive("Crop")
|
||||
|
||||
If isCropActive AndAlso (p.CropLeft Or p.CropTop Or p.CropRight Or p.CropBottom) = 0 Then
|
||||
p.SourceScript.Synchronize(True, True, True)
|
||||
p.SourceScript.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
|
||||
Using proc As New Proc
|
||||
proc.Header = "Auto Crop"
|
||||
@@ -2527,7 +2526,7 @@ Public Class MainForm
|
||||
If idxContent.Contains(VB6.ChrW(&HA) + VB6.ChrW(&H0) + VB6.ChrW(&HD) + VB6.ChrW(&HA)) Then
|
||||
idxContent = idxContent.FixBreak
|
||||
idxContent = idxContent.Replace(BR + VB6.ChrW(&H0) + BR, BR + "langidx: 0" + BR)
|
||||
File.WriteAllText(path, idxContent, Encoding.Default)
|
||||
idxContent.WriteFileSystemEncoding(path)
|
||||
End If
|
||||
|
||||
Using proc As New Proc
|
||||
@@ -2587,7 +2586,7 @@ Public Class MainForm
|
||||
"CLOSE"
|
||||
|
||||
Dim fileContent = p.TempDir + p.TargetFile.Base + "_vsrip.txt"
|
||||
args.WriteFileDefault(fileContent)
|
||||
args.WriteFileSystemEncoding(fileContent)
|
||||
|
||||
Using proc As New Proc
|
||||
proc.Header = "Demux subtitles using VSRip"
|
||||
@@ -2799,6 +2798,22 @@ Public Class MainForm
|
||||
End If
|
||||
|
||||
If Not p.BatchMode Then
|
||||
If p.SourceFile <> "" Then
|
||||
If p.Script.IsAviSynth AndAlso Not TextEncoding.IsSystemUTF8 AndAlso
|
||||
Not (TextEncoding.AvsEncoderSupportsUTF8 AndAlso OSVersion.Current >= OSVersion.Windows10) AndAlso
|
||||
Not TextEncoding.IsPathSupportedBySystemEncoding(p.SourceFile) Then
|
||||
|
||||
If ProcessTip(If(OSVersion.Current >= OSVersion.Windows10,
|
||||
"The current AviSynth video encoder does not support Unicode, consider to enable UTF-8 in the administrative language settings of Windows 10.",
|
||||
"The current AviSynth video encoder does not support Unicode on systems older than Windows 10.")) Then
|
||||
|
||||
gbAssistant.Text = "Text Encoding Limitation"
|
||||
CanIgnoreTip = False
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If p.Script.Filters.Count = 0 OrElse
|
||||
Not p.Script.Filters(0).Active OrElse
|
||||
p.Script.Filters(0).Category <> "Source" Then
|
||||
@@ -2939,7 +2954,8 @@ Public Class MainForm
|
||||
End If
|
||||
|
||||
If Not p.Script.IsFilterActive("Cutting") AndAlso Form.ActiveForm Is Me Then
|
||||
If ProcessTip("The cutting filter settings don't match with the cutting settings used in the preview.") Then
|
||||
If ProcessTip("The cutting filter settings don't match with the cutting settings used in the preview." + BR +
|
||||
"This can usually be fixed by opening and closing the preview.") Then
|
||||
gbAssistant.Text = "Invalid Cutting Settings"
|
||||
CanIgnoreTip = False
|
||||
Return False
|
||||
@@ -3080,14 +3096,6 @@ Public Class MainForm
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If System.Text.Encoding.Default.CodePage <> 65001 AndAlso
|
||||
Not tb.Text.IsANSICompatible AndAlso p.Script.Engine = ScriptEngine.AviSynth Then
|
||||
|
||||
MsgWarn(Strings.NoUnicode)
|
||||
tb.Text = ""
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If tb.Text.Contains(":\") OrElse tb.Text.StartsWith("\\") Then
|
||||
If tb.Text <> ap.File Then
|
||||
ap.File = tb.Text
|
||||
@@ -4703,7 +4711,7 @@ Public Class MainForm
|
||||
End If
|
||||
|
||||
Regex.Replace(dialog.FileName.ReadAllText, "langidx: \d+", "langidx: " +
|
||||
sb.SelectedValue.IndexIDX.ToString).WriteFileDefault(dialog.FileName)
|
||||
sb.SelectedValue.IndexIDX.ToString).WriteFileSystemEncoding(dialog.FileName)
|
||||
End If
|
||||
|
||||
p.AddHardcodedSubtitleFilter(dialog.FileName, True)
|
||||
|
||||
+3
-3
@@ -1122,7 +1122,7 @@ Public Class MuxerForm
|
||||
If st.Path.Ext = "idx" Then
|
||||
filepath = p.TempDir + p.TargetFile.Base + "_play.idx"
|
||||
Regex.Replace(st.Path.ReadAllText, "langidx: \d+", "langidx: " +
|
||||
st.IndexIDX.ToString).WriteFileDefault(filepath)
|
||||
st.IndexIDX.ToString).WriteFileSystemEncoding(filepath)
|
||||
FileHelp.Copy(st.Path.DirAndBase + ".sub", filepath.DirAndBase + ".sub")
|
||||
End If
|
||||
|
||||
@@ -1351,7 +1351,7 @@ Public Class MuxerForm
|
||||
|
||||
If fp.Ext = "idx" Then
|
||||
fp = p.TempDir + p.TargetFile.Base + "_temp.idx"
|
||||
Regex.Replace(st.Path.ReadAllText, "langidx: \d+", "langidx: " + st.IndexIDX.ToString).WriteFileDefault(fp)
|
||||
Regex.Replace(st.Path.ReadAllText, "langidx: \d+", "langidx: " + st.IndexIDX.ToString).WriteFileSystemEncoding(fp)
|
||||
FileHelp.Copy(st.Path.DirAndBase + ".sub", fp.DirAndBase + ".sub")
|
||||
End If
|
||||
|
||||
@@ -1368,7 +1368,7 @@ Public Class MuxerForm
|
||||
|
||||
If fp.ExtFull = ".idx" Then
|
||||
fp = p.TempDir + p.TargetFile.Base + "_temp.idx"
|
||||
Regex.Replace(st.Path.ReadAllText, "langidx: \d+", "langidx: " + st.IndexIDX.ToString).WriteFileDefault(fp)
|
||||
Regex.Replace(st.Path.ReadAllText, "langidx: \d+", "langidx: " + st.IndexIDX.ToString).WriteFileSystemEncoding(fp)
|
||||
FileHelp.Copy(st.Path.DirAndBase + ".sub", fp.DirAndBase + ".sub")
|
||||
End If
|
||||
|
||||
|
||||
@@ -987,7 +987,7 @@ Public Class PreviewForm
|
||||
Protected Overrides Sub OnLoad(args As EventArgs)
|
||||
MyBase.OnLoad(args)
|
||||
|
||||
PreviewScript.Synchronize(True, True, True)
|
||||
PreviewScript.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
FrameServer = FrameServerFactory.Create(PreviewScript.Path)
|
||||
Renderer = New VideoRenderer(pnVideo, FrameServer)
|
||||
Renderer.Info = PreviewScript.OriginalInfo
|
||||
|
||||
@@ -286,7 +286,7 @@ Public Class VideoComparisonForm
|
||||
script.Filters.Add(New VideoFilter("Crop(" & Form.CropLeft & ", " & Form.CropTop & ", -" & Form.CropRight & ", -" & Form.CropBottom & ")"))
|
||||
End If
|
||||
|
||||
script.Synchronize(True, True, True)
|
||||
script.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
Server = FrameServerFactory.Create(script.Path)
|
||||
Renderer = New VideoRenderer(VideoPanel, Server)
|
||||
|
||||
|
||||
@@ -80,14 +80,20 @@ Namespace CommandLine
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
p.Script.Synchronize()
|
||||
Dim cl = GetCommandLine(True, True)
|
||||
|
||||
If TextEncoding.AvsEncoderSupportsUTF8(cl) Then
|
||||
p.Script.Synchronize(avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
Else
|
||||
p.Script.Synchronize()
|
||||
End If
|
||||
|
||||
If g.IsWindowsTerminalAvailable Then
|
||||
Dim cl = "cmd.exe /S /K --% """ + GetCommandLine(True, True) + """"
|
||||
cl = "cmd.exe /S /K --% """ + cl + """"
|
||||
Dim base64 = Convert.ToBase64String(Encoding.Unicode.GetBytes(cl)) 'UTF16LE
|
||||
g.Execute("wt.exe", "powershell.exe -NoLogo -NoExit -NoProfile -EncodedCommand """ + base64 + """")
|
||||
Else
|
||||
g.Execute("cmd.exe", "/S /K """ + GetCommandLine(True, True) + """")
|
||||
g.Execute("cmd.exe", "/S /K """ + cl + """")
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
+35
-11
@@ -142,23 +142,42 @@ Module StringExtensions
|
||||
End Function
|
||||
|
||||
<Extension>
|
||||
Function IsDosCompatible(instance As String) As Boolean
|
||||
If instance = "" Then
|
||||
Return True
|
||||
End If
|
||||
Function IsASCIIEncodingCompatible(instance As String) As Boolean
|
||||
For Each i In instance
|
||||
If Convert.ToInt32(i) > 127 Then
|
||||
Return False
|
||||
End If
|
||||
Next
|
||||
|
||||
Dim bytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(ConsoleHelp.DosCodePage), Encoding.Unicode.GetBytes(instance))
|
||||
Return instance = Encoding.Unicode.GetString(Encoding.Convert(Encoding.GetEncoding(ConsoleHelp.DosCodePage), Encoding.Unicode, bytes))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
<Extension>
|
||||
Function IsANSICompatible(instance As String) As Boolean
|
||||
Function IsSystemEncodingCompatible(instance As String) As Boolean
|
||||
If instance = "" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Dim bytes = Encoding.Convert(Encoding.Unicode, Encoding.Default, Encoding.Unicode.GetBytes(instance))
|
||||
Return instance = Encoding.Unicode.GetString(Encoding.Convert(Encoding.Default, Encoding.Unicode, bytes))
|
||||
If IsASCIIEncodingCompatible(instance) Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Dim bytes = Encoding.Convert(Encoding.Unicode, TextEncoding.EncodingOfSystem, Encoding.Unicode.GetBytes(instance))
|
||||
Return instance = Encoding.Unicode.GetString(Encoding.Convert(TextEncoding.EncodingOfSystem, Encoding.Unicode, bytes))
|
||||
End Function
|
||||
|
||||
<Extension>
|
||||
Function IsProcessEncodingCompatible(instance As String) As Boolean
|
||||
If instance = "" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
If IsASCIIEncodingCompatible(instance) Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Dim bytes = Encoding.Convert(Encoding.Unicode, TextEncoding.EncodingOfProcess, Encoding.Unicode.GetBytes(instance))
|
||||
Return instance = Encoding.Unicode.GetString(Encoding.Convert(TextEncoding.EncodingOfProcess, Encoding.Unicode, bytes))
|
||||
End Function
|
||||
|
||||
<Extension()>
|
||||
@@ -525,8 +544,13 @@ Module StringExtensions
|
||||
End Function
|
||||
|
||||
<Extension()>
|
||||
Sub WriteFileDefault(instance As String, path As String)
|
||||
WriteFile(instance, path, Encoding.Default)
|
||||
Sub WriteFileSystemEncoding(instance As String, path As String)
|
||||
WriteFile(instance, path, TextEncoding.EncodingOfSystem)
|
||||
End Sub
|
||||
|
||||
<Extension()>
|
||||
Sub WriteFileProcessEncoding(instance As String, path As String)
|
||||
WriteFile(instance, path, TextEncoding.EncodingOfProcess)
|
||||
End Sub
|
||||
|
||||
<Extension()>
|
||||
|
||||
@@ -153,7 +153,7 @@ Public Class FrameServerFactory
|
||||
Package.VapourSynth.Directory,
|
||||
Package.AviSynth.Directory,
|
||||
Package.FFTW.Directory,
|
||||
Package.VisualCpp2019.Directory)
|
||||
Folder.Startup + "Apps\Support\VC")
|
||||
|
||||
If (path.Ext = "avs" AndAlso s.AviSynthMode = FrameServerMode.VFW) OrElse
|
||||
(path.Ext = "vpy" AndAlso s.VapourSynthMode = FrameServerMode.VFW) Then
|
||||
|
||||
+15
-7
@@ -4,7 +4,6 @@ Imports System.Drawing.Imaging
|
||||
Imports System.Globalization
|
||||
Imports System.Management.Automation
|
||||
Imports System.Runtime.ExceptionServices
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Security.Principal
|
||||
Imports System.Text
|
||||
Imports System.Text.RegularExpressions
|
||||
@@ -435,10 +434,8 @@ Public Class GlobalClass
|
||||
|
||||
Function VerifySource(files As IEnumerable(Of String)) As Boolean
|
||||
For Each file In files
|
||||
If Encoding.Default.CodePage <> 65001 AndAlso
|
||||
Not file.IsANSICompatible AndAlso p.Script.Engine = ScriptEngine.AviSynth Then
|
||||
|
||||
MsgError(Strings.NoUnicode)
|
||||
If Not file.IsProcessEncodingCompatible AndAlso p.Script.Engine = ScriptEngine.AviSynth Then
|
||||
ShowAviSynthUnicodeError()
|
||||
Return False
|
||||
End If
|
||||
Next
|
||||
@@ -446,6 +443,11 @@ Public Class GlobalClass
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Sub ShowAviSynthUnicodeError()
|
||||
MsgError($"Unicode filenames are not supported by AviSynth unless Windows 10 is used." + BR2 +
|
||||
$"Rename the file or enable VapourSynth:{BR2}Filters > Filter Setup > VapourSynth")
|
||||
End Sub
|
||||
|
||||
Sub PlayAudio(ap As AudioProfile)
|
||||
If FileTypes.AudioRaw.Contains(ap.File.Ext) Then
|
||||
g.ShellExecute(Package.mpvnet.Path, ap.File.Escape)
|
||||
@@ -513,7 +515,7 @@ Public Class GlobalClass
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
script.Synchronize()
|
||||
script.Synchronize(avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
Dim args As String
|
||||
|
||||
If script.Engine = ScriptEngine.VapourSynth Then
|
||||
@@ -1263,7 +1265,7 @@ Public Class GlobalClass
|
||||
End Sub
|
||||
|
||||
Sub RunAutoCrop(progressAction As Action(Of Double))
|
||||
p.SourceScript.Synchronize(True, True, True)
|
||||
p.SourceScript.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
|
||||
Using server = FrameServerFactory.Create(p.SourceScript.Path)
|
||||
Dim len = server.Info.FrameCount \ (s.CropFrameCount + 1)
|
||||
@@ -1534,4 +1536,10 @@ Public Class GlobalClass
|
||||
Return "clip = " + ret
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function ContainsPipeTool(value As String) As Boolean
|
||||
If value <> "" Then
|
||||
Return value.Contains("ffmpeg") OrElse value.Contains("avs2pipemod") OrElse value.Contains("vspipe")
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -937,6 +937,7 @@ Public Class GlobalCommands
|
||||
g.RunCommandInTerminal("powershell.exe")
|
||||
End Sub
|
||||
|
||||
'TODO: remove
|
||||
<Command("This command is obsolete since 2020.")>
|
||||
Sub ExecuteBatchScript(
|
||||
<DispName("Batch Script Code"),
|
||||
@@ -946,7 +947,7 @@ Public Class GlobalCommands
|
||||
|
||||
Dim batchPath = Folder.Temp + Guid.NewGuid.ToString + ".bat"
|
||||
Dim batchCode = Macro.Expand(batchScript)
|
||||
File.WriteAllText(batchPath, batchCode, Encoding.Default)
|
||||
batchCode.WriteFileSystemEncoding(batchPath)
|
||||
AddHandler g.MainForm.Disposed, Sub() FileHelp.Delete(batchPath)
|
||||
|
||||
Using proc As New Proc
|
||||
|
||||
+40
-10
@@ -7,7 +7,7 @@ Imports System.Management
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Text
|
||||
Imports System.Text.RegularExpressions
|
||||
|
||||
Imports Microsoft.Win32
|
||||
Imports StaxRip.UI
|
||||
|
||||
Public Module ShortcutModule
|
||||
@@ -1519,15 +1519,10 @@ Public Class FileTypes
|
||||
End Class
|
||||
|
||||
Public Class OSVersion
|
||||
Shared Property Windows7 As Single = 6.1
|
||||
Shared Property Windows8 As Single = 6.2
|
||||
Shared Property Windows10 As Single = 10.0
|
||||
|
||||
Shared ReadOnly Property Current As Single
|
||||
Get
|
||||
Return CSng(Environment.OSVersion.Version.Major + Environment.OSVersion.Version.Minor / 10)
|
||||
End Get
|
||||
End Property
|
||||
Shared ReadOnly Property Windows7 As Single = 6.1
|
||||
Shared ReadOnly Property Windows8 As Single = 6.2
|
||||
Shared ReadOnly Property Windows10 As Single = 10.0
|
||||
Shared ReadOnly Property Current As Single = CSng(Environment.OSVersion.Version.Major + Environment.OSVersion.Version.Minor / 10)
|
||||
End Class
|
||||
|
||||
Public Class OS
|
||||
@@ -3855,3 +3850,38 @@ End Enum
|
||||
Public Interface IUpdateUI
|
||||
Sub UpdateUI()
|
||||
End Interface
|
||||
|
||||
Public Class TextEncoding
|
||||
Shared Property EncodingOfProcess As Encoding = Encoding.Default
|
||||
Shared Property CodePageOfProcess As Integer = Encoding.Default.CodePage
|
||||
Shared Property CodePageOfSystem As Integer = Registry.LocalMachine.GetString("SYSTEM\CurrentControlSet\Control\Nls\CodePage", "ACP").ToInt
|
||||
Shared Property EncodingOfSystem As Encoding = Encoding.GetEncoding(CodePageOfSystem)
|
||||
Shared Property PathsSupportedBySystemEncoding As New Dictionary(Of String, Boolean)
|
||||
Shared Property UTF8CodePage As Integer = 65001
|
||||
|
||||
Shared Function IsPathSupportedBySystemEncoding(path As String) As Boolean
|
||||
If path = "" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
If Not PathsSupportedBySystemEncoding.ContainsKey(path) Then
|
||||
PathsSupportedBySystemEncoding(path) = path.IsSystemEncodingCompatible
|
||||
End If
|
||||
|
||||
Return PathsSupportedBySystemEncoding(path)
|
||||
End Function
|
||||
|
||||
Shared Function IsSystemUTF8() As Boolean
|
||||
Return CodePageOfSystem = UTF8CodePage
|
||||
End Function
|
||||
|
||||
Shared Function AvsEncoderSupportsUTF8(Optional commandLine As String = Nothing) As Boolean
|
||||
If commandLine = "" Then
|
||||
commandLine = p.VideoEncoder.GetCommandLine(True, True)
|
||||
End If
|
||||
|
||||
If commandLine <> "" Then
|
||||
Return commandLine.Contains("x264") AndAlso commandLine.Contains(".avs") AndAlso Not g.ContainsPipeTool(commandLine)
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
|
||||
+21
-18
@@ -173,7 +173,7 @@ Public MustInherit Class Muxer
|
||||
If v.Contains(VB6.ChrW(&HA) + VB6.ChrW(&H0) + VB6.ChrW(&HD) + VB6.ChrW(&HA)) Then
|
||||
v = v.FixBreak
|
||||
v = v.Replace(BR + VB6.ChrW(&H0) + BR, BR + "langidx: 0" + BR)
|
||||
File.WriteAllText(fp, v, Encoding.Default)
|
||||
v.WriteFileSystemEncoding(fp)
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -486,26 +486,29 @@ Public Class BatchMuxer
|
||||
End Function
|
||||
|
||||
Overrides Sub Mux()
|
||||
Log.WriteHeader("Batch Muxing")
|
||||
Log.WriteHeader("Command Line Muxing")
|
||||
|
||||
Dim batchPath = p.TempDir + p.TargetFile.Base + "_mux.bat"
|
||||
Dim batchCode = Proc.WriteBatchFile(batchPath, Macro.Expand(CommandLines))
|
||||
For Each line In Macro.Expand(CommandLines.Trim).SplitLinesNoEmpty
|
||||
Using proc As New Proc
|
||||
proc.Header = "Command Line Muxing: " + Name
|
||||
|
||||
Using proc As New Proc
|
||||
proc.Header = "Video encoding command line encoder: " + Name
|
||||
proc.WriteLog(batchCode + BR2)
|
||||
proc.File = "cmd.exe"
|
||||
proc.Arguments = "/C call """ + batchPath + """"
|
||||
If line.Contains("|") Then
|
||||
proc.File = "cmd.exe"
|
||||
proc.Arguments = "/S /C """ + line + """"
|
||||
Else
|
||||
proc.CommandLine = line
|
||||
End If
|
||||
|
||||
Try
|
||||
proc.Start()
|
||||
Catch ex As AbortException
|
||||
Throw ex
|
||||
Catch ex As Exception
|
||||
g.ShowException(ex)
|
||||
Throw New AbortException
|
||||
End Try
|
||||
End Using
|
||||
Try
|
||||
proc.Start()
|
||||
Catch ex As AbortException
|
||||
Throw ex
|
||||
Catch ex As Exception
|
||||
g.ShowException(ex)
|
||||
Throw New AbortException
|
||||
End Try
|
||||
End Using
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Overrides Function Edit() As DialogResult
|
||||
|
||||
+9
-1
@@ -764,7 +764,7 @@ Public Class Package
|
||||
.DownloadURL = "https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/LSFmod.avsi",
|
||||
.Description = "A LimitedSharpenFaster mod with a lot of new features and optimizations.",
|
||||
.AvsFilterNames = {"LSFmod"},
|
||||
.AvsFiltersFunc = Function() {New VideoFilter("Line", "Sharpen | LSFmod", "LSFmod(defaults=""slow"", strength=100, Smode=5, Smethod=3, kernel=11, preblur=""OFF"", secure=true, Szrp=16, Spwr=4, SdmpLo=4, SdmpHi=48, Lmode=4, overshoot=1, undershoot=1, Overshoot2=1, Undershoot2=1, soft=-2, soothe=true, keep=20, edgemode=0, edgemaskHQ=true, ss_x=1.50, ss_y=1.50, dest_x=%target_width%, dest_y=%target_height%, show=false, screenW=1280, screenH=1024)")}})
|
||||
.AvsFiltersFunc = Function() {New VideoFilter("Line", "Sharpen | LSFmod", "LSFmod(defaults=""slow"", strength=100, Smode=5, Smethod=3, kernel=11, secure=true, Szrp=16, Spwr=4, SdmpLo=4, SdmpHi=48, Lmode=4, overshoot=1, undershoot=1, Overshoot2=1, Undershoot2=1, soft=-2, soothe=true, keep=20, edgemode=0, edgemaskHQ=true, ss_x=1.50, ss_y=1.50, dest_x=%target_width%, dest_y=%target_height%, show=false, screenW=1280, screenH=1024)")}})
|
||||
|
||||
Shared Property TemporalDegrain2 As Package = Add(New PluginPackage With {
|
||||
.Name = "TemporalDegrain2",
|
||||
@@ -1574,6 +1574,14 @@ Public Class Package
|
||||
.Description = "znedi3 is a CPU-optimized version of nnedi.",
|
||||
.VSFilterNames = {"znedi3.nnedi3"}})
|
||||
|
||||
Add(New PluginPackage With {
|
||||
.Name = "CAS",
|
||||
.Filename = "CAS.dll",
|
||||
.WebURL = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-CAS",
|
||||
.DownloadURL = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-CAS/releases",
|
||||
.Description = "Contrast Adaptive Sharpening.",
|
||||
.VSFilterNames = {"cas.CAS"}})
|
||||
|
||||
Add(New PluginPackage With {
|
||||
.Name = "nnedi3cl",
|
||||
.Filename = "NNEDI3CL.dll",
|
||||
|
||||
+2
-27
@@ -143,31 +143,6 @@ Public Class Proc
|
||||
End If
|
||||
End Function
|
||||
|
||||
'TODO: should probably be removed
|
||||
Shared Function WriteBatchFile(path As String, content As String) As String
|
||||
If OSVersion.Current = OSVersion.Windows7 Then
|
||||
For Each i In content
|
||||
If Convert.ToInt32(i) > 137 Then
|
||||
Throw New ErrorAbortException("Unsupported Windows Version",
|
||||
"Executing batch files with character '" & i & "' requires minimum Windows 8.")
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
If content.IsDosCompatible Then
|
||||
content = "@echo off" + BR + content
|
||||
IO.File.WriteAllText(path, content, Encoding.GetEncoding(ConsoleHelp.DosCodePage))
|
||||
ElseIf content.IsANSICompatible Then
|
||||
content = "@echo off" + BR + "CHCP " & Encoding.Default.CodePage & BR + content
|
||||
IO.File.WriteAllText(path, content, Encoding.Default)
|
||||
Else
|
||||
content = "@echo off" + BR + "CHCP 65001" + BR + content
|
||||
IO.File.WriteAllText(path, content, New UTF8Encoding(False))
|
||||
End If
|
||||
|
||||
Return content
|
||||
End Function
|
||||
|
||||
Property File() As String
|
||||
Get
|
||||
Return Process.StartInfo.FileName
|
||||
@@ -474,9 +449,9 @@ Public Class Proc
|
||||
End If
|
||||
Next
|
||||
|
||||
Dim cppDir = Package.VisualCpp2019.Directory
|
||||
Dim cppDir = Folder.Startup + "Apps\Support\VC"
|
||||
|
||||
If Not cppDir.PathStartsWith(Folder.System) AndAlso Not path.Contains(cppDir + ";") Then
|
||||
If Not path.Contains(cppDir + ";") Then
|
||||
path = cppDir + ";" + path
|
||||
End If
|
||||
|
||||
|
||||
@@ -233,13 +233,6 @@ Public Class Project
|
||||
Exit Property
|
||||
End If
|
||||
|
||||
If Text.Encoding.Default.CodePage <> 65001 AndAlso
|
||||
Not value.IsANSICompatible AndAlso Script.Engine = ScriptEngine.AviSynth Then
|
||||
|
||||
MsgWarn(Strings.NoUnicode)
|
||||
Exit Property
|
||||
End If
|
||||
|
||||
TargetFileValue = value
|
||||
NotifyPropertyChanged()
|
||||
End If
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Public Class Strings
|
||||
Public Shared Muxer As String = "A muxer merges different video, audio and subtitle files into a single container file which is the actual output file."
|
||||
Public Shared NoUnicode As String = $"Unicode filenames are not supported by AviSynth.{BR2}VapourSynth supports unicode, it can be enabled at:{BR2}Filters > Filter Setup > VapourSynth"
|
||||
Public Shared TaskDialogFooter As String = "[copymsg: Copy Message]"
|
||||
End Class
|
||||
|
||||
+40
-9
@@ -22,6 +22,18 @@ Public Class VideoScript
|
||||
RaiseEvent Changed(Me)
|
||||
End Sub
|
||||
|
||||
ReadOnly Property IsAviSynth As Boolean
|
||||
Get
|
||||
Return Engine = ScriptEngine.AviSynth
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property IsVapourSynth As Boolean
|
||||
Get
|
||||
Return Engine = ScriptEngine.VapourSynth
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Overridable ReadOnly Property FileType As String
|
||||
Get
|
||||
Return If(Engine = ScriptEngine.VapourSynth, "vpy", "avs")
|
||||
@@ -169,15 +181,22 @@ Public Class VideoScript
|
||||
|
||||
<NonSerialized()> Public LastCode As String
|
||||
<NonSerialized()> Public LastPath As String
|
||||
<NonSerialized()> Public LastAvsCodePage As Integer
|
||||
|
||||
Sub Synchronize(Optional convertToRGB As Boolean = False,
|
||||
Optional comparePath As Boolean = True,
|
||||
Optional flipVertical As Boolean = False)
|
||||
Sub Synchronize(
|
||||
Optional convertToRGB As Boolean = False,
|
||||
Optional comparePath As Boolean = True,
|
||||
Optional flipVertical As Boolean = False,
|
||||
Optional avsEncoding As Encoding = Nothing)
|
||||
|
||||
If Path = "" Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If avsEncoding Is Nothing Then
|
||||
avsEncoding = TextEncoding.EncodingOfSystem
|
||||
End If
|
||||
|
||||
Dim srcFilter = GetFilter("Source")
|
||||
|
||||
If Not srcFilter Is Nothing AndAlso Not srcFilter.Script.Contains("(") Then
|
||||
@@ -230,12 +249,16 @@ clipname.set_output()
|
||||
End If
|
||||
End If
|
||||
|
||||
If Me.Error <> "" OrElse code <> LastCode OrElse (comparePath AndAlso Path <> LastPath) Then
|
||||
Dim changedAvsEncoding = Engine = ScriptEngine.AviSynth AndAlso LastAvsCodePage <> avsEncoding.CodePage
|
||||
|
||||
If Me.Error <> "" OrElse code <> LastCode OrElse
|
||||
(comparePath AndAlso Path <> LastPath) OrElse changedAvsEncoding Then
|
||||
|
||||
If Path.Dir.DirExists Then
|
||||
If Engine = ScriptEngine.VapourSynth Then
|
||||
ModifyScript(code, Engine).WriteFile(Path, Encoding.UTF8)
|
||||
ModifyScript(code, Engine).WriteFileUTF8(Path)
|
||||
Else
|
||||
ModifyScript(code, Engine).WriteFileDefault(Path)
|
||||
ModifyScript(code, Engine).WriteFile(Path, TextEncoding.EncodingOfProcess)
|
||||
End If
|
||||
|
||||
If Not Package.AviSynth.VerifyOK OrElse
|
||||
@@ -257,6 +280,14 @@ clipname.set_output()
|
||||
Me.Error = server.Error
|
||||
End Using
|
||||
|
||||
If Engine = ScriptEngine.AviSynth Then
|
||||
If Not avsEncoding Is TextEncoding.EncodingOfProcess Then
|
||||
ModifyScript(code, Engine).WriteFile(Path, avsEncoding)
|
||||
End If
|
||||
|
||||
LastAvsCodePage = avsEncoding.CodePage
|
||||
End If
|
||||
|
||||
LastCode = code
|
||||
LastPath = Path
|
||||
End If
|
||||
@@ -532,12 +563,12 @@ clipname.set_output()
|
||||
End Function
|
||||
|
||||
Function GetInfo() As ServerInfo
|
||||
Synchronize(False, False)
|
||||
Synchronize(False, False, avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
Return Info
|
||||
End Function
|
||||
|
||||
Function GetError() As String
|
||||
Synchronize(False, False)
|
||||
Synchronize(False, False, avsEncoding:=TextEncoding.EncodingOfProcess)
|
||||
Return Me.Error
|
||||
End Function
|
||||
|
||||
@@ -892,7 +923,7 @@ Public Class FilterCategory
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Anti-Aliasing | ediAA", "clip = muvsfunc.ediaa(clip)"))
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Anti-Aliasing | Santiag", "clip = havsfunc.santiag(c=clip, opencl=$select:msg:Use GPU Enabled Feature?;True;False$)"))
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Anti-Aliasing | MAA", "clip = muvsfunc.maa(clip)"))
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Sharpen | LSFmod", "clip = havsfunc.LSFmod(clip, defaults='slow', strength=100, Smode=5, Smethod=3, kernel=11, preblur='OFF', secure=True, Szrp= 16, Spwr= 4, SdmpLo= 4, SdmpHi= 48, Lmode=4, overshoot=1, undershoot=1, soft=-2, soothe=True, keep=20, edgemode=0, edgemaskHQ=True, ss_x= 1.50, ss_y=1.50)"))
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Sharpen | LSFmod", "clip = havsfunc.LSFmod(clip, defaults='slow', strength=100, Smode=5, Smethod=3, kernel=11, secure=True, Szrp= 16, Spwr= 4, SdmpLo= 4, SdmpHi= 48, Lmode=4, overshoot=1, undershoot=1, soft=-2, soothe=True, keep=20, edgemode=0, edgemaskHQ=True, ss_x= 1.50, ss_y=1.50)"))
|
||||
line.Filters.Add(New VideoFilter(line.Name, "Sharpen | SharpAAMcmod", "clip = muvsfunc.SharpAAMcmod(clip)"))
|
||||
ret.Add(line)
|
||||
|
||||
|
||||
@@ -7,6 +7,6 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyCopyright("Copyright (C) 2002-2020 StaxRip authors")>
|
||||
<Assembly: ComVisible(False)>
|
||||
<Assembly: Guid("54d5dc0f-6ba7-42f0-a82f-9c71d561cb8b")>
|
||||
<Assembly: AssemblyVersion("2.1.5.4")>
|
||||
<Assembly: AssemblyFileVersion("2.1.5.4")>
|
||||
<Assembly: AssemblyVersion("2.1.5.5")>
|
||||
<Assembly: AssemblyFileVersion("2.1.5.5")>
|
||||
<Assembly: AssemblyDescription("Video encoding app")>
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
|
||||
</windowsSettings>
|
||||
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
|
||||
@@ -73,6 +73,9 @@
|
||||
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
@@ -123,6 +126,7 @@
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("2.0.0.0")>
|
||||
<Assembly: AssemblyVersion("2.1.0.0")>
|
||||
<Assembly: AssemblyFileVersion("2.1.0.0")>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
|
||||
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
|
||||
</assembly>
|
||||
+22
-8
@@ -1,4 +1,5 @@
|
||||
Imports System.Drawing.Drawing2D
|
||||
|
||||
Imports System.Drawing.Drawing2D
|
||||
Imports System.Drawing.Imaging
|
||||
Imports System.Drawing.Text
|
||||
Imports System.Globalization
|
||||
@@ -15,28 +16,41 @@ Public Class ImageHelp
|
||||
End Function
|
||||
|
||||
Shared Function GetSymbolImage(symbol As Symbol) As Image
|
||||
If Not FontFilesExist Then Return Nothing
|
||||
If Not FontFilesExist Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim legacy = OSVersion.Current < OSVersion.Windows10
|
||||
|
||||
If Coll Is Nothing Then
|
||||
Coll = New PrivateFontCollection
|
||||
Coll.AddFontFile(AwesomePath)
|
||||
If legacy Then Coll.AddFontFile(SegoePath)
|
||||
|
||||
If legacy Then
|
||||
Coll.AddFontFile(SegoePath)
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim family As FontFamily
|
||||
|
||||
If CInt(symbol) > 61400 Then
|
||||
If Coll.Families.Count > 0 Then family = Coll.Families(0)
|
||||
If Coll.Families.Count > 0 Then
|
||||
family = Coll.Families(0)
|
||||
End If
|
||||
Else
|
||||
If legacy Then
|
||||
If Coll.Families.Count > 1 Then family = Coll.Families(1)
|
||||
If Coll.Families.Count > 1 Then
|
||||
family = Coll.Families(1)
|
||||
End If
|
||||
Else
|
||||
family = New FontFamily("Segoe MDL2 Assets")
|
||||
End If
|
||||
End If
|
||||
|
||||
If family Is Nothing Then Return Nothing
|
||||
If family Is Nothing Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim font As New Font(family, 12)
|
||||
Dim fontHeight = font.Height
|
||||
Dim bitmap As New Bitmap(CInt(fontHeight * 1.1F), CInt(fontHeight * 1.1F))
|
||||
@@ -110,7 +124,7 @@ Public Class Thumbnails
|
||||
Dim count = columnCount * rowCount
|
||||
Dim bitmaps As New List(Of Bitmap)
|
||||
|
||||
script.Synchronize(True, True, True)
|
||||
script.Synchronize(True, True, True, TextEncoding.EncodingOfProcess)
|
||||
|
||||
Using server = FrameServerFactory.Create(script.Path)
|
||||
Dim serverPos As Integer
|
||||
@@ -290,4 +304,4 @@ Public Class Thumbnails
|
||||
End Try
|
||||
End Using
|
||||
End Sub
|
||||
End Class
|
||||
End Class
|
||||
|
||||
@@ -355,6 +355,9 @@ Public Class ToolStripRendererEx
|
||||
|
||||
If (RenderMode = ToolStripRenderModeEx.SystemDefault OrElse
|
||||
RenderMode = ToolStripRenderModeEx.SystemAuto) AndAlso
|
||||
OSVersion.Current >= OSVersion.Windows8 Then Return True
|
||||
OSVersion.Current >= OSVersion.Windows8 Then
|
||||
|
||||
Return True
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -102,7 +102,7 @@ Tools
|
||||
"Zs_RF_Shared","AviSynth Script","Zs_RF_Shared.avsi","1.127","2020-05-31"
|
||||
"7zip","Console App","7za.exe","19.0","2019-02-21"
|
||||
"aomenc","Console App","aomenc.exe","2.0.1-1118-gbe4ee75fd-x64-msvc1929 Patman","2020-12-23"
|
||||
"AutoCrop","Console App","AutoCrop.exe","2.0.0.0","2020-08-02"
|
||||
"AutoCrop","Console App","AutoCrop.exe","2.1.0.0","2020-12-30"
|
||||
"avs2pipemod","Console App","avs2pipemod64.exe","1.1.1","2016-08-14"
|
||||
"AVSMeter","Console App","AVSMeter64.exe","3.0.7.0","2020-11-16"
|
||||
"eac3to","Console App","eac3to.exe","3.34","2017-11-19"
|
||||
@@ -124,8 +124,8 @@ Tools
|
||||
"SVT-AV1","Console App","SvtAv1EncApp.exe","0.8.6","2020-11-29"
|
||||
"VCEEnc","Console App","VCEEncC64.exe","6.07","2020-11-23"
|
||||
"vspipe","Console App","vspipe.exe","r52","2020-08-20"
|
||||
"x264","Console App","x264.exe","M-0.161.3018-0417-64-10.2.0","2020-09-06"
|
||||
"x265","Console App","x265.exe","x265 3.4+53-ge4afbd100 2020-11-02 Yuuki-Asuna/qyot27","2020-11-02"
|
||||
"x264","Console App","x264.exe","M-0.161.3027-4121277-x64-gcc10.2.0 Patman","2020-12-16"
|
||||
"x265","Console App","x265.exe","M-3.4+28 gcc10.2.0 Yuuki-Asuna/msg7086/DJATOM/Patman","2020-12-30"
|
||||
"xvid_encraw","Console App","xvid_encraw.exe","1.3.7",""
|
||||
"BDSup2Sub++","GUI App","bdsup2sub++.exe","1.0.3","2018-05-09"
|
||||
"chapterEditor","GUI App","chapterEditor.exe","1.25","2020-10-04"
|
||||
@@ -135,10 +135,10 @@ Tools
|
||||
"MKVToolnix GUI","GUI App","mkvtoolnix-gui.exe","51.0.0","2020-10-04"
|
||||
"MPC-BE","GUI App","mpc-be64.exe","",""
|
||||
"MPC-HC","GUI App","mpc-hc64.exe","","2017-07-16"
|
||||
"mpv.net","GUI App","mpvnet.exe","5.4.8.6","2020-12-28"
|
||||
"mpv.net","GUI App","mpvnet.exe","5.4.8.6","2020-12-30"
|
||||
"Subtitle Edit","GUI App","SubtitleEdit.exe","3.5.18","2020-11-09"
|
||||
"VSRip","GUI App","VSRip.exe","1.0.0.7","2011-07-14"
|
||||
"Apple QuickTime","Library","CoreAudioToolbox.dll",,""
|
||||
"Apple QuickTime","Library","CoreAudioToolbox.dll","","2020-05-06"
|
||||
"AviSynth","Library","AviSynth.dll","3.6.2 test 6","2020-12-10"
|
||||
"DirectX 9","Library","d3d9.dll","","2020-12-09"
|
||||
"FFTW","Library","libfftw3-3.dll","3.3.8","2018-12-20"
|
||||
@@ -152,6 +152,7 @@ Tools
|
||||
"AWarpSharp2","VapourSynth Plugin","libawarpsharp2.dll","2018-06-18","2019-01-01"
|
||||
"BM3D","VapourSynth Plugin","BM3D.dll","r8","2019-01-03"
|
||||
"Bwdif","VapourSynth Plugin","Bwdif.dll","r2","2020-06-19"
|
||||
"CAS","VapourSynth Plugin","CAS.dll","r2","2020-07-05"
|
||||
"CNR2","VapourSynth Plugin","libcnr2.dll","2016-07-02","2019-01-01"
|
||||
"CTMF","VapourSynth Plugin","CTMF.dll","2017-06-02","2019-01-01"
|
||||
"d2vsource","VapourSynth Plugin","d2vsource.dll","1.2","2019-08-06"
|
||||
@@ -1504,6 +1505,16 @@ Filters: bwdif.Bwdif
|
||||
https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Bwdif
|
||||
|
||||
|
||||
CAS
|
||||
~~~
|
||||
|
||||
Contrast Adaptive Sharpening.
|
||||
|
||||
Filters: cas.CAS
|
||||
|
||||
https://github.com/HomeOfVapourSynthEvolution/VapourSynth-CAS
|
||||
|
||||
|
||||
CNR2
|
||||
~~~~
|
||||
|
||||
|
||||
Reference in New Issue
Block a user