Commit Graph

14167 Commits

Author SHA1 Message Date
Moritz Bunkus
5df94b0387
Boost: test for multi-precision library; require at least v1.66.0
I know compilation fails in the multi-precision library with 1.60.0,
the previous requirement. The oldest OS I still support is CentOS 7,
which has 1.69 via EPEL. CentOS 8 is next which comes with 1.66.0, and
that compiles fine. So let's take that as the new baseline.
2021-05-30 14:24:21 +02:00
Moritz Bunkus
a14c083626
tests: intentional update due to translation update for Romanian 2021-05-30 13:08:10 +02:00
Moritz Bunkus
dc53bb818d
man page: use "term" instead of &term& 2021-05-30 13:05:47 +02:00
Andrei Stepanov
028186f2e7
man page translations: update Russian 2021-05-30 13:01:47 +02:00
TMTisFree
dfa4785328
man page translations: update French 2021-05-30 13:01:41 +02:00
Israel Lucas Torrijos
19442b1ca4
man page translations: update Spanish 2021-05-30 13:01:34 +02:00
Antoni Bella Pérez
78ba213efc
man page translations: update Catalan 2021-05-30 13:01:25 +02:00
Kai Mao
be3184151c
translations: update Chinese Traditional 2021-05-30 13:00:27 +02:00
Andrei Stepanov
8fc5b1280f
translations: update Russian 2021-05-30 13:00:18 +02:00
Daniel
f5f9572bb2
translations: update Romanian 2021-05-30 13:00:12 +02:00
Roberto Boriotti
d6b6d74be2
translations: update Italian 2021-05-30 12:59:56 +02:00
TMTisFree
b3e402b168
translations: update French 2021-05-30 12:59:50 +02:00
Israel Lucas Torrijos
3c3829bbcb
translations: update Spanish 2021-05-30 12:59:41 +02:00
Antoni Bella Pérez
05af1f16e4
translations: update Catalan 2021-05-30 12:59:31 +02:00
Moritz Bunkus
a57cfc2e1a
GUI: ensure first selected entry is visible after moving entries up/down
Implements #3123.
2021-05-30 12:55:35 +02:00
Moritz Bunkus
3ebb7dfbe2
translations: update list of translatable strings; update German translation 2021-05-29 23:07:07 +02:00
Moritz Bunkus
e43a62e570
MP4 reader: use 128-bit arithmetic for timestamp calculations avoiding overflows
Overflows can happen if the track's/file's time scale is large.

Fixes #3124.
2021-05-29 22:57:28 +02:00
Moritz Bunkus
899527f1f8
GUI: chapters: add/fix support for multiple languages/countries in display 2021-05-29 22:57:28 +02:00
Moritz Bunkus
ba0a453e88
BCP47: operator< for language_c 2021-05-29 22:57:28 +02:00
Moritz Bunkus
f0ec9c5de6
chapters: move "set multiple languages in display" code to common function 2021-05-29 22:57:28 +02:00
Moritz Bunkus
bc90f20844
debugging: default to dumping to string with values 2021-05-29 17:54:24 +02:00
Moritz Bunkus
ce9e8cc554
chapter parser: re-write checking & normalizing country elements
The old code assumed that there's at most one country element within
the same "chapter display" element. This doesn't have to be the case
as the specs lists the country as multiple.

Part of the fix of #3120.
2021-05-29 17:53:03 +02:00
Moritz Bunkus
f617989a31
chapter parser: re-write checking & normalizing IETF & legacy language elements
The old code assumed that there's at most one IETF & one legacy
language element within the same "chapter display" element. This
doesn't have to be the case as the specs lists both language elements
as multiple.

