Commit Graph

15350 Commits

Author SHA1 Message Date
Moritz Bunkus
13ebdc5500
bump version number, set release code name 2023-02-12 16:53:48 +01:00
Moritz Bunkus
0f4f0688fe
re-order NEWS for easier consumption 2023-02-12 16:48:41 +01:00
Moritz Bunkus
0576d0422b
UI: tool selector: use flatter styling for selected tool 2023-02-12 16:45:49 +01:00
Moritz Bunkus
2f34f7e504
AVC & HEVC packetizers: check & require pixel dimensions to match when appending
Fixes #3480.
2023-02-12 16:22:10 +01:00
Moritz Bunkus
97ce60f1d1
avoid use of deprecated functions from boost::filesystem 2023-02-08 22:46:25 +01:00
Moritz Bunkus
fd9f806ad4
avoid warnings about set but unused variables 2023-02-08 22:46:12 +01:00
Moritz Bunkus
322510a661
configure: Qt6: hide qmake errors about missing modules when probing 2023-02-08 20:05:56 +01:00
Moritz Bunkus
be03a25a0b
macOS: support for building on 12 Monterey with XCode 14 & Qt 6.4.x 2023-02-08 20:03:53 +01:00
Moritz Bunkus
718290dd7c
configure: Qt6: actively probe for QtDbus & QtMultimedia modules
Relying on QtDbus' presence on non-Windows systems doesn't have to be
OK; e.g. on macOS it isn't present either.
2023-02-08 20:03:45 +01:00
Moritz Bunkus
f665fec996
SRT packetizer: strip newlines at end of whole entry 2023-01-24 13:49:42 +01:00
Moritz Bunkus
82b1ee9603
initialize boost::filesystem locale to UTF-8
Internally MKVToolNix always stores UTF-8-encoded narrow
strings. However, on Windows boost::filesystem uses the OEM CP by
default for narrow strings.

Fixes #3473.
2023-01-22 15:15:18 +01:00
Burak Yavuz
d7fd463a41
program translations: update Turkish 2023-01-21 12:27:16 +01:00
Timofey Lisunov
e2a76910c6
program translations: update Russian 2023-01-21 12:27:04 +01:00
Roberto Boriotti
21fd654f28
program translations: update Italian 2023-01-21 12:26:58 +01:00
TMTisFree
215afd3661
program translations: update French 2023-01-21 12:26:52 +01:00
Antoni Bella Pérez
6b0479696c
program translations: update Catalan 2023-01-21 12:26:46 +01:00
Moritz Bunkus
d02bf966f6
translations: update list of translatable strings; update German translation 2023-01-15 19:25:21 +01:00
Moritz Bunkus
f856998012
cosmetics: alignment 2023-01-15 19:18:26 +01:00
Moritz Bunkus
95fc41c833
SRT packetizer: add hack for disabling stripping whitespaces
The hack is called `keep_whitespaces_in_text_subtitles`.

Part of the implementation of #3470.
2023-01-15 19:17:50 +01:00
Moritz Bunkus
4139dba750
extract: SRT: don't strip whitespaces from start/end of whole entry
First of all, it wasn't stripping whitespaces from each line of the
entry, but only from the start of the first & the end of the last
line (in other words: from the start & end of the whole entry).

Second, modifying during extraction is the wrong thing to do
anyway. The only modification done is removing any existing line feed
characters in order to have consistent Unix-style line endings.

Part of the fix of #3470.
2023-01-15 19:17:50 +01:00
Moritz Bunkus
9421c4b1e2
SRT reader: strip leading & trailing spaces & tabs from every line
So far only trailing whitespaces were only stripped from the last
line.

Part of the fix of #3470.
2023-01-15 19:17:50 +01:00
Moritz Bunkus
29f4f99e1b
always build translation_c::initialize_std_and_boost_filesystem_locales
That function is used & needed even if MKVToolNix is built without libintl.
2023-01-14 18:31:06 +01:00
Moritz Bunkus
8a2da1a252
all: switch back to requiring & using Boost's file system library
gcc's implementation of the C++17 file system library doesn't support
UNC paths of style `\\?\…` on Windows. There doesn't seem to be any
progress towards implementing support for it.

Fixes #3058. See also #2916.
2023-01-14 17:49:45 +01:00
Moritz Bunkus
5397bb34ec
GUI: mux: handled added source files before non-source files (e.g. chapters)
Added file types (both via the "add" button and via drag & drop) can
be either regular source files (files that are listed on `mkvmerge`'s
command line without preceding options; e.g. Matroska, MP4, SRT…) &
non-source files (for which special options are needed, e.g. chapter
files with `--chapters /path/to/file.xml`).

Until this commit all non-source file types were handled first. They
were always set in the currently-selected tab. All source files were
handled later, including the handling of where to add them (current
tab, all to one new tab, one new tab per file…).

This commit reverses the order: source files are handled first,
non-source files afterwards. The result is more consistent if the
choice where to add them is "all in a single new tab". With the older
model all non-source files were always set in the tab that was open
before adding the files. With the commit all added files will end up
in the new tab, both source & non-source files.

