Commit Graph

10494 Commits

Author SHA1 Message Date
Moritz Bunkus
12bd3022ab man page translations: update list of translatable strings; update German translation 2017-01-29 11:54:45 +01:00
Moritz Bunkus
e533d27eab translations: update list of translatable strings; update German translation 2017-01-29 11:47:17 +01:00
TMTisFree
813b00e08d translations: update French 2017-01-29 11:43:54 +01:00
Moritz Bunkus
720956cad2 merge: h.264: add --engage for treating all I slices as key frames
Implements #1876.
2017-01-29 11:43:54 +01:00
Moritz Bunkus
0ee5ef592d MP4 reader: only parse "moov" atoms once
MP4 DASH files can contain more than one copy of the "moov"
atom. Parsing it multiple times would mean that tracks, chunk offset
tables, sample to chunk tables etc. would be filled multiple times as
well.

Commit 2b5e8c86a6 made this easier to
trigger, though the problem could have been hit with earlier code,
too. Before that commit header parsing stopped as soon as the first
"moov" and "mdat" atoms were found. Multiple "moov" atoms before the
first "mdat" atom would therefore have triggered the bug, but I'm not
aware of that having ever happened.

Fixes #1877.
2017-01-29 10:40:57 +01:00
Jan Mazurczyk
e9ee31afbc man pages: fix a couple of issues in the GUI's man page 2017-01-28 18:10:39 +01:00
Jan Mazurczyk
01eca44da6 translations: update Polish 2017-01-28 18:08:08 +01:00
Burak Yavuz
0b5b29379e translations: update Turkish 2017-01-28 18:07:42 +01:00
Timofey Lisunov
16682b7d48 translations: update Russian 2017-01-28 18:07:37 +01:00
TMTisFree
c822fe31a3 translations: update French 2017-01-28 18:07:29 +01:00
Antoni Bella Pérez
4f21eb81d4 translations: update Catalan 2017-01-28 18:06:51 +01:00
Moritz Bunkus
f75a9c88c4 MP4 reader: always process whole key frame table
The old code used a way of iterating over the table that would get hung
up on duplicate entries. Additionally it relied on the table being
sorted in ascending order in the source file.

The result in such a case was that only key frames up to and including
the first duplicate frame index in the key frame index table were marked
as key frames in the output file, even though more key frames index
entries might exist.

The new method simply iterates over the whole table once, from start to
finish, and looks the referenced frames up properly.

This is the last part of the fix for #1867.
2017-01-27 23:29:37 +01:00
Moritz Bunkus
168afa9691 MP4 reader: only set chunks from chunk map if they're not from "trun" atoms
The chunk table can be filled via two different kinds of atoms:

• The "stco"/"co64" atoms in the normal "moov" atoms and
• the "trun" atoms in the "moof" atoms used for DASH.

The latter already know often each chunk applies: exactly
once. Therefore their "size" member is already set.

It's different for the chunks read from "stco"/"co64", though. For them
the times they apply (their "size" member) is derived from the chunk map
table. However, the chunk map table only knows a start index into the
chunk table but not an end index. Therefore the last chunk map entry is
applied from its start index until the end of the chunk table.

This overwrites the "size" member that's already set for chunks read
from "trun" atoms, though. The result is that data is read from the
wrong portion of the file.

Part of the fix for #1867.
2017-01-27 23:25:46 +01:00
Moritz Bunkus
297af47cc7 MP4 reader: parse edit lists ("edts" atoms) inside "moof" atoms, too
Edit lists don't have to be different, bu they can be. Therefore do what
ffmpeg does: parse all of them and only use the last one parsed.

Part of the fix for #1867.
2017-01-27 23:25:19 +01:00
Moritz Bunkus
23ee6364df MP4 reader: add debug output for the calculated index 2017-01-27 23:23:24 +01:00
Moritz Bunkus
ef834a85ce MP4 reader: refactor passing demuxer pointers from smart pointers to references 2017-01-27 23:23:24 +01:00
Moritz Bunkus
2b5e8c86a6 MP4 reader: always scan for all top level atoms
The old code was trying to save time by only scanning until the first
"mdat" (the encoded data for all the frames) and first "moov" (track
headers etc.) atoms were found.

If a "moof" (for segmented headers in MP4 DASH) atom was found during
that scan, it switched to scanning all top level atoms in order to find
all other "moof" atoms.

However, there are DASH files where the first "moof" atom is located
behind the first "mdat" and "moov" atoms. Reading such a file mkvmerge
aborted its top-level atom scan before encountering the "moof" atom and
therefore never switched to DASH mode. The result was that only a small
portion of the file was read: as much as was given via the tables in the
"moov" atom.

The new code does away with that shortcut and always scans all top level
atoms. It will therefore switch to DASH mode even if the first "moof"
atom is located behind the first "mdat" and "moov" atoms.

Part of the fix for #1867.
2017-01-27 23:23:24 +01:00
Moritz Bunkus
210cb7aca8 MP4 reader: add more debug output to the trun atom reading code 2017-01-27 20:09:08 +01:00
Moritz Bunkus
3ceae43548 AC-3 packetizer: take stream position of provided timestamps into account
Some source files only provide one timestamp every n AC-3 frames. In
such situations the next provided timestamp might arrive before all of
the data for the previous AC-3 frame has been flushed (due to the AC-3
parser buffering data in order to determine whether or not a dependent
frame is following). The result is a single gap of one frame after frame
number n - 1.

