Commit Graph

128 Commits (master)

Author SHA1 Message Date
Richard e6b1ed8ebe
CMake tweaks to make the project more linux packager friendly (#384)
* CMake tweaks to make the project more linux packager friendly

- Add install target for tsMuxerGUI
- Add install for contributed desktop file
- Install icon for desktop file
- Don't check for C when all sources are C++.
2020-12-27 20:53:53 +01:00
Daniel Kamil Kozar 943a73548e
Prefer the currently entered file name when opening the browse dialog (#378)
Previous versions used the "last output directory" when opening the "Browse"
dialog in the main window, using the current "File name" only if the "last
output directory " is not yet defined. This change reverses this, which means
that the folder of the path currently entered as the "File name" will be used
as the folder to display. The file name will be carried over to the dialog.

Fixes #372 .
2020-12-08 22:56:27 +01:00
i6henl bfeee07d6d
Add Chinese translation (#376) 2020-12-05 19:59:33 +01:00
Daniel Kamil Kozar 2d378f2603
Rework conditions based on object names of UI components (#362)
Pointers to widgets can be simply compared directly against the pointers in the
UI struct, which is admittedly less fragile than relying on object names for the
same purpose.
2020-10-06 20:21:18 +02:00
Daniel Kamil Kozar 9cb0246445
Update track order in metafile when moving up and down (#361) 2020-10-06 19:23:26 +02:00
Daniel Kamil Kozar 03ecfba796
Store the window size when closing the program (#359) 2020-10-05 03:49:44 +02:00
Daniel Kamil Kozar 1d35df5b08
Try to fix default audio/subtitle track combo boxes' track descriptions (#342)
updateTracksComboBox() was called after the indices are updated, but before the
row being removed is actually removed from the trackLV structure. This caused
the new generated track descriptions to refer to invalid tracks.
2020-09-18 01:23:23 +02:00
Daniel Kamil Kozar 304cb687f1
Allow selecting multiple files also when clicking "join" (#341) 2020-09-18 00:19:53 +02:00
Daniel Kamil Kozar 92eac0434a
Make it possible to add multiple files when clicking "add" (#339) 2020-09-17 01:41:31 +02:00
Daniel Kamil Kozar 2a4489d060
Fix crashes when removing audio/subtitle tracks from the main window (#340)
Indices in both combo boxes must be updated, since an audio track index might
have changed when a subtitle track is removed and vice versa : there is only one
array which holds information about tracks that these combo boxes reference via
the data contained in their items' UserRoles.
2020-09-17 01:36:56 +02:00
jcdr428 20247206b8
Correct "General track options" layout (#327)
Correct the grid layout so that the data is neatly shown on the two rows.
Video layout has now the same height as audio and subs layouts.
2020-08-31 00:21:35 +02:00
Daniel Kamil Kozar 818f916e7c
Update French translation 2020-08-27 21:09:41 +02:00
Daniel Kamil Kozar 7c47d0dd2d
Add the French translation to qmake as well 2020-08-26 08:15:22 +02:00
Daniel Kamil Kozar 3f677ef439
Add French translation (#324)
All credit goes to FRtranslator.
2020-08-25 23:06:58 +02:00
Daniel Kamil Kozar d058a4d2cf
Don't use locale-aware conversion when creating split-size meta argument (#320) 2020-08-18 00:34:27 +02:00
Daniel Kamil Kozar c61c00285d
Add .dtshd to the list of supported media file extensions (#315) 2020-07-21 21:13:38 +02:00
Daniel Kamil Kozar 632b6e4c10
Always save settings when closing GUI (#310)
Fixes #257.
2020-07-02 00:10:49 +02:00
Daniel Kamil Kozar 0fa0738db8
Fix bad file type/extension in .meta save dialog (#305)
Fixes #304.
2020-06-24 20:00:28 +02:00
jcdr428 330bb477cc
Support for HDMV descriptors is now selectable at runtime (#282)
Fixes #273.
2020-04-26 01:03:47 +02:00
Daniel Kamil Kozar f044a88c35
Fix the "About" tab being empty when the language is not set (#280)
Fixes #267.
2020-04-18 16:26:53 +02:00
jcdr428 9f649cae1b
Correct Eliding of track filenames
Set WordWrap to false so that the eliding occurs at each character and not at each word.

Fixes issue #261 .
2020-03-28 23:24:41 +02:00
abakum eecf6b0c00
Russian translation for transparency and downconvert (#237) 2020-03-09 16:05:51 +01:00
Daniel Kamil Kozar 91e095569d Translations update 2020-03-09 11:16:44 +01:00
abakum 29afe533ff
Russian translation of the file selection dialog (#235) 2020-03-09 11:14:37 +01:00
Daniel Kamil Kozar 99b467933a
Add a GUI option for adjusting PIP transparency (#234) 2020-03-07 18:09:24 +01:00
Daniel Kamil Kozar 2cf8661b97
Fix translated strings appearing in the metafile (#233) 2020-03-06 00:20:05 +01:00
Dan 680391580b
Merge pull request #206 from stanionascu/keep-track-order
When a file with multiple video tracks is added (e.g. with Dolby Vision), tsMuxer swaps the order of the video tracks in the output.
This change, prevents such behavior and maintains the order of the inserted tracks.
2020-03-05 11:39:36 +00:00
Daniel Kamil Kozar 4b8c084082
Simplify TsMuxerWindow::myPlaySound (#226)
It turns out that playing sound files available as application resources is as simple as using QSoundEffect with a qrc URL. This saves us from all the shenanigans previously done in order to save the resource to a file just to be able to pass it to a QSound object.
2020-03-03 21:57:01 +01:00
abakum d7d8d9df36
punctuation 2020-03-02 02:03:43 +03:00
Daniel Kamil Kozar f0fc108959 Include about_ru.html in the resource file 2020-03-01 23:28:15 +01:00
abakum cf69822e36
Create about_ru.html (#223) 2020-03-01 23:23:07 +01:00
Daniel Kamil Kozar ce05c5d4d1
Move the contents of the "about" tab to an external file and other GUI improvements (#221)
The contents of the UI tab were saved as inline HTML in the UI file for TsMuxerWindow. Making them translatable would've exported the content to .ts files, which means that translators would have to put up with not only HTML, but HTML with XML escaping applied into it.
Moving the content to an external file seems like a best approach in this case. The content of the file is loaded in the appropriate language when switching languages. The HTML files themselves are included as resources at build time.
2020-03-01 19:32:53 +01:00
abakum 2c60a1976a
Update Russian translation (#220) 2020-03-01 19:07:39 +01:00
Daniel Kamil Kozar 9670fd6b19
Remove all usages of std::wstring (#219)
This commit erases all usages of std::wstring from the face of the project and reduces wchar_t usages to the necessary minimum, mostly for interoperability with WinAPI functions. UTF-8 encoded std::strings are used in place of std::wstring objects, and code which must operate on actual characters instead of the bytes which might represent a character has been modified in order to work properly - mostly the subtitle renderer and reader classes.
2020-03-01 01:14:57 +01:00
Daniel Kamil Kozar d9a90f44f3
Enable translation in GUI (#218)
This change brings translation support to the tsMuxeR GUI. We have a Russian translation available so far, thanks to @abakum. The last selected translation is saved in the settings file and restored at the application's next startup. The currently used language is selectable by a combo box in the lower left corner of the window.
2020-03-01 00:35:31 +01:00
abakum c7c3d8906d
Create a Russian translation (#217) 2020-02-29 21:31:38 +01:00
Daniel Kamil Kozar 96ac3233fd
Add a translation file for the GUI, mark (un)translatable content properly (#196) 2020-02-28 18:43:23 +01:00
jcdr428 ebb88d2fdf
Support for m4v files
m4v files have the same structure as mp4 - the only change is the filename extension.
2020-02-28 18:29:28 +01:00
Stanislav Ionascu ff68c7b4ab Store the lastInputDir in settings 2020-02-25 08:01:39 +01:00
Daniel Kamil Kozar ec66ec3e42
Remove lambda due to compiler segfault on Win64 2020-02-09 10:16:04 +01:00
Daniel Kamil Kozar 31d39b60a7
Implement support for default audio and subtitle tracks when muxing to Blu-ray (#161)
Fixes #126.
2020-02-08 20:48:41 +01:00
Daniel Kamil Kozar 92246c3367 Make the main binary a Unicode application on Windows
This commit uses "wide" (i.e. UTF-16) commandline arguments when launching the
program on Windows, and uses the "wide" Windows APIs when dealing with strings.
This makes it independent from the currently selected active code page on the
system, and hopefully fixes issues with "nonstandard" characters appearing in
file and directory paths.

Fixes #172.
2020-02-05 00:15:44 +01:00
jcdr428 b8d9788b04
Bug: "Secondary" box greyed out for DTS Express 24bit (#173) 2020-02-04 18:16:34 +01:00
Daniel Kamil Kozar 39bb82957f
Make GUI buildable with Qt 5.2.1 2020-01-27 23:08:15 +01:00
jcdr428 2ade73d546 Fix bug 3d-plane / PID part 2 (#157)
All pgStreams3D[pgTrackNum] (coming from clpi) must be changed to streamInfo (coming from mpls)
When 3d-plane is "FF", this means it is 'undefined' (i.e. 2D), not 'zero'.
2020-01-21 07:29:15 +01:00
Daniel Kamil Kozar 8cc357aad4 Remove all custom floating-point conversion functions
QString::toDouble (and ::toFloat) behaviour changed between Qt4 and Qt5 : in
the older version, the function tried to convert the string according to the
current locale and, if unsuccessful, fell back to parsing according to the "C"
locale.

In Qt5, the conversion is always performed in the "C" locale, which means that
all the shenanigans related to finding and replacing the decimal point are not
needed anymore, since the main tsMuxer binary always runs in the "C" locale due
to not calling setlocale() at all.

Also, if Qt 4.8 documentation is to be believed, all this code wasn't ever
needed in the first place, as the conversion function would've just used the
"C" locale after failing to convert the string due to a mismatch in the used
decimal point character - and thus succeeded.
2020-01-20 01:39:01 +01:00
jcdr428 1e365757f5 Fix GUI typos and update about tab (#148) 2020-01-19 23:26:01 +01:00
Daniel Kamil Kozar 146be40555
Don't use the git revision count in the version tag
GitHub runners only checkout the particular revision that's going to be built
instead of the whole tree, which results in the revision count always being set
to 1. The short revision checksum is enough anyway.
2020-01-17 18:18:44 +01:00
Daniel Kamil Kozar e8007adba5
Use the checked out Git revision as app version if building in a Git repository (#144)
This replaces the occurrences of the static version number with a version string
if building in a Git repository and Git is available on the build host.

This isn't perfect, since the revision is only going to be fetched when running
qmake or cmake, while it's possible that it changes between consecutive
compilations, not just reconfigurations. However, the main purpose of this is
to add a version tag to the builds built centrally by the GitHub runners, which
always configure the project from scratch.

Fixes #127.
2020-01-17 17:58:23 +01:00
jcdr428 fb82f2eb86 Add framerates 50, 59.94 & 60 fps (#143)
This adds the framerates 50, 59.94 & 60 fps in the drop-down list of the GUI.

Fixes #142.
2020-01-17 17:43:08 +01:00
jcdr428 4016357b8e Automatic V3 before muxing (#139)
This patch allow automatic selection of BD-ROM V3 option in GUI before muxing when HEVC is detected.
2020-01-16 19:54:09 +01:00
Daniel Kamil Kozar 451ec61a50
Introduce a uniform formatting style (#131)
The repository now contains a clang-format file which should be used when committing new code. Additionally, a new workflow job is added which checks the conformance of source files to the specified formatting rules.

Fixes #47.
2020-01-14 21:56:44 +01:00
Dan 66121f673d Fix typo in key used by tsMuxerGUI settings : 'famaly' to 'family' (#122) 2020-01-14 21:40:25 +01:00
Daniel Kamil Kozar a4cc39fb10
Non-functional GUI improvements
* Don't include <QtGui>, which is a leftover from Qt4 and causes literally
  everything to be pulled into the TU.
* Use forward declarations instead of includes where possible.
* Replace aggregated Ui* classes with aggregation via pointer, which allows
  these classes to be forward-declared and thus further reduce the number of
  included headers. Aggregation via pointer has been the default in Qt Creator
  for some time now.
* Fix minor warnings reported by Clang.
* Move QnCheckBoxedHeaderView to a separate file.
* Move QtvCodecInfo to a separate file, change initializer list to inline member initialization.
* Create an actual QMake .pro file instead of stuffing it in MXE build scripts.
* Fix 32-bit integers being used as pointers to QtvCodecInfo objects in 64-bit Windows builds.
* Update information in the "About" tab.
2020-01-11 23:46:04 +01:00
Daniel Kamil Kozar 1701957c05
Avoid using the "general" group in QSettings due to QTBUG-28893 (#135)
Fixes #132
2020-01-11 18:28:31 +01:00
jcdr428 99bcae79a7 Fix fps info in HEVC streams and locales using commas as decimal point (#130) 2020-01-11 12:01:09 +01:00
jcdr428 5935cef416
Remove radioButtonBluRayUHD 2020-01-08 17:57:45 +02:00
jcdr428 bc247acebc
Correction CheckBox -> QCheckBox 2020-01-08 17:55:18 +02:00
De Ryck c002fee286 Move BD V3 option to Blu-ray tab
Version is automatically switched to V3 when HEVC is detected.
In case the user wants to force the V3 format for AVC, he will be able to do it via the V3 option in the Blu-ray tab.
2020-01-08 13:33:40 +02:00
jcdr428 21b41bc8f5 Update tsmuxerwindow.cpp (#119)
Allow folder dialog (and not file dialog) to show when UHD Blu-ray folder is selected.
2020-01-08 06:50:42 +01:00
jcdr428 ab2d95db1b
Correct UHD Bluray Folder Behavior
This fixes e.g. lack of chapters with UHD Bluray Folder option.

(see https://forum.doom9.org/showthread.php?p=1894587#post1894587)
2020-01-04 08:59:38 +01:00
Daniel Kamil Kozar 717f5f821e
Disable replacing spaces with underscores in the temporary meta file path (#97)
Unfortunately, we don't have enough history to be able to tell for sure, but it
seems like this was introduced somewhere between 2.6.12 and 2.6.13. The only
reason for this replacement that I can see is trying to prevent the shell from
treating the space-separated parts of the file paths as separate tokens.
Unfortunately, the string returned by QDir::tempPath() can legitimately contain
spaces, as there is nothing preventing the user from having a "fancy" temporary
directory path.

The real reason behind this line remains unknown. tsMuxer GUI currently doesn't
use shell for spawning processes, and arguments to the binary are properly
passed as a QStringList instead of one long string with command and arguments,
where the described issue could actually occur.

Fixes #93.
2019-12-29 22:13:31 +01:00
Daniel Kamil Kozar c22aada8df
Fix numbers appearing in places where the language code should
The original code paired the position inside the langComboBox with an address
into the shortLangList/fullLangList arrays by leveraging the second QVariant
argument of QComboBox::addItem. This was achieved by casting the pointer firstly
to a void*, and then to a qulonglong. However, the code using these QVariants
in QComboBox signal handler functions has since been changed to always call
toString(), which was incorrect and led to addresses being shown in the UI in
the form of longish decimal numbers.

Funnily enough, it looks like these shenanigans weren't even really needed : the
only part of the language pair used in the signal handler functions is the
three-letter code, which can be simply converted to a QString at the time
QComboBox::addItem is called.

Fixes #87.
2019-12-21 20:51:53 +01:00
Daniel Kamil Kozar 565c1a31ca
Use QStandardPaths::findExecutable instead of QFile::exists for finding the main binary
Fixes #78
2019-12-15 01:16:24 +01:00
Dan Bryant aaecc7c1d6 Merging pull request #67 2019-12-10 22:42:23 +00:00
Dan d9ac5f8bdc
Merge pull request #66 from xavery/fixes-and-cleanups
Fixes and cleanups
2019-12-10 21:51:10 +00:00
Dan 6c75b43606
Merge pull request #64 from xavery/use-qt5-connect-syntax
Replace the old QObject::connect syntax with the new one supported since Qt5
2019-12-10 21:37:49 +00:00
Daniel Kamil Kozar 6bc34a6e54
Replace custom platform defines with standard ones 2019-12-08 16:31:56 +01:00
Daniel Kamil Kozar 5ee30737be
Make the GUI look for the main binary under "tsmuxer" and "tsMuxeR"
The all-lowercase binary name is the one that's emitted by the current build
system, while the old one is kept for backwards compatibility.

Fixes #63
2019-12-07 19:37:30 +01:00
Daniel Kamil Kozar b2ac11b0b5
Replace the old QObject::connect syntax with the new one supported since Qt5
The old syntax is essentially based on the "normalised representation" created
by the SIGNAL and SLOT macros, with potential mismatched only being caught at
runtime. The new syntax causes these errors to appear in compile time.
2019-12-07 19:17:19 +01:00
Daniel Bryant eaba2aaf1a amend cmd line option for UHD Blu-Ray and add option to tsMuxerGUI 2019-11-26 16:49:50 +00:00
Daniel Kamil Kozar 9994ee5f44
Completely rework the CMake build system 2019-10-25 17:28:31 +02:00
Dan Bryant c6d101b7c1 update for building with Msys2 on Windows 2019-08-11 17:10:03 +01:00
Dan Bryant 8b27c97bb8 update for Qt5 on Windows 2019-08-10 22:52:51 +01:00
Dan Bryant 2a3f1b5976 update build dependencies, update readme 2019-08-10 18:36:52 +01:00
Dan Bryant 0c9f5291d7 apply Selur's patch for Qt5 compatibility 2019-08-10 18:07:43 +01:00
Dan Bryant 00a5db41fe update for building on Windows 2019-07-28 22:49:07 +01:00
Dan Bryant 71f0f89c93 add source code and changelog 2019-07-15 16:52:40 +01:00