Fixes #3469.
2023-01-08 14:59:46 +01:00
Moritz Bunkus
89f0fd93a8
po: normalize all POs 2023-01-06 23:46:04 +01:00
Moritz Bunkus
66740a63b9
mkvmerge: prefer unambiguously detected file types over detection by extension
Can prevent mis-detection if the file name has the wrong
extension. For example, a WAV file with DTS inside but with an
extension of `.dts` might be detected as the wrong type of DTS.

Fixes #3462.
2023-01-06 23:12:58 +01:00
Moritz Bunkus
ab6455f68c
build system: fix compatibility with Ruby 3.2.0
Several deprecated functions were removed: `Dir.exists?`,
`File.exists?` & `FileTest.exists?`.  Instead of those
`FileTest.exist?` must be used (without the `s`). See the release
notes for Ruby 3.2.0 as well as the issue for removing the functions:

https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/
https://bugs.ruby-lang.org/issues/17391
2023-01-02 22:57:21 +01:00
Moritz Bunkus
63ebac6a56
bump version number, set release code name 2023-01-02 19:29:27 +01:00
Moritz Bunkus
25f42bc25a
FLV reader: add support for HEVC/H.265 in FLV
Implements #3466.
2023-01-01 18:24:05 +01:00
Moritz Bunkus
75ade990e8
AUTHORS: add Dutch translator Camiel K 2022-12-16 13:20:45 +01:00
Dian Li
7a0ad582fd
program translations: update Chinese Simplified (China) 2022-12-16 13:20:04 +01:00
Fúlvio Alves
e8c71d5cc5
program translations: update Brazilian Portuguese 2022-12-16 13:19:54 +01:00
Grzegorz Pruchniakowski
983e24732a
program translations: update Polish 2022-12-16 13:19:44 +01:00
Camiel K
7547b32c67
program translations: update Dutch 2022-12-16 13:19:24 +01:00
Moritz Bunkus
a244f7d0c7
cosmetic: doc translations: adjust comment style 2022-12-16 13:17:11 +01:00
Moritz Bunkus
04ff8f76a5
macOS packaging: read config.local.sh if present 2022-11-24 20:46:07 +01:00
Moritz Bunkus
99ee3d5f85
macOS packaging: make path to build-number file local 2022-11-24 20:45:41 +01:00
Moritz Bunkus
ac718c9a02
configure: link against Ogg during FLAC detection
On my macOS installation `pkg-config --libs flac` doesn't include Ogg,
and the linker won't search for the library automatically. This means
that FLAC detection fails due to unresolved, Ogg-related symbols.

Fixes #3439.
2022-11-24 20:44:20 +01:00
Moritz Bunkus
ad3dfa6c49
GUI: job output: "clear output" resets full output, too
The job output is stored in two places: the UI elements visible to the
user, and an internal string array. The latter is used when saving the
output as it reflects the order in which lines arrived in,
intermingling regular output lines & warnings/errors properly.

The "clear output" functionality only cleared the UI elements, but not
the internal string array. This meant that any "save output" action
run after a "clear output" action would write all lines received
during the current run of MKVToolNix GUI.

Now "clear output" also clears the internal string array.

Fixes #3438.
2022-11-24 19:10:34 +01:00
Moritz Bunkus
bd95b10109
Base64 decoder: only make two allocations instead of resizing in loop 2022-11-14 20:09:41 +01:00
Moritz Bunkus
6374096d6c
tests: add unit test for Base64 encoding & decoding 2022-11-14 19:59:06 +01:00
Moritz Bunkus
275e21684f
fix spelling mistake in info where splitting was done (GUI mode)
See #3421.
2022-11-14 19:39:48 +01:00
Moritz Bunkus
b947762a71
macOS build: set default target directory ~/opt 2022-11-13 15:00:17 +01:00
Moritz Bunkus
d5cfc58eb0
bump version number, set release code name 2022-11-13 12:55:13 +01:00
Moritz Bunkus
39cbe03aa2
re-order NEWS for easier consumption 2022-11-13 12:49:53 +01:00
Moritz Bunkus
a8d189ff3f
AV1 parser: reset position properly if not enough data for parsing OBU header
The OBU header is at least one byte long, and mkvmerge only really
supports headers with a size field present, making it at least two
bytes long. However, the size field is encoded with a variable-width
encoding (leb128), making it impossible to determine if there's enough
data to parse the header without parsing the header.

If there's not enough data, a "end of data" exception is thrown by the
bit reader. Unfortunately that exception hadn't been caught in the AV1
parser, causing it to restart the next parse in the middle of an OBU,
effectively halting all AV1 parsing at that point.

This fix will remember the last known-good parser position before
trying to parse the OBU header. If that fails with an "end of data"
exception, the position will be reset to the last known-good position,
and parsing will resume from there once more data has been added.

Fixes #3431.
2022-11-07 20:57:29 +01:00
Moritz Bunkus
5a48eee5e7
AV1 parser: add more debug output 2022-11-07 20:57:28 +01:00
Moritz Bunkus
aa2c5941ea
AV1: shrink OBU size fields if possible 2022-11-07 20:57:28 +01:00
Moritz Bunkus
62b9bc38ff
bit writer: add put_leb128() implementation for AV1 2022-11-06 20:18:30 +01:00
Moritz Bunkus
bba41f81dd
AV1: move leb128 reading function into bit reader class 2022-11-06 19:59:26 +01:00