Commit Graph

12279 Commits

Author SHA1 Message Date
Moritz Bunkus
29cdba5f29
chapters: take smallest timestamp in first file into account
When generating chapters mkvmerge has to take into account things such
as splitting and file linking. This requires shifting chapter
timestamps to match file timestamps. However, for files which don't
start at 0 generated chapters would be wrongfully shifted down to
below 0 causing invalid timestamps.

Fixes #2432.
2018-11-16 09:54:52 +01:00
Moritz Bunkus
d672c35354
tests: switch to mkvextract's new syntax 2018-11-16 09:51:30 +01:00
Moritz Bunkus
88ef93984f
MP4 reader: don't read atom data beyond parent atom's size
Fixes #2431.
2018-11-15 20:03:07 +01:00
Moritz Bunkus
497d9d0874
MP4 reader: re-factor parsing atoms
This moves code common to all atom parsing functions out into a single
function.
2018-11-15 19:54:24 +01:00
Jan Mazurczyk
4be727b933
translations: update Polish 2018-11-14 15:33:27 +01:00
Roberto Boriotti
81be5c41e6
translations: update Italian 2018-11-14 15:33:18 +01:00
Moritz Bunkus
40e33417ff
AppImage: use gcc 7 for compilation 2018-11-09 18:11:14 +01:00
Moritz Bunkus
89f0c6defb
RPM spec: require gcc 7 on CentOS 2018-11-09 16:45:57 +01:00
Moritz Bunkus
654907c6d1
use own byte swapping function instead of swab function from unistd.h
That function isn't available on all platforms, e.g. Android. See #2428.
2018-11-09 14:03:18 +01:00
Danko
2f54526dc3
translations: update Serbian Latin 2018-11-07 17:19:47 +01:00
Dian Li
8901f65e3a
translations: update Chinese Simplified 2018-11-07 17:19:47 +01:00
Andrei Stepanov
198991283c
translations: update Russian 2018-11-07 17:19:47 +01:00
Israel Lucas Torrijos
679f0a2639
translations: update Spanish 2018-11-07 17:19:47 +01:00
Antoni Bella Pérez
9b1aa1f8ea
translations: update Catalan 2018-11-07 17:19:47 +01:00
stevenlele
d27519df27 Fix mkvextract document typo 2018-11-06 06:13:40 +00:00
Moritz Bunkus
92a57a2e00
os.h: use "size of pointer" pre-processor define for determining build bit width
Fixes #2400.
2018-11-05 14:39:14 +01:00
Moritz Bunkus
3ee0b9276e
GUI: don't compile logind sleep inhibitor if QtDBus isn't available 2018-11-05 09:08:47 +01:00
Moritz Bunkus
e8342d4d92
GUI: inhibit sleep while the job queue is running on macOS
Part of the implementation of #2411.
2018-11-04 21:06:20 +01:00
Moritz Bunkus
2250476c3a
GUI: inhibit sleep while the job queue is running on Windows
Part of the implementation of #2411.
2018-11-04 18:58:06 +01:00
Moritz Bunkus
1ebbb284bd
GUI: inhibit sleep via logind while the job queue is running
This method works for systems where a logind-compatible D-Bus
interface is available for inhibiting sleep & idle states. Requires
Qt's D-Bus library.

Part of the implementation of #2411.
2018-11-04 18:58:06 +01:00
Moritz Bunkus
67a15ac514
remove unneeded OS-specific pre-processor checks 2018-11-04 18:58:06 +01:00
Moritz Bunkus
a2b9395e1d
logger_c: rename files logger_win.* → logger/windows.* 2018-11-04 18:58:06 +01:00
Moritz Bunkus
d1cd5f2ffe
build system: handle OS-specific source file names everywhere
…and not just in the src/mkvtoolnix-gui sub-directory.
2018-11-04 18:58:06 +01:00
Moritz Bunkus
589af4f0b7
itaskbarllist3: remove unneeded files
As Qt provides its own interface for reporting progress via task bar
icons, these Windows interface definition aren't needed anymore. They
were need back when mmg was a thing.
2018-11-04 18:58:06 +01:00
Moritz Bunkus
18b92708ae
common: remove unused #define MXMSG_DEBUG 2018-11-04 17:28:54 +01:00
Moritz Bunkus
0a6f3e89ec
debugging_c: always send via logger on Windows
The default target for debug messages writes to standard output. This
will end up in nirvana for GUI applications on Windows that don't have
a console allocated — such as MKVToolNix GUI. Therefore always send it
via the logger class, whose default target is Windows' debugging
facility allowing capture via DebugView.
2018-11-04 17:28:54 +01:00
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