Commit Graph

15477 Commits

Author SHA1 Message Date
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
Andrei Stepanov
c4961179eb
program translations: update Russian 2022-11-06 11:10:57 +01:00
TMTisFree
38dc04a187
program translations: update French 2022-11-06 11:10:50 +01:00
TMTisFree
5291d2097c
man page translations: update French 2022-11-06 11:00:37 +01:00
Moritz Bunkus
a9c7243e65
configure: FLAC: use pkg-config for libFLAC detection
Newer libFLAC in MXE require a preprocessor definition of
`FLAC__NO_DLL` to signal that libFLAC wasn't built as a DLL. Otherwise
the linker will look for the wrong symbol names.
2022-11-05 19:36:16 +01:00
Antoni Bella Pérez
73bb951232
program translations: update Catalan 2022-11-04 19:05:50 +01:00
Moritz Bunkus
12e5b75969
autogen.sh: remove ineffective version check for autoconf 2022-11-04 18:57:40 +01:00
Moritz Bunkus
a03df87fe8
configure: adjust to autoconf 2.71 & require at least 2.69 2022-11-04 18:56:43 +01:00
Moritz Bunkus
0af0762818
GUI: Linux: disable desktop notification functionality for the time being 2022-11-04 16:04:38 +01:00
Moritz Bunkus
38d8ae3f52
GUI: optionally show a desktop notification after job queue changes (Linux)
This lays the foundation for showing desktop notifications in the
preferences via the "run programs after…" mechanism. It also adds an
implementation for Linux/Unix systems via Qt & D-Bus.
2022-11-04 15:26:58 +01:00
Moritz Bunkus
95fe2f1f62
configure: define HAVE_QTDBUS for Qt6 on non-Windows
The module itself had already been required anyway, but that wasn't
signalled to the source code.
2022-11-04 15:13:03 +01:00
Moritz Bunkus
20bb32e4c0
tests: use json-schema gem instead of json_schema
The former is much more popular and seems to be actively maintained.
2022-11-04 13:43:50 +01:00
Moritz Bunkus
e1897dc4a1
Maxtroska reader: skip EBML Void, Crc32, Dummy elements before Segment 2022-11-03 21:47:52 +01:00
Moritz Bunkus
aa5db255b0
merge: optionally write an EBML Void element before the first segment
Can be activated with the `--debug void_before_segment` option.
2022-11-03 21:36:08 +01:00
Moritz Bunkus
9e065de814
avilib: prevent format buffer overflow 2022-11-03 21:17:27 +01:00
Moritz Bunkus
0cd6f01878
build system: disable stringop-overflow warning
…due to too many false positives with libfmt. See
https://github.com/fmtlib/fmt/pull/2442#issuecomment-891263411
and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443
2022-11-03 21:16:13 +01:00
Moritz Bunkus
2c55c3d67e
VobSub extractor: refactoring codec private comparison 2022-11-03 13:15:47 +01:00
Moritz Bunkus
577f4dd26a
tests: add case for extracting VobSubs without CodecPrivate 2022-11-03 13:15:17 +01:00
Moritz Bunkus
6718ac399e
extract: use & prefer IETF BCP 47 language tags for subtitle extraction 2022-11-03 13:05:31 +01:00
Moritz Bunkus
075f5ad14f
Merge remote-tracking branch 'tomty89/vobsub' 2022-11-03 12:38:16 +01:00
Moritz Bunkus
5ddda6d76b
GUI: mux: attachments: attach files from dropped directories
Implements #3410.
2022-11-03 12:35:27 +01:00
Timofey Lisunov
138609418a
program translations: update Russian 2022-11-03 11:57:56 +01:00
Roberto Boriotti
3cc1766793
program translations: update Italian 2022-11-03 11:57:49 +01:00
Israel Lucas Torrijos
be154679a0
program translations: update Spanish 2022-11-03 11:57:41 +01:00