Skip to content

Commit 0389986

Browse files
authored
v1.0.5
- Fixed an issue where elapsed time wouldn't reset on a new job if the previous job was paused for a long period of time. - Fixed an issue where the pause and cancel buttons on the main tab will become disabled even while a job is running. - Fixed an issue where 5.1 channel audio downmix option wouldn't work. - Added the option to set the audio title in the Audio tab. - Added DTS audio codec encoding option. - Added TrueHD audio codec encoding option.
1 parent e9696f9 commit 0389986

27 files changed

+8718
-219
lines changed

Arguments/Argument.h

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class Argument {
4545
static QString TransposeVideo(int);
4646
static QString FlipVideo(QString);
4747
static QString NoAutoRotate();
48+
static QString AudioTitle(QString, QString);
4849
static QString Tier(int);
4950
static QString SharpenVideo(QString, QString);
5051
static QString AddTimecodes(int, int, int, int);

Arguments/AudioArgs.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ QString Argument::AudioRate(QString rate, QString stream) {
99
return QString(" -ar:%1 %2").arg(stream).arg(rate);
1010
}
1111

12+
/// <summary>
13+
/// Sets the audio title for a specific audio stream.
14+
/// </summary>
15+
/// <param name="stream">The stream file specifier.</param>
16+
/// <param name="stream2">The audio stream specifier.</param>
17+
/// <param name="title">The contents to be added to the title.</param>
18+
/// <returns>String representation of the argument.</returns>
19+
QString Argument::AudioTitle(QString stream, QString title) {
20+
return QString(" -metadata:s:a:%1 title=\"%2\"").arg(stream).arg(title);
21+
}
22+
1223
/// <summary>
1324
/// Sets the number of channels in the audio stream.
1425
/// </summary>

Arguments/TransposeArgs.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ QString Argument::FlipVideo(QString flip) {
2323
/// </summary>
2424
/// <returns>String representation of the argument.</returns>
2525
QString Argument::NoAutoRotate() {
26-
return QString(" -noautoroate");
26+
return QString(" -noautorotate");
2727
}

Checks/Checks.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
#define FLAC 3
1414
#define VORBIS 4
1515
#define OPUS 5
16-
#define EAC3 6
17-
#define ALAC 7
18-
#define WMA 8
19-
#define PCM 9
20-
#define MP2 10
21-
#define DTS 11
22-
#define TRUEHD 12
16+
#define DTS 6
17+
#define TRUEHD 7
18+
#define EAC3 8
19+
#define ALAC 9
20+
#define WMA 10
21+
#define PCM 11
22+
#define MP2 12
2323

2424
class Checks {
2525
public:

Checks/Process.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ bool Checks::CheckAudioCompatability(int format, QString container) {
4646
else
4747
result = false;
4848
break;
49+
case DTS:
50+
if (container.contains(".mp4") || container.contains(".mkv") || container.contains(".mov") || container.contains(".asf"))
51+
result = true;
52+
else
53+
result = false;
54+
break;
55+
case TRUEHD:
56+
if (container.contains(".mp4") || container.contains(".mkv") || container.contains(".ts"))
57+
result = true;
58+
else
59+
result = false;
60+
break;
4961
case EAC3:
5062
if (container.contains(".mp4") || container.contains(".mkv") || container.contains(".mov"))
5163
result = true;
@@ -76,18 +88,6 @@ bool Checks::CheckAudioCompatability(int format, QString container) {
7688
else
7789
result = false;
7890
break;
79-
case DTS:
80-
if (container.contains(".mp4") || container.contains(".mkv") || container.contains(".mov") || container.contains(".asf"))
81-
result = true;
82-
else
83-
result = false;
84-
break;
85-
case TRUEHD:
86-
if (container.contains(".mp4") || container.contains(".mkv") || container.contains(".ts"))
87-
result = true;
88-
else
89-
result = false;
90-
break;
9191
}
9292

9393
return result;

EncodeGUI.vcxproj

+2-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
</ImportGroup>
3434
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
3535
<QtInstall>6.2.2</QtInstall>
36-
<QtModules>core;gui;widgets</QtModules>
36+
<QtModules>core;gui;widgets;networkauth</QtModules>
3737
<QtBuildConfig>debug</QtBuildConfig>
3838
</PropertyGroup>
3939
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
@@ -55,8 +55,7 @@
5555
<Import Project="$(QtMsBuild)\Qt.props" />
5656
</ImportGroup>
5757
<PropertyGroup Label="UserMacros" />
58-
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
59-
</PropertyGroup>
58+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" />
6059
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
6160
<ManagedAssembly>true</ManagedAssembly>
6261
</PropertyGroup>

EncodeGUI.vcxproj.user

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
<ShowAllFiles>true</ShowAllFiles>
55
</PropertyGroup>
66
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7-
<QtLastBackgroundBuild>2022-03-20T22:05:57.9550090Z</QtLastBackgroundBuild>
7+
<QtLastBackgroundBuild>2022-05-28T00:33:38.4218698Z</QtLastBackgroundBuild>
88
</PropertyGroup>
99
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
10-
<QtLastBackgroundBuild>2022-03-20T22:05:58.4645888Z</QtLastBackgroundBuild>
10+
<QtLastBackgroundBuild>2022-05-28T00:33:38.9531052Z</QtLastBackgroundBuild>
1111
</PropertyGroup>
1212
</Project>

Process/FFLoader.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
#ifndef FFLOADER_H
44
#define FFLOADER_H
55

6-
#include "Regex\AudioSubInfoRegex.h"
7-
#include "Regex\ProcessErrorRegex.h"
8-
#include "Regex\ProgressInfoRegex.h"
9-
#include "Regex\VideoInfoRegex.h"
10-
#include "IO\VideoInfoList.h"
6+
#include "..\Regex\AudioSubInfoRegex.h"
7+
#include "..\Regex\ProcessErrorRegex.h"
8+
#include "..\Regex\ProgressInfoRegex.h"
9+
#include "..\Regex\VideoInfoRegex.h"
10+
#include "..\IO\VideoInfoList.h"
1111

1212
#include <QProcess>
1313
#include <QTime>

Process/MediaConfig.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ void MediaConfig::SetConstantVideoQuality(int quality) {
138138
ArgumentList.append(Argument::ConstantVideoQuality(quality));
139139
}
140140

141+
void MediaConfig::SetAudioTitle(QString stream, QString text) {
142+
ArgumentList.append(Argument::AudioTitle(stream, text));
143+
}
144+
141145
void MediaConfig::SetConstantAudioQuality(int quality, QString stream) {
142146
ArgumentList.append(Argument::ConstantAudioQuality(quality, stream));
143147
}

Process/MediaConfig.h

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

6-
#include "Arguments\Argument.h"
6+
#include "..\Arguments\Argument.h"
77

88
#include <QStringList>
99

@@ -38,6 +38,7 @@ class MediaConfig : protected Argument {
3838
static void SetVideoProfile(QString);
3939
static void SetVideoProfileLevel(QString);
4040
static void SetVideoBitrate(int);
41+
static void SetAudioTitle(QString, QString);
4142
static void SetAudioBitrate(int, QString);
4243
static void SetConstantRateFactor(int);
4344
static void SetConstantQuantizer(int);

Process/ScriptBuilder.h

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

6-
#include "VS\VapourSynth.h"
6+
#include "..\VS\VapourSynth.h"
77

88
#include <QString>
99

Regex/AudioSubInfoRegex.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ QString AudioSubInfoRegex::SubLanguage;
1313
QString AudioSubInfoRegex::SubStreams;
1414

1515
void AudioSubInfoRegex::SetupPattern() {
16-
Indexer << QRegularExpression("Stream\\s?#0:([0-9]?[0-9]?)\\[?[^\\]]*\\]?\\(?(\\w*)\\)?:?\\[?[^\\]]*\\]?:\\s?Audio:\\s?(\\w*)[^,]*,?\\s?([^\\s]*)\\sHz,\\s?([^,]*),?");
17-
Indexer << QRegularExpression("Stream\\s?#0:([0-9]?[0-9]?)\\[?[^\\]]*\\]?\\(?(\\w*)\\)?:?\\[?[^\\]]*\\]?:\\s?Subtitle:\\s?([^\\s]*)");
16+
Indexer << QRegularExpression("Stream\\s?#0:([0-9]?[0-9]?)\\[?[^\\]]*?\\]?\\(?(\\w*)\\)?:?\\[?[^\\]]*\\]?:\\s?Audio:\\s?(\\w*)[^,]*,?\\s?([^\\s]*)\\sHz,\\s?([^,]*),?");
17+
Indexer << QRegularExpression("Stream\\s?#0:([0-9]?[0-9]?)\\[?[^\\]]*?\\]?\\(?(\\w*)\\)?:?\\[?[^\\]]*\\]?:\\s?Subtitle:\\s?([^\\s]*)");
1818
Indexer << QRegularExpression("\\s*Chapters:");
1919
}
2020

Regex/AudioSubInfoRegex.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
#ifndef AUDIOSUBINFOREGEX_H
44
#define AUDIOSUBINFOREGEX_H
55

6-
#include "IO\AudioInfo.h"
7-
#include "IO\SubtitleInfo.h"
6+
#include "..\IO\AudioInfo.h"
7+
#include "..\IO\SubtitleInfo.h"
88

99
#include <QRegularExpression>
1010
#include <QMessageBox>

Regex/ProcessErrorRegex.h

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

6-
#include "IO\ProcessError.h"
6+
#include "..\IO\ProcessError.h"
77

88
#include <QRegularExpression>
99
#include <QList>

Regex/ProgressInfoRegex.h

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

6-
#include "IO\ProgressInfo.h"
6+
#include "..\IO\ProgressInfo.h"
77

88
#include <QRegularExpression>
99
#include <QElapsedTimer>

Regex/VideoInfoRegex.h

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

6-
#include "IO\VideoInfo.h"
6+
#include "..\IO\VideoInfo.h"
77

88
#include <QRegularExpression>
99
#include <QElapsedTimer>

UI/Audio.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ void EncodeGUI::RemoveAudio() {
2020
IsEncoding.clear();
2121
AudioCodec.clear();
2222
Stream.clear();
23+
IsTitle.clear();
24+
Title.clear();
25+
}
26+
27+
void EncodeGUI::AudioTitle() {
28+
if (CHECKED(ui.AudioTitleCB))
29+
SET_ENABLED(ui.AudioTitleTxtBox);
30+
else
31+
SET_DISABLED(ui.AudioTitleTxtBox);
2332
}
2433

2534
void EncodeGUI::RemoveAudioClick() {
@@ -31,6 +40,8 @@ void EncodeGUI::RemoveAudioClick() {
3140
IsEncoding.removeAt(selectedAudio);
3241
AudioCodec.removeAt(selectedAudio);
3342
Stream.removeAt(selectedAudio);
43+
IsTitle.removeAt(selectedAudio);
44+
Title.removeAt(selectedAudio);
3445
}
3546

3647
void EncodeGUI::downmix_cb() {

UI/Config.cpp

+15-8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ QString EncodeGUI::ConfigureAudioM(int stream, int stream2, QString stream3, QSt
2020
if (stream == 1)
2121
MediaConfig::SetMap("a", QString("%1").arg(stream), stream2);
2222

23+
if (IsTitle.at(stream3.toInt()))
24+
MediaConfig::SetAudioTitle(QString("%1").arg(stream3), Title.at(stream3.toInt()));
25+
2326
if (IsEncoding.at(stream3.toInt())) {
2427
MediaConfig::SetAudioCodecMulti(AudioCodec.at(stream3.toInt()), stream3);
2528

@@ -98,6 +101,10 @@ QString EncodeGUI::ConfigureArgs(QString id, QString audio, QString subtitles, b
98101

99102
MediaConfig::SetFFMpeg(QDir::toNativeSeparators(QDir::currentPath()) + "\\ffmpeg\\ffmpeg.exe");
100103
MediaConfig::SetOverride();
104+
105+
if (CHECKED(ui.RotateGB) && CHECKED(ui.NoAutoRotateCB))
106+
MediaConfig::SetNoAutoRotate();
107+
101108
MediaConfig::Append(" -i -");
102109

103110
switch (ui.VideoEncDD->currentIndex()) {
@@ -392,8 +399,9 @@ QString EncodeGUI::ConfigureArgs(QString id, QString audio, QString subtitles, b
392399
}
393400

394401
if (ui.VideoEncDD->currentIndex() != 5) {
395-
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
396-
MediaConfig::SetFilters();
402+
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
403+
if (!((CHECKED(ui.RotateGB) && !CHECKED(ui.FlipCB) && ui.AngleDD->currentIndex() == 0) && !CHECKED(ui.UpscalingGB) && !CHECKED(ui.ResizeGB) && !CHECKED(ui.CropGB) && !CHECKED(ui.SharpenGB)))
404+
MediaConfig::SetFilters();
397405

398406
if (CHECKED(ui.UpscalingGB)) {
399407
MediaConfig::SetVideoResolution(ui.Width2xNUD->value(), ui.Height2xNUD->value());
@@ -407,7 +415,8 @@ QString EncodeGUI::ConfigureArgs(QString id, QString audio, QString subtitles, b
407415
if (CHECKED(ui.ResizeAlgoCB))
408416
MediaConfig::SetVideoResizeAlgo(ui.ResizeAlgoDD->currentText().toLower());
409417

410-
MediaConfig::SetComma();
418+
if (CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
419+
MediaConfig::SetComma();
411420
}
412421

413422
if (CHECKED(ui.CropGB)) {
@@ -486,11 +495,9 @@ QString EncodeGUI::ConfigureArgs(QString id, QString audio, QString subtitles, b
486495
MediaConfig::SetSharpenVideo(radius, strength);
487496
}
488497

489-
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
490-
MediaConfig::SetConcludeFilters();
491-
492-
if (CHECKED(ui.RotateGB) && CHECKED(ui.NoAutoRotateCB))
493-
MediaConfig::SetNoAutoRotate();
498+
if (CHECKED(ui.UpscalingGB) || CHECKED(ui.ResizeGB) || CHECKED(ui.CropGB) || CHECKED(ui.RotateGB) || CHECKED(ui.SharpenGB))
499+
if (!((CHECKED(ui.RotateGB) && !CHECKED(ui.FlipCB) && ui.AngleDD->currentIndex() == 0) && !CHECKED(ui.UpscalingGB) && !CHECKED(ui.ResizeGB) && !CHECKED(ui.CropGB) && !CHECKED(ui.SharpenGB)))
500+
MediaConfig::SetConcludeFilters();
494501
}
495502

496503
if (twoPass) {

0 commit comments

Comments
 (0)