Part of the fix of #3120.
2021-05-29 17:52:43 +02:00
Moritz Bunkus
6b0b054c21
merge: debugging option for dumping chapters after parsing 2021-05-29 17:22:07 +02:00
Moritz Bunkus
607ba88c74
OGM-style chapters: handle any number of decimal places up to 9, not just 3
Fixes #3121.
2021-05-28 21:12:15 +02:00
Moritz Bunkus
b26c23c61e
mkmverge, mkvpropedit: only remove default-value mandatory elements if not multi
There are elements in Matroska that are mandatory, have a default
value and may occur multiple times within the same master, mainly the
"chapter language" element. The semantics in such a case are that the
default value must only be used if NO OTHER element of the same type
is present within the same master element.

If a "chapter display" contains, let's say, a string for the languages
German & English, two "chapter language" elements must be
used. Checking with the specs reveals that English is the default
value for "chapter languages". Therefore one might think we can omit
writing the instance for "chapter language" with value "English". But
that would leave one "chapter language" element present with "German"
as the value, and semantically that would be the value a reader must
use.

This patch changes how default elements are removed before writing a
master element. It now iterates over all elements keeping track of how
many elements of each type there are within the same master. Mandatory
elements set to their default value will now only then be removed if
there is only that one instance of the mandatory element.

Part of the fix of #3120.
2021-05-27 19:26:28 +02:00
Moritz Bunkus
ddae56985c
GUI: use proper shell splitting on additional arguments
Part of #3115.
2021-05-25 16:07:41 +02:00
Moritz Bunkus
4b3530d026
GUI: prefs: don't show "disalbe High DPI scaling" checkbox on Qt 6
The logic was the wrong way around: starting with Qt 6, the High DPI
scaling mechanism cannot be turned off anymore. So only show the
checkbox for Qt < 6.

Part of #3115.
2021-05-25 14:52:35 +02:00
Moritz Bunkus
02141547fb
GUI: prefs: avoid memory leak
Views don't take ownership of models via `view->setModel()` as models
can be used by multiple views. Therefore assign the model a parent so
that it'll be deleted when the parent (the preferences dialog) is
deleted.
2021-05-25 14:45:28 +02:00
Moritz Bunkus
f1c0711f0c
AppImage: default to "latest" Qt version (via symlink) 2021-05-25 13:31:28 +02:00
Moritz Bunkus
cc87a2e577
configure: properly leave spaces before flags for moc
Part of the implementation of #3115.
2021-05-24 21:17:32 +02:00
Moritz Bunkus
8cf8251d6b
Qt 6 detection: try compiling & linking a test program
Prevents using the system qmake6 in cross-compilation situations.

Also cleans up the paths to `lconvert`, `moc`, `rcc` and `uic` from
the Qt 6 detection so that Qt 5 can detect their own version.

Part of the implementation of #3115.
2021-05-24 21:12:39 +02:00
Moritz Bunkus
2848178815
configure: detect & use Qt 6 if present, prefer over Qt 5
Qt 6

`configure` will look for Qt 6 first and only continue looking for Qt
5 if Qt 6 isn't found or disabled via `--disable-qt6`.

Qt 6 detection works by first looking for the `qmake6` binary. Its location
can be specified with the `--with-qmake6=…` option.

All other Qt 6 related facts (such as compiler & linker flags or the
position of the other required tools such as `lconvert`, `moc`, `rcc` and
`uic`) will be derived from the output generated by `qmake6`.

Note that at this point Qt 6 is not yet supported for the cross-compilation
build to Windows, nor is a static Qt 6 build supported yet.

Note that the command line options `--enable-static-qt`,
`--with-qt-pkg-config-modules` and `--without-qt-pkg-config` only apply to
the Qt 5 and have no effect on Qt 6.

Qt 5

The options for specifying the position of the tools (`--with-moc=…`,
`--with-rcc=…` and `--with-uic=…`) have been removed. Their position
will now be derived from the output generated by `qmake`.

General

Completely disabling the GUI now requires passing both `--disable-qt6`
and `--disable-qt` options.

