Commit Graph

12203 Commits

Author SHA1 Message Date
Moritz Bunkus
6f8463cd96
macOS build: use cache file for configure 2018-11-04 17:28:54 +01:00
Moritz Bunkus
f2d27d7bd3
AV1: remove unused lambda capture 2018-11-04 15:26:01 +01:00
Moritz Bunkus
4fc889a6fc
GUI: don't instantiate Util::Settings before Application
There's a catch 22 type situation: the `Util::Settings` class requires
the `Application` class to have been instantiated in order to set a
lot of default values when the ini file doesn't exist or when certain
settings don't exist in it. However, the DPI scaling must be set
before the `Application` class is instantiated, and that setting is
stored in said ini file.

As a workaround read this one setting from the ini file directly
without slurping the whole ini file into the `Util::Settings`
instance. This only requires an instance of `QSettings` which, in
turn, only requires that the organization name & domain as well as the
application name have been set in `QApplication`.

Fixes #2424.
2018-10-31 19:53:49 +01:00
Moritz Bunkus
6d71b8f4a2
translations: update list of translatable strings; update German translation 2018-10-31 16:53:10 +01:00
Xabier Aramendi
13f483cbdd
translations: update Basque 2018-10-31 16:12:56 +01:00
Moritz Bunkus
1200f0db95
GUI: add option for disabling automatic high DPI scaling
Should be a workaround for those affected by #2415.
2018-10-29 21:44:32 +01:00
Moritz Bunkus
ecb0bac6f1
GUI: application manifest: declare per-monitor DPI awareness v2
See #2415.
2018-10-28 13:48:44 +01:00
Moritz Bunkus
c6ad3ba3cb
generate manifest.xml files from templates 2018-10-28 13:48:27 +01:00
Moritz Bunkus
afecdcc212
Windows apps: include application manifest properly
The resource compiler includes identifiers that aren't defined as
preprocessor symbols verbatim as strings. Normally `RT_MANIFEST` is
defined as the integer resource 24, but if the header file where it is
defined (`winuser.h`) isn't included, the verbatim string
`RT_MANIFEST` will be used silently.

See #2415.
2018-10-28 12:16:58 +01:00
Moritz Bunkus
7e496e696d
tests: don't run mkvinfo on TALOS 2018-0694 test file
Older libEBML or libMatroska versions don't validate the parent/child
sizes properly. This means that tests running on those older versions
cause mkvinfo to fail (with an exception = harmlessly).
2018-10-26 10:21:36 +02:00
Moritz Bunkus
3b9b39163e
AppImage: fix handling of revision that are tags second try 2018-10-26 10:15:26 +02:00
Moritz Bunkus
fc0946db0a
bump version number, set release codename 2018-10-25 22:22:31 +02:00
Moritz Bunkus
558fbc986f
GUI: sys info: add couple of relevant Windows registry keys 2018-10-25 22:22:31 +02:00
Andrei Stepanov
4842d4540e
translations: update Russian 2018-10-25 22:22:31 +02:00
TMTisFree
e0dbdad3bb
translations: update French 2018-10-25 22:22:31 +02:00
Moritz Bunkus
43021d16c7
kax_file_c, ElementReader: only delete returned upper-level element if found
The `EbmlElement::Read` function returns two values via reference
parameters. They're called `UpperEltFound` (an integer) and
`FoundElt` (a pointer to an EBML element). They're used for passing
back the first element found (if any) that is not a child of the
element currently being read so that the calling code can continue
parsing the file using the upper-level element.

If the calling code doesn't need that element, it has to delete it
itself. However, the code must not simply rely on the `FoundElt`
pointer being not null as the `Read` function assigns temporary
results to that variable. Depending on the file content, that
temporary element may have already been deleted by the `Read`
function. When the calling code then simply deletes `FoundElt` itself,
this leads to a typical case of use-after-free.

