Skip to content

Commit 0aefe51

Browse files
authoredDec 19, 2022
v1.1.2
- Add anti-aliasing VapourSynth filter (EEDIAA) - Add deinterlacing FFmpeg filter (yadif) - Other miscellaneous patches and minor bug fixes
1 parent 503d1d2 commit 0aefe51

16 files changed

+968
-265
lines changed
 

‎Arguments/Argument.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#ifndef ARGUMENT_H
44
#define ARGUMENT_H
55

6-
#include <QString>
6+
#include <QtCore/QString>
77

88
class Argument {
99
protected:
@@ -21,10 +21,13 @@ class Argument {
2121
static QString ReferenceFrame(int);
2222
static QString MasterDisplay(QString);
2323
static QString HDR10Opt();
24+
static QString Deinterlace();
25+
static QString DeinterlaceCUDA();
2426
static QString Colors(QString, QString, QString, QString);
2527
static QString MaxCllFall(int, int);
2628
static QString HDRPlus(QString);
2729
static QString MapVideo(QString, QString, int);
30+
static QString MapMux(QString, int);
2831
static QString MapAll(QString, QString);
2932
static QString DownMix(double);
3033
static QString PixelFormat(QString);
@@ -46,6 +49,7 @@ class Argument {
4649
static QString FlipVideo(QString);
4750
static QString NoAutoRotate();
4851
static QString AudioTitle(QString, QString);
52+
static QString AudioLang(QString, QString);
4953
static QString Tier(int);
5054
static QString SharpenVideo(QString, QString);
5155
static QString AddTimecodes(int, int, int, int);

‎Arguments/MiscArgs.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,20 @@ QString Argument::AddColin() {
3939
/// <returns>String representation of the argument.</returns>
4040
QString Argument::ConcludeFilters() {
4141
return QString("\"");
42+
}
43+
44+
/// <summary>
45+
/// Applies the YADIF deinterlacing filter.
46+
/// </summary>
47+
/// <returns>String representation of the argument.</returns>
48+
QString Argument::Deinterlace() {
49+
return QString("yadif");
50+
}
51+
52+
/// <summary>
53+
/// Applies the YADIF (CUDA) deinterlacing filter.
54+
/// </summary>
55+
/// <returns>String representation of the argument.</returns>
56+
QString Argument::DeinterlaceCUDA() {
57+
return QString("yadif_cuda");
4258
}

‎EncodeGUI.filters

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Source Files">
5+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6+
<Extensions>qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7+
</Filter>
8+
<Filter Include="Header Files">
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11+
</Filter>
12+
<Filter Include="Resource Files">
13+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14+
<Extensions>qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15+
</Filter>
16+
<Filter Include="Form Files">
17+
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
18+
<Extensions>ui</Extensions>
19+
</Filter>
20+
<Filter Include="Translation Files">
21+
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
22+
<Extensions>ts</Extensions>
23+
</Filter>
24+
</ItemGroup>
25+
<ItemGroup>
26+
<QtRcc Include="QtWidgetsApplication1.qrc">
27+
<Filter>Resource Files</Filter>
28+
</QtRcc>
29+
<QtUic Include="QtWidgetsApplication1.ui">
30+
<Filter>Form Files</Filter>
31+
</QtUic>
32+
<QtMoc Include="QtWidgetsApplication1.h">
33+
<Filter>Header Files</Filter>
34+
</QtMoc>
35+
<ClCompile Include="QtWidgetsApplication1.cpp">
36+
<Filter>Source Files</Filter>
37+
</ClCompile>
38+
<ResourceCompile Include="$pro_name$.rc">
39+
</ResourceCompile>
40+
<None Include="$pro_name$.ico">
41+
<Filter>Resource Files</Filter>
42+
</None>
43+
<None Include="$pro_name$.def">
44+
<Filter>Resource Files</Filter>
45+
</None>
46+
47+
</ItemGroup>
48+
</Project>

‎EncodeGUI.sln

+15-9
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,30 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.0.31912.275
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EncodeGUI", "EncodeGUI.vcxproj", "{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}"
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EncodeGUI", "EncodeGUI.vcxproj", "{098B73F3-16E7-4914-A051-CA4327E63F49}"
77
EndProject
88
Global
99
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1010
Debug|Any CPU = Debug|Any CPU
1111
Debug|x64 = Debug|x64
12+
Release_Linux|Any CPU = Release_Linux|Any CPU
13+
Release_Linux|x64 = Release_Linux|x64
1214
Release|Any CPU = Release|Any CPU
1315
Release|x64 = Release|x64
1416
EndGlobalSection
1517
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Debug|Any CPU.ActiveCfg = Debug|x64
17-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Debug|Any CPU.Build.0 = Debug|x64
18-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Debug|x64.ActiveCfg = Debug|x64
19-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Debug|x64.Build.0 = Debug|x64
20-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Release|Any CPU.ActiveCfg = Release|x64
21-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Release|Any CPU.Build.0 = Release|x64
22-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Release|x64.ActiveCfg = Release|x64
23-
{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}.Release|x64.Build.0 = Release|x64
18+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Debug|Any CPU.ActiveCfg = Debug|x64
19+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Debug|Any CPU.Build.0 = Debug|x64
20+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Debug|x64.ActiveCfg = Debug|x64
21+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Debug|x64.Build.0 = Debug|x64
22+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release_Linux|Any CPU.ActiveCfg = Release_Linux|x64
23+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release_Linux|Any CPU.Build.0 = Release_Linux|x64
24+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release_Linux|x64.ActiveCfg = Release_Linux|x64
25+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release_Linux|x64.Build.0 = Release_Linux|x64
26+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release|Any CPU.ActiveCfg = Release|x64
27+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release|Any CPU.Build.0 = Release|x64
28+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release|x64.ActiveCfg = Release|x64
29+
{098B73F3-16E7-4914-A051-CA4327E63F49}.Release|x64.Build.0 = Release|x64
2430
EndGlobalSection
2531
GlobalSection(SolutionProperties) = preSolution
2632
HideSolutionNode = FALSE

‎EncodeGUI.user

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup />
4+
</Project>

‎EncodeGUI.vcxproj

+55-43
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,89 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4-
<ProjectConfiguration Include="Debug|x64">
5-
<Configuration>Debug</Configuration>
6-
<Platform>x64</Platform>
7-
</ProjectConfiguration>
84
<ProjectConfiguration Include="Release|x64">
95
<Configuration>Release</Configuration>
106
<Platform>x64</Platform>
117
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release_linux|x64">
9+
<Configuration>Release_linux</Configuration>
10+
<Platform>x64</Platform>
11+
</ProjectConfiguration>
1212
</ItemGroup>
1313
<PropertyGroup Label="Globals">
14-
<ProjectGuid>{0908C6D5-D40F-4717-BCBA-6E9C53814CFA}</ProjectGuid>
14+
<ProjectGuid>{098B73F3-16E7-4914-A051-CA4327E63F49}</ProjectGuid>
1515
<Keyword>QtVS_v304</Keyword>
16-
<WindowsTargetPlatformVersion Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">10.0.19041.0</WindowsTargetPlatformVersion>
1716
<WindowsTargetPlatformVersion Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">10.0.19041.0</WindowsTargetPlatformVersion>
17+
<ApplicationType Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">Linux</ApplicationType>
18+
<ApplicationTypeRevision Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">1.0</ApplicationTypeRevision>
19+
<TargetLinuxPlatform Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">Generic</TargetLinuxPlatform>
20+
<LinuxProjectType Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">{D51BCBC9-82E9-4017-911E-C93873C4EA2B}</LinuxProjectType>
1821
<QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
1922
</PropertyGroup>
2023
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
21-
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="Configuration">
24+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
2225
<ConfigurationType>Application</ConfigurationType>
2326
<PlatformToolset>v143</PlatformToolset>
2427
</PropertyGroup>
25-
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
28+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'" Label="Configuration">
2629
<ConfigurationType>Application</ConfigurationType>
27-
<PlatformToolset>v143</PlatformToolset>
28-
<CLRSupport>false</CLRSupport>
30+
<PlatformToolset>Remote_GCC_1_0</PlatformToolset>
31+
<UseDebugLibraries>false</UseDebugLibraries>
32+
<RemoteCopyIncludeDirectories>
33+
</RemoteCopyIncludeDirectories>
2934
</PropertyGroup>
3035
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
3136
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
3237
<Import Project="$(QtMsBuild)\qt_defaults.props" />
3338
</ImportGroup>
34-
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
35-
<QtInstall>6.2.2</QtInstall>
36-
<QtModules>core;gui;widgets;networkauth</QtModules>
37-
<QtBuildConfig>debug</QtBuildConfig>
38-
</PropertyGroup>
3939
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
4040
<QtInstall>6.2.2</QtInstall>
41-
<QtModules>core;network;gui;widgets</QtModules>
41+
<QtModules>core;gui;network;widgets</QtModules>
4242
<QtBuildConfig>release</QtBuildConfig>
4343
</PropertyGroup>
44+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'" Label="QtSettings">
45+
<QtInstall>6.4.0</QtInstall>
46+
<QtModules>core;gui;network;widgets</QtModules>
47+
<QtBuildConfig>release</QtBuildConfig>
48+
<QtQMakeTemplate>app</QtQMakeTemplate>
49+
<QtPathBinaries>6.4.0/gcc_64/bin</QtPathBinaries>
50+
<QtPathLibraryExecutables>6.4.0/gcc_64/lib</QtPathLibraryExecutables>
51+
<QtHeaderSearchPath>
52+
</QtHeaderSearchPath>
53+
</PropertyGroup>
4454
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
4555
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
4656
</Target>
4757
<ImportGroup Label="ExtensionSettings" />
4858
<ImportGroup Label="Shared" />
49-
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
59+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
5060
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5161
<Import Project="$(QtMsBuild)\Qt.props" />
5262
</ImportGroup>
53-
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
63+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">
5464
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5565
<Import Project="$(QtMsBuild)\Qt.props" />
5666
</ImportGroup>
5767
<PropertyGroup Label="UserMacros" />
58-
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" />
5968
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
60-
<ManagedAssembly>true</ManagedAssembly>
6169
</PropertyGroup>
62-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
63-
<ClCompile>
64-
<ExceptionHandling>Sync</ExceptionHandling>
65-
<AdditionalIncludeDirectories>C:\Users\Goose\source\repos\EncodeGUI\VS;C:\Users\Goose\source\repos\EncodeGUI;C:\Users\Goose\source\repos\EncodeGUI\Arguments;C:\Users\Goose\source\repos\EncodeGUI\UI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
66-
</ClCompile>
67-
</ItemDefinitionGroup>
68-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="Configuration">
70+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'">
71+
<ProjectPublicIncludePath>C:\Users\Goose\AppData\Local\Microsoft\Linux\HeaderCache\1.0\-2016259881\home\goose\Qt\6.4.0\gcc_64\include;C:\Users\Goose\AppData\Local\Microsoft\Linux\HeaderCache\1.0\-2016259881\usr\include;$(ProjectPublicIncludePath)</ProjectPublicIncludePath>
72+
<IncludePath>
73+
</IncludePath>
74+
<RemoteCopySourceMethod>rsync</RemoteCopySourceMethod>
75+
</PropertyGroup>
76+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_linux|x64'">
6977
<ClCompile>
70-
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
71-
<MultiProcessorCompilation>true</MultiProcessorCompilation>
72-
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
73-
<Optimization>Disabled</Optimization>
74-
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
78+
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
79+
<ForcedIncludeFiles>
80+
</ForcedIncludeFiles>
7581
</ClCompile>
82+
<QtRcc>
83+
<AdditionalIncludeDirectories>/include</AdditionalIncludeDirectories>
84+
</QtRcc>
7685
<Link>
77-
<SubSystem>Windows</SubSystem>
78-
<GenerateDebugInformation>true</GenerateDebugInformation>
86+
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
7987
</Link>
8088
</ItemDefinitionGroup>
8189
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
@@ -91,6 +99,11 @@
9199
<GenerateDebugInformation>false</GenerateDebugInformation>
92100
</Link>
93101
</ItemDefinitionGroup>
102+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release_linux|x64'" Label="Configuration">
103+
<ClCompile>
104+
<PositionIndependentCode>true</PositionIndependentCode>
105+
</ClCompile>
106+
</ItemDefinitionGroup>
94107
<ItemGroup>
95108
<ClCompile Include="Arguments\AudioArgs.cpp" />
96109
<ClCompile Include="Arguments\CodecArgs.cpp" />
@@ -107,10 +120,10 @@
107120
<ClCompile Include="Arguments\ProfileArgs.cpp" />
108121
<ClCompile Include="Arguments\RateControlArgs.cpp" />
109122
<ClCompile Include="Arguments\ResolutionArgs.cpp" />
110-
<ClCompile Include="Arguments\TierArgs.cpp" />
111-
<ClCompile Include="Arguments\TransposeArgs.cpp" />
112123
<ClCompile Include="Arguments\SharpenArgs.cpp" />
124+
<ClCompile Include="Arguments\TierArgs.cpp" />
113125
<ClCompile Include="Arguments\TimecodeArgs.cpp" />
126+
<ClCompile Include="Arguments\TransposeArgs.cpp" />
114127
<ClCompile Include="Arguments\TuneArgs.cpp" />
115128
<ClCompile Include="Arguments\VsPipeArgs.cpp" />
116129
<ClCompile Include="Checks\Files.cpp" />
@@ -121,9 +134,7 @@
121134
<ClCompile Include="IO\SubtitleInfo.cpp" />
122135
<ClCompile Include="IO\VideoInfo.cpp" />
123136
<ClCompile Include="IO\VideoInfoList.cpp" />
124-
<ClCompile Include="main.cpp">
125-
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsManaged>
126-
</ClCompile>
137+
<ClCompile Include="main.cpp" />
127138
<ClCompile Include="Process\FFLoaderBase.cpp" />
128139
<ClCompile Include="Process\MediaConfig.cpp" />
129140
<ClCompile Include="Process\ProcessWorker.cpp" />
@@ -133,8 +144,11 @@
133144
<ClCompile Include="Regex\ProgressInfoRegex.cpp" />
134145
<ClCompile Include="Regex\VideoInfoRegex.cpp" />
135146
<ClCompile Include="UI\Audio.cpp" />
147+
<ClCompile Include="UI\AV1.cpp" />
148+
<ClCompile Include="UI\AVC.cpp" />
136149
<ClCompile Include="UI\Config.cpp" />
137150
<ClCompile Include="UI\EncodeGUI.cpp" />
151+
<ClCompile Include="UI\HEVC.cpp" />
138152
<ClCompile Include="UI\Jobs.cpp" />
139153
<ClCompile Include="UI\MsgBox.cpp" />
140154
<ClCompile Include="UI\Preview.cpp" />
@@ -144,8 +158,6 @@
144158
<ClCompile Include="UI\Updater.cpp" />
145159
<ClCompile Include="UI\VPX.cpp" />
146160
<ClCompile Include="UI\VS.cpp" />
147-
<ClCompile Include="UI\AVC.cpp" />
148-
<ClCompile Include="UI\HEVC.cpp" />
149161
<ClCompile Include="VS\Colors.cpp" />
150162
<ClCompile Include="VS\RIFE.cpp" />
151163
<ClCompile Include="VS\SRMD.cpp" />
@@ -161,18 +173,18 @@
161173
<ClInclude Include="IO\ProgressInfo.h" />
162174
<ClInclude Include="IO\SubtitleInfo.h" />
163175
<ClInclude Include="IO\VideoInfo.h" />
164-
<QtMoc Include="Process\FFLoader.h" />
165176
<ClInclude Include="IO\VideoInfoList.h" />
166177
<ClInclude Include="Process\MediaConfig.h" />
167178
<ClInclude Include="Process\ScriptBuilder.h" />
179+
<QtMoc Include="Process\FFLoader.h" />
168180
<ClInclude Include="Regex\AudioSubInfoRegex.h" />
169181
<ClInclude Include="Regex\ProcessErrorRegex.h" />
170182
<ClInclude Include="Regex\ProgressInfoRegex.h" />
171183
<ClInclude Include="Regex\VideoInfoRegex.h" />
172184
<ClInclude Include="UI\Preview.h" />
173185
<ClInclude Include="UI\Updater.h" />
174-
<ClInclude Include="VS\VapourSynth.h" />
175186
<QtMoc Include="UI\EncodeGUI.h" />
187+
<ClInclude Include="VS\VapourSynth.h" />
176188
</ItemGroup>
177189
<ItemGroup>
178190
<QtUic Include="UI\EncodeGUI.ui" />

‎EncodeGUI.vcxproj.filters

+77-74
Original file line numberDiff line numberDiff line change
@@ -26,228 +26,231 @@
2626
<ClCompile Include="main.cpp">
2727
<Filter>Source Files</Filter>
2828
</ClCompile>
29-
<ClCompile Include="UI\EncodeGUI.cpp">
29+
<ClCompile Include="VS\Colors.cpp">
3030
<Filter>Source Files</Filter>
3131
</ClCompile>
32-
<ClCompile Include="Arguments\CodecArgs.cpp">
32+
<ClCompile Include="VS\RIFE.cpp">
3333
<Filter>Source Files</Filter>
3434
</ClCompile>
35-
<ClCompile Include="Arguments\ColorsArgs.cpp">
35+
<ClCompile Include="VS\SRMD.cpp">
3636
<Filter>Source Files</Filter>
3737
</ClCompile>
38-
<ClCompile Include="Arguments\EntropyArgs.cpp">
38+
<ClCompile Include="VS\SVPFlow.cpp">
3939
<Filter>Source Files</Filter>
4040
</ClCompile>
41-
<ClCompile Include="Arguments\FrameArgs.cpp">
41+
<ClCompile Include="VS\VapourSynth.cpp">
4242
<Filter>Source Files</Filter>
4343
</ClCompile>
44-
<ClCompile Include="Arguments\HDRArgs.cpp">
44+
<ClCompile Include="VS\Waifu2x.cpp">
4545
<Filter>Source Files</Filter>
4646
</ClCompile>
47-
<ClCompile Include="Arguments\MapArgs.cpp">
47+
<ClCompile Include="UI\Audio.cpp">
4848
<Filter>Source Files</Filter>
4949
</ClCompile>
50-
<ClCompile Include="Arguments\PresetArgs.cpp">
50+
<ClCompile Include="UI\AV1.cpp">
5151
<Filter>Source Files</Filter>
5252
</ClCompile>
53-
<ClCompile Include="Arguments\ProfileArgs.cpp">
53+
<ClCompile Include="UI\AVC.cpp">
5454
<Filter>Source Files</Filter>
5555
</ClCompile>
56-
<ClCompile Include="Arguments\RateControlArgs.cpp">
56+
<ClCompile Include="UI\Config.cpp">
5757
<Filter>Source Files</Filter>
5858
</ClCompile>
59-
<ClCompile Include="Arguments\ResolutionArgs.cpp">
59+
<ClCompile Include="UI\EncodeGUI.cpp">
6060
<Filter>Source Files</Filter>
6161
</ClCompile>
62-
<ClCompile Include="Arguments\TransposeArgs.cpp">
62+
<ClCompile Include="UI\HEVC.cpp">
6363
<Filter>Source Files</Filter>
6464
</ClCompile>
65-
<ClCompile Include="Arguments\SharpenArgs.cpp">
65+
<ClCompile Include="UI\Jobs.cpp">
6666
<Filter>Source Files</Filter>
6767
</ClCompile>
68-
<ClCompile Include="Arguments\TimecodeArgs.cpp">
68+
<ClCompile Include="UI\MsgBox.cpp">
6969
<Filter>Source Files</Filter>
7070
</ClCompile>
71-
<ClCompile Include="Arguments\TuneArgs.cpp">
71+
<ClCompile Include="UI\Preview.cpp">
7272
<Filter>Source Files</Filter>
7373
</ClCompile>
74-
<ClCompile Include="Arguments\VsPipeArgs.cpp">
74+
<ClCompile Include="UI\Script.cpp">
7575
<Filter>Source Files</Filter>
7676
</ClCompile>
77-
<ClCompile Include="Arguments\MiscArgs.cpp">
77+
<ClCompile Include="UI\Settings.cpp">
7878
<Filter>Source Files</Filter>
7979
</ClCompile>
80-
<ClCompile Include="Process\FFLoaderBase.cpp">
80+
<ClCompile Include="UI\Theora.cpp">
8181
<Filter>Source Files</Filter>
8282
</ClCompile>
83-
<ClCompile Include="Process\MediaConfig.cpp">
83+
<ClCompile Include="UI\Updater.cpp">
8484
<Filter>Source Files</Filter>
8585
</ClCompile>
86-
<ClCompile Include="Checks\Files.cpp">
86+
<ClCompile Include="UI\VPX.cpp">
8787
<Filter>Source Files</Filter>
8888
</ClCompile>
89-
<ClCompile Include="Checks\Process.cpp">
89+
<ClCompile Include="UI\VS.cpp">
9090
<Filter>Source Files</Filter>
9191
</ClCompile>
92-
<ClCompile Include="VS\RIFE.cpp">
92+
<ClCompile Include="Regex\AudioSubInfoRegex.cpp">
9393
<Filter>Source Files</Filter>
9494
</ClCompile>
95-
<ClCompile Include="VS\SVPFlow.cpp">
95+
<ClCompile Include="Regex\ProcessErrorRegex.cpp">
9696
<Filter>Source Files</Filter>
9797
</ClCompile>
98-
<ClCompile Include="VS\Waifu2x.cpp">
98+
<ClCompile Include="Regex\ProgressInfoRegex.cpp">
9999
<Filter>Source Files</Filter>
100100
</ClCompile>
101-
<ClCompile Include="VS\SRMD.cpp">
101+
<ClCompile Include="Regex\VideoInfoRegex.cpp">
102102
<Filter>Source Files</Filter>
103103
</ClCompile>
104-
<ClCompile Include="IO\ProcessError.cpp">
104+
<ClCompile Include="Process\FFLoaderBase.cpp">
105105
<Filter>Source Files</Filter>
106106
</ClCompile>
107-
<ClCompile Include="VS\Colors.cpp">
107+
<ClCompile Include="Process\MediaConfig.cpp">
108108
<Filter>Source Files</Filter>
109109
</ClCompile>
110-
<ClCompile Include="VS\VapourSynth.cpp">
110+
<ClCompile Include="Process\ProcessWorker.cpp">
111111
<Filter>Source Files</Filter>
112112
</ClCompile>
113-
<ClCompile Include="UI\Config.cpp">
113+
<ClCompile Include="Process\ScriptBuilder.cpp">
114114
<Filter>Source Files</Filter>
115115
</ClCompile>
116-
<ClCompile Include="UI\AVC.cpp">
116+
<ClCompile Include="IO\AudioInfo.cpp">
117117
<Filter>Source Files</Filter>
118118
</ClCompile>
119-
<ClCompile Include="UI\HEVC.cpp">
119+
<ClCompile Include="IO\ProcessError.cpp">
120120
<Filter>Source Files</Filter>
121121
</ClCompile>
122-
<ClCompile Include="UI\Script.cpp">
122+
<ClCompile Include="IO\ProgressInfo.cpp">
123123
<Filter>Source Files</Filter>
124124
</ClCompile>
125-
<ClCompile Include="UI\VS.cpp">
125+
<ClCompile Include="IO\SubtitleInfo.cpp">
126126
<Filter>Source Files</Filter>
127127
</ClCompile>
128-
<ClCompile Include="UI\Jobs.cpp">
128+
<ClCompile Include="IO\VideoInfo.cpp">
129129
<Filter>Source Files</Filter>
130130
</ClCompile>
131-
<ClCompile Include="UI\VPX.cpp">
131+
<ClCompile Include="IO\VideoInfoList.cpp">
132132
<Filter>Source Files</Filter>
133133
</ClCompile>
134-
<ClCompile Include="UI\MsgBox.cpp">
134+
<ClCompile Include="Checks\Files.cpp">
135135
<Filter>Source Files</Filter>
136136
</ClCompile>
137-
<ClCompile Include="UI\Audio.cpp">
137+
<ClCompile Include="Checks\Process.cpp">
138138
<Filter>Source Files</Filter>
139139
</ClCompile>
140-
<ClCompile Include="UI\Theora.cpp">
140+
<ClCompile Include="Arguments\AudioArgs.cpp">
141141
<Filter>Source Files</Filter>
142142
</ClCompile>
143-
<ClCompile Include="Arguments\MixArgs.cpp">
143+
<ClCompile Include="Arguments\CodecArgs.cpp">
144144
<Filter>Source Files</Filter>
145145
</ClCompile>
146-
<ClCompile Include="Arguments\PassArgs.cpp">
146+
<ClCompile Include="Arguments\ColorsArgs.cpp">
147147
<Filter>Source Files</Filter>
148148
</ClCompile>
149-
<ClCompile Include="Arguments\IOArgs.cpp">
149+
<ClCompile Include="Arguments\EntropyArgs.cpp">
150150
<Filter>Source Files</Filter>
151151
</ClCompile>
152-
<ClCompile Include="UI\Settings.cpp">
152+
<ClCompile Include="Arguments\FrameArgs.cpp">
153153
<Filter>Source Files</Filter>
154154
</ClCompile>
155-
<ClCompile Include="Process\ProcessWorker.cpp">
155+
<ClCompile Include="Arguments\HDRArgs.cpp">
156156
<Filter>Source Files</Filter>
157157
</ClCompile>
158-
<ClCompile Include="Arguments\TierArgs.cpp">
158+
<ClCompile Include="Arguments\IOArgs.cpp">
159159
<Filter>Source Files</Filter>
160160
</ClCompile>
161-
<ClCompile Include="UI\Preview.cpp">
161+
<ClCompile Include="Arguments\MapArgs.cpp">
162162
<Filter>Source Files</Filter>
163163
</ClCompile>
164-
<ClCompile Include="IO\ProgressInfo.cpp">
164+
<ClCompile Include="Arguments\MiscArgs.cpp">
165165
<Filter>Source Files</Filter>
166166
</ClCompile>
167-
<ClCompile Include="IO\VideoInfo.cpp">
167+
<ClCompile Include="Arguments\MixArgs.cpp">
168168
<Filter>Source Files</Filter>
169169
</ClCompile>
170-
<ClCompile Include="Regex\VideoInfoRegex.cpp">
170+
<ClCompile Include="Arguments\PassArgs.cpp">
171171
<Filter>Source Files</Filter>
172172
</ClCompile>
173-
<ClCompile Include="Regex\AudioSubInfoRegex.cpp">
173+
<ClCompile Include="Arguments\PresetArgs.cpp">
174174
<Filter>Source Files</Filter>
175175
</ClCompile>
176-
<ClCompile Include="Regex\ProcessErrorRegex.cpp">
176+
<ClCompile Include="Arguments\ProfileArgs.cpp">
177177
<Filter>Source Files</Filter>
178178
</ClCompile>
179-
<ClCompile Include="IO\AudioInfo.cpp">
179+
<ClCompile Include="Arguments\RateControlArgs.cpp">
180180
<Filter>Source Files</Filter>
181181
</ClCompile>
182-
<ClCompile Include="IO\SubtitleInfo.cpp">
182+
<ClCompile Include="Arguments\ResolutionArgs.cpp">
183183
<Filter>Source Files</Filter>
184184
</ClCompile>
185-
<ClCompile Include="IO\VideoInfoList.cpp">
185+
<ClCompile Include="Arguments\SharpenArgs.cpp">
186186
<Filter>Source Files</Filter>
187187
</ClCompile>
188-
<ClCompile Include="Regex\ProgressInfoRegex.cpp">
188+
<ClCompile Include="Arguments\TierArgs.cpp">
189189
<Filter>Source Files</Filter>
190190
</ClCompile>
191-
<ClCompile Include="Process\ScriptBuilder.cpp">
191+
<ClCompile Include="Arguments\TimecodeArgs.cpp">
192192
<Filter>Source Files</Filter>
193193
</ClCompile>
194-
<ClCompile Include="Arguments\AudioArgs.cpp">
194+
<ClCompile Include="Arguments\TransposeArgs.cpp">
195195
<Filter>Source Files</Filter>
196196
</ClCompile>
197-
<ClCompile Include="UI\Updater.cpp">
197+
<ClCompile Include="Arguments\TuneArgs.cpp">
198+
<Filter>Source Files</Filter>
199+
</ClCompile>
200+
<ClCompile Include="Arguments\VsPipeArgs.cpp">
198201
<Filter>Source Files</Filter>
199202
</ClCompile>
200203
</ItemGroup>
201204
<ItemGroup>
202-
<ClInclude Include="Arguments\Argument.h">
205+
<ClInclude Include="VS\VapourSynth.h">
203206
<Filter>Header Files</Filter>
204207
</ClInclude>
205-
<ClInclude Include="Checks\Checks.h">
208+
<ClInclude Include="UI\Preview.h">
206209
<Filter>Header Files</Filter>
207210
</ClInclude>
208-
<ClInclude Include="VS\VapourSynth.h">
211+
<ClInclude Include="UI\Updater.h">
209212
<Filter>Header Files</Filter>
210213
</ClInclude>
211-
<ClInclude Include="IO\VideoInfo.h">
214+
<ClInclude Include="Regex\AudioSubInfoRegex.h">
212215
<Filter>Header Files</Filter>
213216
</ClInclude>
214-
<ClInclude Include="IO\ProgressInfo.h">
217+
<ClInclude Include="Regex\ProcessErrorRegex.h">
215218
<Filter>Header Files</Filter>
216219
</ClInclude>
217-
<ClInclude Include="IO\AudioInfo.h">
220+
<ClInclude Include="Regex\ProgressInfoRegex.h">
218221
<Filter>Header Files</Filter>
219222
</ClInclude>
220-
<ClInclude Include="IO\SubtitleInfo.h">
223+
<ClInclude Include="Regex\VideoInfoRegex.h">
221224
<Filter>Header Files</Filter>
222225
</ClInclude>
223-
<ClInclude Include="IO\VideoInfoList.h">
226+
<ClInclude Include="Process\MediaConfig.h">
224227
<Filter>Header Files</Filter>
225228
</ClInclude>
226-
<ClInclude Include="IO\ProcessError.h">
229+
<ClInclude Include="Process\ScriptBuilder.h">
227230
<Filter>Header Files</Filter>
228231
</ClInclude>
229-
<ClInclude Include="Regex\VideoInfoRegex.h">
232+
<ClInclude Include="IO\AudioInfo.h">
230233
<Filter>Header Files</Filter>
231234
</ClInclude>
232-
<ClInclude Include="Regex\AudioSubInfoRegex.h">
235+
<ClInclude Include="IO\ProcessError.h">
233236
<Filter>Header Files</Filter>
234237
</ClInclude>
235-
<ClInclude Include="Regex\ProcessErrorRegex.h">
238+
<ClInclude Include="IO\ProgressInfo.h">
236239
<Filter>Header Files</Filter>
237240
</ClInclude>
238-
<ClInclude Include="Regex\ProgressInfoRegex.h">
241+
<ClInclude Include="IO\SubtitleInfo.h">
239242
<Filter>Header Files</Filter>
240243
</ClInclude>
241-
<ClInclude Include="Process\ScriptBuilder.h">
244+
<ClInclude Include="IO\VideoInfo.h">
242245
<Filter>Header Files</Filter>
243246
</ClInclude>
244-
<ClInclude Include="Process\MediaConfig.h">
247+
<ClInclude Include="IO\VideoInfoList.h">
245248
<Filter>Header Files</Filter>
246249
</ClInclude>
247-
<ClInclude Include="UI\Preview.h">
250+
<ClInclude Include="Checks\Checks.h">
248251
<Filter>Header Files</Filter>
249252
</ClInclude>
250-
<ClInclude Include="UI\Updater.h">
253+
<ClInclude Include="Arguments\Argument.h">
251254
<Filter>Header Files</Filter>
252255
</ClInclude>
253256
</ItemGroup>

‎EncodeGUI.vcxproj.user

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
<PropertyGroup>
44
<ShowAllFiles>true</ShowAllFiles>
55
</PropertyGroup>
6-
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7-
<QtLastBackgroundBuild>2022-06-03T19:28:44.3259827Z</QtLastBackgroundBuild>
6+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_linux|x64'">
7+
<RemoteDebuggingMode>gdb</RemoteDebuggingMode>
8+
<DebuggerFlavor>LinuxDebugger</DebuggerFlavor>
9+
<SourceMap>
10+
</SourceMap>
11+
</PropertyGroup>
12+
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release_linux|x64'">
13+
<QtLastBackgroundBuild>2022-10-23T07:53:13.2454908Z</QtLastBackgroundBuild>
814
</PropertyGroup>
915
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
10-
<QtLastBackgroundBuild>2022-06-03T19:28:44.7397445Z</QtLastBackgroundBuild>
16+
<QtLastBackgroundBuild>2022-10-23T07:53:13.2841503Z</QtLastBackgroundBuild>
1117
</PropertyGroup>
1218
</Project>

‎Process/ScriptBuilder.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,22 @@ void ScriptBuilder::SetSVPFlow(QString super, QString analyse, QString smooth, i
1818
ScriptList.append(VapourSynth::SVPFlow(super, analyse, smooth, num, den));
1919
}
2020

21-
void ScriptBuilder::SetWaifu2x(int noise, int scale, int model, int id, int thread, int precision) {
22-
ScriptList.append(VapourSynth::Waifu2x(noise, scale, model, id, thread, precision));
21+
void ScriptBuilder::SetWaifu2x(int noise, int scale, int model, int id, int thread, int precision, bool dual, int gpu1, int gpu2) {
22+
ScriptList.append(VapourSynth::Waifu2x(noise, scale, model, id, thread, precision, dual, gpu1, gpu2));
2323
}
2424

25-
void ScriptBuilder::SetSRMD(int scale, int noise, int id, int thread, QString tta) {
26-
ScriptList.append(VapourSynth::SRMD(scale, noise, id, thread, tta));
25+
void ScriptBuilder::SetSRMD(int scale, int noise, int id, int thread, QString tta, bool dual, int gpu1, int gpu2) {
26+
ScriptList.append(VapourSynth::SRMD(scale, noise, id, thread, tta, dual, gpu1, gpu2));
2727
}
2828

2929
void ScriptBuilder::SetRGB(QString matrix, QString transfer, QString primaries) {
3030
ScriptList.append(VapourSynth::RGB(matrix, transfer, primaries));
3131
}
3232

33+
void ScriptBuilder::SetAntiA() {
34+
ScriptList.append(VapourSynth::AntiA());
35+
}
36+
3337
void ScriptBuilder::SetColorsInOut(QString format, QString matrix_in, QString transfer_in, QString primaries_in, QString matrix, QString transfer, QString primaries) {
3438
ScriptList.append(VapourSynth::ColorsInOut(format, matrix_in, transfer_in, primaries_in, matrix, transfer, primaries));
3539
}

‎Process/ScriptBuilder.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
#include "..\VS\VapourSynth.h"
77

8-
#include <QString>
8+
#include <QtCore/QString>
99

1010
class ScriptBuilder : protected VapourSynth {
1111
public:
@@ -14,14 +14,15 @@ class ScriptBuilder : protected VapourSynth {
1414
static void SetRIFENcnn(int, int, int, QString, QString, QString);
1515
static void SetSVPFlowNoob(QString, int, int, int, int, int, int);
1616
static void SetSVPFlow(QString, QString, QString, int, int);
17-
static void SetWaifu2x(int, int, int, int, int, int);
18-
static void SetSRMD(int, int, int, int, QString);
17+
static void SetWaifu2x(int, int, int, int, int, int, bool, int, int);
18+
static void SetSRMD(int, int, int, int, QString, bool, int, int);
1919
static void SetRGB(QString, QString, QString);
2020
static void SetColorsInOut(QString, QString, QString, QString, QString, QString, QString);
2121
static void SetColorsOut(QString, QString, QString, QString);
2222
static void SetSCDetect(QString);
2323
static void SetPlugin(QString);
2424
static void SetInput(QString, QString);
25+
static void SetAntiA();
2526
static void SetInclude();
2627
static void SetConcludeClip();
2728
static void SetNewLine();

‎UI/Config.cpp

+120-24
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,38 @@ QString EncodeGUI::ConfigureAudioM(int stream, int stream2, QString stream3, QSt
44
MediaConfig::ResetArguments();
55

66
if (stream == 1 && stream3.toInt() == 0) {
7-
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
8-
MediaConfig::SetOverride();
9-
MediaConfig::SetInput(QDir::toNativeSeparators(QDir::tempPath() + QString("\\%1").arg(id)));
10-
MediaConfig::SetInput(ui.SelectInTxtBox->text());
11-
MediaConfig::SetMapAll("v", "0");
12-
MediaConfig::SetVideoCodec("copy");
7+
if (ui.VideoEncDD->currentIndex() != 6) {
8+
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
9+
MediaConfig::SetOverride();
10+
MediaConfig::SetInput(QDir::toNativeSeparators(QDir::tempPath() + QString("\\%1").arg(id)));
11+
MediaConfig::SetInput(ui.SelectInTxtBox->text());
12+
MediaConfig::SetMapAll("v", "0");
13+
MediaConfig::SetVideoCodec("copy");
14+
}
1315

14-
ConfigureSubtitle(stream, container);
16+
ConfigureSubtitle(stream, container, id);
1517

1618
if (!CHECKED(ui.ChaptersCB) && SubtitleInfo::GetChapter())
1719
MediaConfig::Append(" -map_chapters -1");
1820
}
1921

2022
if (stream == 1)
21-
MediaConfig::SetMap("a", QString("%1").arg(stream), stream2);
23+
if (ui.VideoEncDD->currentIndex() != 6) {
24+
MediaConfig::SetMap("a", QString("%1").arg(stream), stream2);
25+
}
26+
else {
27+
MediaConfig::SetMapMux("a", stream2);
28+
}
2229

23-
if (IsTitle.at(stream3.toInt()))
24-
MediaConfig::SetAudioTitle(QString("%1").arg(stream3), Title.at(stream3.toInt()));
30+
if (IsTitle.at(stream3.toInt())) {
31+
MediaConfig::SetAudioTitle(stream3, Title.at(stream3.toInt()));
32+
33+
if (IsLang.at(stream3.toInt()))
34+
MediaConfig::SetAudioLang(stream3, AudioLangs.at(stream3.toInt()));
35+
}
36+
else if (IsLang.at(stream3.toInt())) {
37+
MediaConfig::SetAudioLang(stream3, AudioLangs.at(stream3.toInt()));
38+
}
2539

2640
if (IsEncoding.at(stream3.toInt())) {
2741
MediaConfig::SetAudioCodecMulti(AudioCodec.at(stream3.toInt()), stream3);
@@ -37,7 +51,7 @@ QString EncodeGUI::ConfigureAudioM(int stream, int stream2, QString stream3, QSt
3751
else
3852
MediaConfig::SetAudioCodecMulti("copy", stream3);
3953

40-
if (stream == 1 && stream3.toInt() == ui.AudioQueue->rowCount() - 1) {
54+
if (stream == 1 && ui.VideoEncDD->currentIndex() != 6 && stream3.toInt() == ui.AudioQueue->rowCount() - 1) {
4155
MediaConfig::Append(QString(" -metadata:g encoding_tool=\"EncodeGUI v%1\"").arg(VERSION));
4256
MediaConfig::SetOutput(ui.SaveOutTxtBox->text() + container);
4357
}
@@ -48,7 +62,7 @@ QString EncodeGUI::ConfigureAudioM(int stream, int stream2, QString stream3, QSt
4862
QString EncodeGUI::ConfigureAudioP(int stream, QString id, QString container) {
4963
MediaConfig::ResetArguments();
5064

51-
if (stream == 1) {
65+
if (stream == 1 && ui.VideoEncDD->currentIndex() != 6) {
5266
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
5367
MediaConfig::SetOverride();
5468
MediaConfig::SetInput(QDir::toNativeSeparators(QDir::tempPath() + QString("\\%1").arg(id)));
@@ -57,34 +71,73 @@ QString EncodeGUI::ConfigureAudioP(int stream, QString id, QString container) {
5771
MediaConfig::SetVideoCodec("copy");
5872
}
5973

60-
if (stream == 1)
74+
if (stream == 1 && ui.VideoEncDD->currentIndex() != 6)
6175
MediaConfig::SetMapAll("a", QString("%1").arg(stream));
76+
else if (ui.VideoEncDD->currentIndex() == 6)
77+
MediaConfig::Append(" -map a");
6278

6379
MediaConfig::SetAudioCodec("copy");
6480

65-
ConfigureSubtitle(stream, container);
81+
ConfigureSubtitle(stream, container, id);
82+
83+
if (!CHECKED(ui.ChaptersCB) && SubtitleInfo::GetChapter())
84+
MediaConfig::Append(" -map_chapters -1");
6685

67-
if (stream == 1) {
86+
if (stream == 1 && ui.VideoEncDD->currentIndex() != 6) {
6887
MediaConfig::Append(QString(" -metadata:g encoding_tool=\"EncodeGUI v%1\"").arg(VERSION));
6988
MediaConfig::SetOutput(ui.SaveOutTxtBox->text() + container);
7089
}
7190

7291
return MediaConfig::GetArguments();
7392
}
7493

75-
void EncodeGUI::ConfigureSubtitle(int stream, QString container) {
94+
QString EncodeGUI::ConfigureSubtitle(int stream, QString container, QString id) {
95+
if (!CHECKED(ui.AudioCB)) {
96+
MediaConfig::ResetArguments();
97+
98+
if (ui.VideoEncDD->currentIndex() != 6) {
99+
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
100+
MediaConfig::SetOverride();
101+
MediaConfig::SetInput(QDir::toNativeSeparators(QDir::tempPath() + QString("\\%1%2").arg(id).arg(container)));
102+
MediaConfig::SetInput(ui.SelectInTxtBox->text());
103+
MediaConfig::SetMapAll("v", "0");
104+
MediaConfig::SetVideoCodec("copy");
105+
}
106+
}
107+
76108
if (CHECKED(ui.SubtitlesCB) && ui.SubtitlesDD->currentIndex() == 0) {
77-
MediaConfig::SetMapAll("s", QString("%1").arg(stream));
109+
if (ui.VideoEncDD->currentIndex() != 6)
110+
MediaConfig::SetMapAll("s", QString("%1").arg(stream));
111+
else
112+
MediaConfig::Append(" -map s");
113+
78114
MediaConfig::Append(" -c:s copy");
79115
}
80116
else if (CHECKED(ui.SubtitlesCB) && ui.SubtitlesDD->currentIndex() == 1) {
81-
MediaConfig::SetMapAll("s", QString("%1").arg(stream));
117+
if (ui.VideoEncDD->currentIndex() != 6)
118+
MediaConfig::SetMapAll("s", QString("%1").arg(stream));
119+
else
120+
MediaConfig::Append(" -map s");
82121

83122
if (container.contains(".mkv") || container.contains(".webm"))
84123
MediaConfig::Append(" -c:s webvtt");
85124
else if (container.contains(".mov") || container.contains(".mp4") || container.contains(".3gp"))
86125
MediaConfig::Append(" -c:s mov_text");
87126
}
127+
128+
if (!CHECKED(ui.AudioCB)) {
129+
if (!CHECKED(ui.ChaptersCB) && SubtitleInfo::GetChapter())
130+
MediaConfig::Append(" -map_chapters -1");
131+
132+
if (ui.VideoEncDD->currentIndex() != 6) {
133+
MediaConfig::Append(QString(" -metadata:g encoding_tool=\"EncodeGUI v%1\"").arg(VERSION));
134+
MediaConfig::SetOutput(ui.SaveOutTxtBox->text() + container);
135+
}
136+
137+
return MediaConfig::GetArguments();
138+
}
139+
else
140+
return QString();
88141
}
89142

90143
QString EncodeGUI::ConfigureVS(QString id) {
@@ -96,6 +149,25 @@ QString EncodeGUI::ConfigureVS(QString id) {
96149
return MediaConfig::GetArguments();
97150
}
98151

152+
QString EncodeGUI::ConfigureMux(QString container, QString audio, QString subtitles) {
153+
MediaConfig::ResetArguments();
154+
155+
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
156+
MediaConfig::SetOverride();
157+
MediaConfig::Append(QString(" -i \"%1\"").arg(ui.SelectInTxtBox->text()));
158+
159+
MediaConfig::SetMapMux("V", 0);
160+
MediaConfig::SetVideoCodec("copy");
161+
162+
MediaConfig::Append(audio);
163+
MediaConfig::Append(subtitles);
164+
165+
MediaConfig::Append(QString(" -metadata:g encoding_tool=\"EncodeGUI v%1\"").arg(VERSION));
166+
MediaConfig::SetOutput(ui.SaveOutTxtBox->text() + container);
167+
168+
return MediaConfig::GetArguments();
169+
}
170+
99171
QString EncodeGUI::ConfigureArgs(QString container, QString id, QString audio, QString subtitles, bool twoPass, int pass) {
100172
MediaConfig::ResetArguments();
101173

@@ -394,15 +466,36 @@ QString EncodeGUI::ConfigureArgs(QString container, QString id, QString audio, Q
394466

395467
break;
396468
case 5:
397-
MediaConfig::SetVideoCodec("copy");
469+
MediaConfig::SetVideoCodec("libsvtav1");
470+
471+
switch (ui.EncodeModeAV1DD->currentIndex()) {
472+
case 0:
473+
MediaConfig::SetConstantRateFactor(ui.crfAV1NUD->value());
474+
break;
475+
case 1:
476+
MediaConfig::SetVideoBitrate(ui.BitrateAV1NUD->value());
477+
break;
478+
}
479+
480+
if (ui.BitDepthAV1DD->currentIndex() == 1)
481+
MediaConfig::SetPixelFormat("yuv420p10le");
482+
else
483+
MediaConfig::SetPixelFormat("yuv420p");
398484
break;
399485
}
400486

401-
if (ui.VideoEncDD->currentIndex() != 5) {
402-
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
487+
if (ui.VideoEncDD->currentIndex() != 6) {
488+
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB) || CHECKED(ui.UseDeintCB))
403489
if (!((CHECKED(ui.RotateGB) && !CHECKED(ui.FlipCB) && ui.AngleDD->currentIndex() == 0) && !CHECKED(ui.UpscalingGB) && !CHECKED(ui.ResizeGB) && !CHECKED(ui.CropGB) && !CHECKED(ui.SharpenGB)))
404490
MediaConfig::SetFilters();
405491

492+
if (CHECKED(ui.UseDeintCB)) {
493+
MediaConfig::SetDeinterlace();
494+
495+
if (CHECKED(ui.ResizeGB) || CHECKED(ui.UpscalingGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
496+
MediaConfig::SetComma();
497+
}
498+
406499
if (CHECKED(ui.UpscalingGB)) {
407500
MediaConfig::SetVideoResolution(ui.Width2xNUD->value(), ui.Height2xNUD->value());
408501

@@ -495,7 +588,7 @@ QString EncodeGUI::ConfigureArgs(QString container, QString id, QString audio, Q
495588
MediaConfig::SetSharpenVideo(radius, strength);
496589
}
497590

498-
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
591+
if (CHECKED(ui.UseDeintCB) || CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
499592
if (!((CHECKED(ui.RotateGB) && !CHECKED(ui.FlipCB) && ui.AngleDD->currentIndex() == 0) && !CHECKED(ui.UpscalingGB) && !CHECKED(ui.ResizeGB) && !CHECKED(ui.CropGB) && !CHECKED(ui.SharpenGB)))
500593
MediaConfig::SetConcludeFilters();
501594
}
@@ -507,9 +600,12 @@ QString EncodeGUI::ConfigureArgs(QString container, QString id, QString audio, Q
507600
MediaConfig::Append(" -f NULL nul");
508601
}
509602
else
510-
if (CHECKED(ui.AudioCB))
603+
if (CHECKED(ui.AudioCB) || CHECKED(ui.SubtitlesCB))
511604
MediaConfig::SetOutput(QDir::toNativeSeparators(QDir::tempPath() + QString("\\%1.mkv").arg(id)));
512-
else {
605+
else if (!CHECKED(ui.AudioCB) && !CHECKED(ui.SubtitlesCB)) {
606+
if (!CHECKED(ui.ChaptersCB) && SubtitleInfo::GetChapter())
607+
MediaConfig::Append(" -map_chapters -1");
608+
513609
MediaConfig::Append(QString(" -metadata:g encoding_tool=\"EncodeGUI v%1\"").arg(VERSION));
514610
MediaConfig::SetOutput(ui.SaveOutTxtBox->text() + container);
515611
}

‎UI/EncodeGUI.cpp

+235-58
Large diffs are not rendered by default.

‎UI/Script.cpp

+25-6
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ QString EncodeGUI::BuildScript(int width, int height, QString jobID) {
6262
if (ui.BitDepthVPXDD->currentIndex() == 2 && ui.SampleVPXDD->currentIndex() == 2)
6363
format = "YUV420P8";
6464
break;
65+
case 5:
66+
format = "YUV420P8";
67+
break;
6568
}
6669

6770
if (!ui.ColorPropsGB->isChecked()) {
@@ -133,6 +136,9 @@ QString EncodeGUI::BuildScript(int width, int height, QString jobID) {
133136
ScriptBuilder::SetInclude();
134137
ScriptBuilder::SetPlugin(QDir::toNativeSeparators(QDir::currentPath() + "\\vapoursynth\\plugins\\LSMASHSource.dll"));
135138

139+
if (CHECKED(ui.UseAACB))
140+
ScriptBuilder::SetPlugin(QDir::toNativeSeparators(QDir::currentPath() + "\\vapoursynth\\plugins\\EEDI2.dll"));
141+
136142
if (CHECKED(ui.UpscalingGB)) {
137143
ScriptBuilder::SetPlugin(QDir::toNativeSeparators(QDir::currentPath() + "\\vapoursynth\\plugins\\waifu2x.dll"));
138144
ScriptBuilder::SetPlugin(QDir::toNativeSeparators(QDir::currentPath() + "\\vapoursynth\\plugins\\srmd.dll"));
@@ -147,6 +153,9 @@ QString EncodeGUI::BuildScript(int width, int height, QString jobID) {
147153

148154
ScriptBuilder::SetInput(ui.SelectInTxtBox->text(), jobID);
149155

156+
if (CHECKED(ui.UseAACB))
157+
ScriptBuilder::SetAntiA();
158+
150159
if (CHECKED(ui.InterpolationCB)) {
151160
QString fp, tta, uhd, sc, remv;
152161
int model, thread, num, den, multi, model2;
@@ -319,7 +328,6 @@ QString EncodeGUI::BuildScript(int width, int height, QString jobID) {
319328
if (CHECKED(ui.InterpolationCB) && ui.ToolInterpDD->currentIndex() == 2) {}
320329
else
321330
ScriptBuilder::SetColorsOut(format, matrix_in, transfer_in, primaries_in);
322-
323331

324332
ScriptBuilder::SetConcludeClip();
325333

@@ -351,12 +359,23 @@ void EncodeGUI::UpscaleMD(int width, int height) {
351359
tta = "False";
352360

353361
if (ui.ToolUpscaleDD->currentIndex() == 0)
354-
if (ui.ModelUpscaleDD->currentIndex() != 3)
355-
ScriptBuilder::SetWaifu2x(noise, 2, ui.ModelUpscaleDD->currentIndex(), id, thread, fp);
356-
else
357-
ScriptBuilder::SetWaifu2x(noise, 1, 2, id, thread, fp);
362+
if (ui.ModelUpscaleDD->currentIndex() != 3) {
363+
if (CHECKED(ui.MultiGPUGB))
364+
ScriptBuilder::SetWaifu2x(noise, 2, ui.ModelUpscaleDD->currentIndex(), id, thread, fp, true, ui.GPU1IDNUD->value(), ui.GPU2IDNUD->value());
365+
else
366+
ScriptBuilder::SetWaifu2x(noise, 2, ui.ModelUpscaleDD->currentIndex(), id, thread, fp, false, 0, 0);
367+
}
368+
else {
369+
if (CHECKED(ui.MultiGPUGB))
370+
ScriptBuilder::SetWaifu2x(noise, 1, 2, id, thread, fp, true, ui.GPU1IDNUD->value(), ui.GPU2IDNUD->value());
371+
else
372+
ScriptBuilder::SetWaifu2x(noise, 1, 2, id, thread, fp, false, 0, 0);
373+
}
358374
else
359-
ScriptBuilder::SetSRMD(scale, ui.NoiseLabelSDDD->currentIndex(), id, thread, tta);
375+
if (CHECKED(ui.MultiGPUGB))
376+
ScriptBuilder::SetSRMD(scale, ui.NoiseLabelSDDD->currentIndex(), id, thread, tta, true, ui.GPU1IDNUD->value(), ui.GPU2IDNUD->value());
377+
else
378+
ScriptBuilder::SetSRMD(scale, ui.NoiseLabelSDDD->currentIndex(), id, thread, tta, false, 0, 0);
360379
}
361380

362381
int EncodeGUI::DecimalCounter(QString value) {

‎VS/VapourSynth.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ QString VapourSynth::Plugin(QString path) {
1111
/// Includes required python nodes.
1212
/// </summary>
1313
QString VapourSynth::Include() {
14-
return QString("# This file was generated using EncodeGUI\n# This script is availible to you under the MIT license: Copyright (C) 2022 DaGoose.\n\nfrom vsrife import RIFE\nimport tempfile\nimport vapoursynth as vs\nfrom vapoursynth import core\n\n");
14+
return QString("# This file was generated using EncodeGUI\n# This script is available to you under the MIT license: Copyright (C) 2022 DaGoose.\n\nfrom vsrife import RIFE\nimport tempfile\nimport muvsfunc as mf\nimport vapoursynth as vs\nfrom vapoursynth import core\n\n");
1515
}
1616

1717
/// <summary>
@@ -46,4 +46,12 @@ QString VapourSynth::ConcludeClip() {
4646
/// <returns>String representation of the script.</returns>
4747
QString VapourSynth::NewLine() {
4848
return QString("\n");
49+
}
50+
51+
/// <summary>
52+
/// Anti-Aliasing (EIDAA)
53+
/// </summary>
54+
/// <returns>String representation of the script.</returns>
55+
QString VapourSynth::AntiA() {
56+
return QString("clip = mf.ediaa(clip)\n\n");
4957
}

‎VS/VapourSynth.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ class VapourSynth {
1111
static QString RIFENcnn(int, int, int, QString, QString, QString);
1212
static QString SVPFlowNoob(QString, int, int, int, int, int, int);
1313
static QString SVPFlow(QString, QString, QString, int, int);
14-
static QString Waifu2x(int, int, int, int, int, int);
15-
static QString SRMD(int, int, int, int, QString);
14+
static QString Waifu2x(int, int, int, int, int, int, bool, int, int);
15+
static QString SRMD(int, int, int, int, QString, bool, int, int);
1616
static QString RGB(QString, QString, QString);
1717
static QString ColorsInOut(QString, QString, QString, QString, QString, QString, QString);
1818
static QString ColorsOut(QString, QString, QString, QString);
1919
static QString SCDetect(QString);
2020
static QString Plugin(QString);
2121
static QString Input(QString, QString);
2222
static QString Include();
23+
static QString AntiA();
2324
static QString ConcludeClip();
2425
static QString NewLine();
2526
};

‎x64/Release/uic/ui_EncodeGUI.h

+335-37
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.