Part of the implementation of #3115.
2021-05-24 20:53:09 +02:00
Moritz Bunkus
11046de86a
source code: add compatibility code for building with Qt 6
Currently this still requires patching `build-config` after having run
`configure` and providing the correct values for `QT_CFLAGS`/`QT_LIBS`
manually.

Part of the implementation of #3115.
2021-05-24 20:53:08 +02:00
Moritz Bunkus
c84dff0086
configure: Qt 5: remove old and not used anymore variable enable_gui 2021-05-24 20:42:08 +02:00
Moritz Bunkus
d00038f225
tests: intentional update due to bf987929c 2021-05-24 08:43:13 +02:00
Moritz Bunkus
bf987929ca
AVC & HEVC readers: add pixel dimensions & default duration
Implements #3116.
2021-05-24 08:28:01 +02:00
Moritz Bunkus
dd8afe136a
GUI: fancy tab widget: delete inserted tab objects properly 2021-05-24 08:28:01 +02:00
Moritz Bunkus
daf82ae780
HEVC ES parser: add debugging option for writing raw data to files 2021-05-24 05:10:28 +02:00
Moritz Bunkus
61aaf0b11a
hevc_dump: fix the format 2021-05-23 21:18:49 +02:00
Moritz Bunkus
37f560268d
info: make -X/--full-hexdump apply to binary elements on top of frames 2021-05-23 21:18:47 +02:00
Moritz Bunkus
985d34f4ba
NEWS & AUTHORS: update for the latest patches by Tom Yan 2021-05-23 20:25:50 +02:00
Moritz Bunkus
b20b7303fc
Merge remote-tracking branch 'tomty89/xtr_bg_keyframe' 2021-05-23 20:21:44 +02:00
Moritz Bunkus
b5c599b964
man page translations: update list of translatable strings; update German translation 2021-05-23 17:53:25 +02:00
Moritz Bunkus
b84d0172e7
translations: update list of translatable strings; update German translation 2021-05-23 17:50:54 +02:00
Moritz Bunkus
f2ab3985ae
NEWS: update for changes to "default track" flag handling
Part of the implementation of #3092.
2021-05-23 17:46:08 +02:00
Moritz Bunkus
3c0eb854a7
man page: update description of "default track" flag
Part of the implementation of #3092.
2021-05-23 17:46:08 +02:00
Moritz Bunkus
c8821481d8
GUI: multiplexer: overhaul "default track" flag handling
The Matroska specs have recently clarified regarding the intended
interpretation of the "default track" flag. If it is set, it is
supposed to signal to the player that this track is eligible for being
played by default, potentially taking other factors such as user
preferences regarding languages into account.

This implies that more than one track of each type can have this flag
set. For example, a Blu-ray disc with three audio tracks might have
the main audio in both English and Japanese, whereas the third audio
track contains the director's comments. In such a case the first two
tracks should have the "default track" flag set, the third one
shouldn't.

Earlier mkvmerge was enforcing that only one track of each type could
have the flag set. This restriction has been removed.

The GUI has been updated to allow setting the flag for multiple
tracks, too.

Part of the implementation of #3092.
2021-05-23 17:46:08 +02:00
Moritz Bunkus
229e3c9e5e
mkvmerge: overhaul "default track" flag handling
The Matroska specs have recently clarified regarding the intended
interpretation of the "default track" flag. If it is set, it is
supposed to signal to the player that this track is eligible for being
played by default, potentially taking other factors such as user
preferences regarding languages into account.

This implies that more than one track of each type can have this flag
set. For example, a Blu-ray disc with three audio tracks might have
the main audio in both English and Japanese, whereas the third audio
track contains the director's comments. In such a case the first two
tracks should have the "default track" flag set, the third one
shouldn't.

Earlier mkvmerge was enforcing that only one track of each type could
have the flag set. This restriction has been removed.

Part of the implementation of #3092.
2021-05-23 17:45:05 +02:00
Tom Yan
93badeff63 extract: remove the unused member references_valid from xtr_frame_t 2021-05-23 23:32:53 +08:00