Instead the calling code must only work with the returned `FoundElt`
pointer if the other returned value, `UpperEltFound`, trueish in the
C++ sense (if it isn't 0). Then and only then may the calling code
attempt to delete the object `FoundElt` points to.

This vulnerability allows arbitrary code execution via specially
crafted Matroska files. It was reported by Cisco TALOS on 2018-10-25
and is known as TALOS 2018-0694.
2018-10-25 22:22:31 +02:00
Moritz Bunkus
fac242710e
libEBML: update to latest upstream version 2018-10-25 21:30:57 +02:00
Moritz Bunkus
c853050594
AppImage: fix handling of revision that are tags
For a tag such as "release-28.0.0", `git describe --tags` won't append
a commit number suffix.
2018-10-25 21:30:57 +02:00
taxen
2371689bac Update ja.po: one typo (終了<-修了) 2018-10-25 08:28:12 +00:00
Moritz Bunkus
c1bea9233f
bump version number, set release code name 2018-10-23 20:46:33 +02:00
Moritz Bunkus
4fc369a28d
news: update 2018-10-23 20:45:12 +02:00
Roberto Boriotti
24b7868a30
translations: update Italian 2018-10-23 18:30:34 +02:00
Dian Li
a4f121b30b
man page translations: update Chinese Simplified 2018-10-23 18:30:13 +02:00
Dian Li
9e53670811
translations: update Chinese Simplified 2018-10-23 18:30:08 +02:00
Antoni Bella Pérez
a13c28cd18
man page translations: update Catalan 2018-10-23 18:28:25 +02:00
Antoni Bella Pérez
5ac588a51c
translations: update Catalan 2018-10-23 18:28:15 +02:00
Moritz Bunkus
e330bc6d09
GUI: info: don't abort on void elements after clusters
The info tool uses a loop scanning level 1 elements starting with the
first cluster in order to provide a response UI to the user. That loop
is exited when the end of the file is reached or a higher-level
element (level 0) is encountered.

The `EbmlStream::FindNextElement` function used for retrieving the
next element sets the `upper_lvl_el` parameter to a non-zero value
when it finds global elements such as an EBML Void element. However, a
scan of level 1 elements should not abort on an EBML Void
element (generally on any type of global elements) but only when a
real level 0 element is found.

Fixes #2413.
2018-10-23 16:04:12 +02:00
Moritz Bunkus
a4688119fd
kax_file_c: make is_(global|level1)_element_id static
They don't need anything from an instance and are useful outside the
class, too.
2018-10-23 15:51:29 +02:00
Moritz Bunkus
9657810da5
vint_c: add convenience constructor for converting from EbmlId 2018-10-23 15:50:51 +02:00
Moritz Bunkus
1a3adffb4c
Matroska reader: AV1: recreate av1C when reading files by mkvmerge v28.0.0
Last part of the fix for #2410.
2018-10-21 22:51:02 +02:00
Moritz Bunkus
c603b7af82
Matroska reader: refactor: use macro for version number comparison 2018-10-21 22:45:39 +02:00
Moritz Bunkus
b226553df6
Matroska reader: cosmetics: re-order function definitions 2018-10-21 22:44:52 +02:00
Moritz Bunkus
a346aadfae
AV1 parser: include OBU common data in av1C
Part of the fix of #2410.
2018-10-21 22:29:43 +02:00
Moritz Bunkus
1a6286e778
AV1 parser: fix bug in sequence header parser
The two header fields `delta_frame_id_length_minus2` and
`additional_frame_id_length_minus1` are only present if
`reduced_still_picture_header` is not set but
`frame_id_numbers_present_flag` is.

Part of the fix for #2410.
2018-10-21 22:14:16 +02:00
Moritz Bunkus
4af926cc20
bump version number, set release codename 2018-10-20 16:29:36 +02:00
Moritz Bunkus
5ff777de16
news: reorder for easier consumption 2018-10-20 16:28:25 +02:00
Moritz Bunkus
fe5e19753f
kax_analyzer_c: fix one-byte gap handling
When surrounding elements have been written using eight-byte size
length fields, the analyzer cannot enlarge the element
anymore. Instead, it can shrink them by one byte and move the head
up. That way the former one-byte gap will become a two-byte gap
instead. A new, empty EBML void element can then be placed in the gap
instead.

libavformat from ffmpeg/libav writes most level 1 elements with
eight-byte size length fields. Files created by it are therefore the
prime candidate for hitting this but.

Fixes #2406.
2018-10-20 16:21:35 +02:00
Moritz Bunkus
420fffb082
kax_analyzer_c: add more debug output about handling void elements 2018-10-20 15:34:22 +02:00
Timofey Lisunov
ecaac5877c
translations: update Russian 2018-10-17 14:02:40 +02:00
Burak Yavuz
0edbe2e48f
translations: update Turkish 2018-10-17 14:02:40 +02:00
Andrei Stepanov
a211cadbb7
translations: update Russian 2018-10-17 14:02:40 +02:00
TMTisFree
edb4d18c17
translations: update French 2018-10-17 14:02:40 +02:00
Israel Lucas Torrijos
14d358d507
translations: update Spanish 2018-10-17 14:02:40 +02:00
Antoni Bella Pérez
80a35efc7a
man page translations: update Catalan 2018-10-17 14:02:39 +02:00
Antoni Bella Pérez
3bab443630
translations: update Catalan 2018-10-17 14:02:39 +02:00
Moritz Bunkus
2f5b9149a0
VP9 packetizer: build codec private according to VP9 codec mapping
Implements #2379.
2018-10-13 18:48:33 +02:00
Moritz Bunkus
57aa99583f
translations: update list of translatable strings; update German translation 2018-10-13 17:14:04 +02:00
Moritz Bunkus
489227d922
SSA/ASS: improve warning message about invalid timestamps
The original warning just said "malformed line", which didn't give the
user much to go on.
2018-10-13 16:53:39 +02:00
Moritz Bunkus
06a3f94fff
translations: update list of translatable strings; update German translation 2018-10-12 17:23:32 +02:00
Burak Yavuz
3e86aa5e7f
translations: update Turkish 2018-10-12 17:21:36 +02:00