Fixes #1864.
2017-01-27 16:07:42 +01:00
Moritz Bunkus
0a2be6fdce common: functions for formatting numbers with thousands separators 2017-01-27 13:46:38 +01:00
Moritz Bunkus
9391ef5d9e translations: update list of translatable strings; update German translation 2017-01-27 13:02:40 +01:00
Burak Yavuz
986fdcee92 translations: update Turkish 2017-01-27 12:48:57 +01:00
Timofey Lisunov
78d7c879da translations: update Russian 2017-01-27 12:48:42 +01:00
Potato
de5582a36a translations: update Korean 2017-01-27 12:48:27 +01:00
Israel Lucas Torrijos
dfb8b94ef8 translations: update Spanish 2017-01-27 12:48:20 +01:00
Antoni Bella Pérez
52f7ed4726 translations: update Catalan 2017-01-27 12:48:12 +01:00
Moritz Bunkus
8a1b714c5d GUI: chapters: add default character set preference for text chapter files
Implements #1874.
2017-01-27 10:44:12 +01:00
Moritz Bunkus
bfa838b15e GUI: replace "Ask the user" → "Always ask the user" to reduce strings to translate 2017-01-27 10:30:39 +01:00
Moritz Bunkus
8171da0a60 GUI: mux: add "character set" column to "tracks" list view
Implements #1873.
2017-01-26 21:38:53 +01:00
Moritz Bunkus
7378bec037 tests: update due to compression on DVBSUBs 2017-01-26 13:12:27 +01:00
Moritz Bunkus
fc0f10ff7b timestamp_calculator: rename fields/functions "timecode" → "timestamp" 2017-01-26 13:07:42 +01:00
mkver
812132b441 Set default compression for DVBSUB
Somehow mkvmerge doesn't use compression for DVBSUB by default, although zlib is very effective for them.
2017-01-26 13:07:23 +01:00
mkver
a1486713b8 Fix translation error.
This error message not only applies to MP-3, but also MP-2 and AC-3 as well. The English version is already accurate.
2017-01-26 13:06:09 +01:00
Moritz Bunkus
b584eb77ab RPM spec, Debian control: add dependencies for po4a, xsltproc, DocBook XSL 2017-01-25 22:47:04 +01:00
Moritz Bunkus
055741c806 documentation: add xsltproc, DocBook XSL, po4a
See #1865.
2017-01-25 21:19:11 +01:00
Moritz Bunkus
113450f23c build system: make xsltproc, DocBook mandatory for man pages
Additionally don't try to build or install the translated man pages if
po4a wasn't found or doesn't work.

See #1865.
2017-01-25 21:19:10 +01:00
Moritz Bunkus
f07203fb42 configure: add -stdc++ flag during check for nlohmann-jsoncpp
See #1858.
2017-01-24 22:44:58 +01:00
Moritz Bunkus
05919681f6 configure: find DocBook man page stylesheets on openSUSE 2017-01-22 22:00:23 +01:00
Moritz Bunkus
41f62d37e8 doc: don't store generated man pages in repository
The intention behind keeping the generated man pages is to avoid
requiring downstreams to have xsltproc and the DocBook stylesheets
installed. However, for that they don't have to be stored in the
repository. Generating them upon release and including them in the
source tarball is enough.
2017-01-22 21:03:26 +01:00
Jan Mazurczyk
28def0b4a3 translations: update Polish 2017-01-22 16:14:03 +01:00
Moritz Bunkus
bddc6d06b5 macOS: explicitly limit rake's number of threads 2017-01-22 15:26:44 +01:00
Moritz Bunkus
a83fd64217 bump version number, set release code name 2017-01-22 14:17:42 +01:00
Moritz Bunkus
f08bdff5f4 tests: fix 361 to work with JSON output instead of verbose output 2017-01-22 14:15:44 +01:00
Moritz Bunkus
3c9ae0ce98 translations: update list of translatable strings; update German translation 2017-01-22 12:10:36 +01:00
TMTisFree
7ab15fb83d translations: update French 2017-01-22 11:49:54 +01:00
Moritz Bunkus
63effb10ef mkvmerge: VobSub: use default index for tracks read from Matroska missing CodecPrivate
The default palette used will not look good in most of the cases, but
it's hard to guess a palette and pretty much impossible without actually
decoding a lot of the packets.

Implements #1854.
2017-01-22 11:44:30 +01:00
Moritz Bunkus
cda730b29e tests: use JSON identification instead of verbose identification format 2017-01-22 11:30:56 +01:00
Moritz Bunkus
d008f6baf0 MP4: move VobSub index generation to its own file 2017-01-22 11:30:56 +01:00
Timofey Lisunov
fdf5453512 translations: update Russian 2017-01-21 21:05:34 +01:00
Moritz Bunkus
945da6cd98 MP4 reader: drop frames for which track headers don't provide timestamps
Fixes #1847.
2017-01-21 20:41:00 +01:00