Commit Graph

1027 Commits

Author SHA1 Message Date
Moritz Bunkus
5897b001e6
tests: update due to 16fedc94d2 2020-03-13 17:02:23 +01:00
Симеон Цветков
830c728130
translations: update Bulgarian 2020-03-13 15:25:39 +01:00
Moritz Bunkus
16fedc94d2
MP4 reader: use track duration for frame duration for single-frame video tracks
Fixes .
2020-03-13 15:19:59 +01:00
Moritz Bunkus
75e42c5ae9
MPEG TS reader: flush MPEG-1/2 parser at end of probing
This allows detection of such tracks which contain very few frames.

Fixes .
2020-01-26 12:42:35 +01:00
Moritz Bunkus
9a61c0c94e
Ogg Opus reader: handle streams consisting of single page
With just a single page the `m_previous_page_end_timestamp` variable
is still an invalid timestamp. However, in such a case the page's
granulepos cannot can only indicate an end trimming but not a starting
timestamp != 0. So assume timestamps start at 0 in such cases.

Fixes .
2020-01-13 19:40:52 +01:00
Moritz Bunkus
c85b3b177f
h.264 parser: prepend new SPS/PPS NALUs found mid-stream to key frames, too
This was already done when SPS or PPS NALUs were found with the same
ID as active SPS or PPS but with different content. The missing case
were SPS or PPS NALUs whose IDs hadn't been seen before.

After such an encounter all following key frames must be prepended
with the active SPS & PPS, too. Otherwise seeking would not work as
the player only used the SPS & PPS from CodecPrivate but didn't know
about the new ones from mid-stream.

Part of the fix of .
2020-01-05 16:37:06 +01:00
Moritz Bunkus
172d03cc7b
h.264 parser: ensure SPS & PPS NALUs come before SEI NALUs before key frames
The standard clearly states the order in which NALUs must be written
in ITU-T "h.264 (10/2016)" section 7.4.1.2.3 "Order of NAL units and
coded pictures and association to access units".

Fix by Torsten Hauska. Part of the implementation of .
2020-01-04 19:03:11 +01:00
Moritz Bunkus
d0c7145a88
MP4 reader: ALAC: read num channels/sample rate/bit depth from codec config
This is a workaround for wrong values at the container level (in the
`stsd` atom). Implements .
2020-01-01 23:57:30 +01:00
Moritz Bunkus
ae2723b973
info: add -o/--continue for continuing at the first cluster
Part of the implementation of .
2019-12-31 22:52:52 +01:00
Moritz Bunkus
457c8d1174
propedit: update referring elements in chapters/tags when changing track UIDs
Part of the implementation of .
2019-12-29 14:55:26 +01:00
Moritz Bunkus
b519eadbd0
mkvmerge: option for creating byte-identical files (--deterministic)
Implements .
2019-12-28 13:37:59 +01:00
Moritz Bunkus
aa67de0f09
Matroska reader: use the new ProRes packetizer
The ProRes packetizer will remove the `icpf` atom header from video
frames if they're present.

Fixes .
2019-12-15 15:20:34 +01:00
Moritz Bunkus
4392bec77d
librmff: avoid invalid memory access in frame assembly due to invalid vpkg data
Fixes .
2019-12-07 15:49:32 +01:00
Moritz Bunkus
77981dad05
RealMedia reader: prevent division by zero if all audio timestamps = 0
Fixes .
2019-12-07 12:54:26 +01:00
Moritz Bunkus
7d75988d37
content decoder: skip header removal compression without removed bytes
Fixes .
2019-12-07 09:54:16 +01:00
Moritz Bunkus
9f4a119e55
Matroska reader: copy codec private data for WavPack tracks
Fixes .
2019-12-04 22:31:52 +01:00
Moritz Bunkus
c96745578f
WAV reader: add support for RF64 files 2019-12-02 22:35:08 +01:00
Moritz Bunkus
9d3624462d
Matroska reader: convert Vorbis comments to Matroska tags & remove from bitstream
Part of the implementation of .
2019-12-01 21:46:42 +01:00
Moritz Bunkus
4244ff3bee
Ogg reader: convert Vorbis/Opus/VP8 comments to Matroska tags & remove from bitstream
Part of the implementation of .
2019-12-01 20:36:33 +01:00
Moritz Bunkus
f7c16817fe
track statistics: don't overwrite existing tag target type with "MOVIE" 2019-11-24 13:21:05 +01:00
Симеон Цветков
e95ccaf425
translations: update Bulgarian 2019-11-22 22:46:59 +01:00
Moritz Bunkus
3e06b67e07
MP4 reader: use "image/bmp" as MIME type for BMP images instead of image/x-ms-bmp 2019-11-14 23:10:21 +01:00
Moritz Bunkus
ab2d824ff0
Ogg reader: mux cover art present in Vorbis comments as attachments 2019-11-10 13:31:47 +01:00
Moritz Bunkus
2a7becf502
MP4 reader: add support for BMP cover art images 2019-11-08 16:52:26 +01:00
Moritz Bunkus
9f8b29f962
MP4 reader: fix cover art size calculation
There are eight bytes (type & unknown fields) before the attachment's
data. Those eight bytes must be subtracted from the atom's data size;
otherwise too much data would be read for the image. When the image
was located at the end of the file, mkvmerge would throw an exception
due to running into the end of the file, causing file identification
to fail.

Even if identification succeeded, the resulting attachment would
contain eight bytes too many at the end.

Fixes .
2019-11-08 16:18:11 +01:00
Moritz Bunkus
3d02fe19b3
tests: intentional update due to translation updates 2019-11-04 19:43:37 +01:00
Moritz Bunkus
abeb2a522d
MP4 reader: copy cover art as attachments 2019-11-03 13:18:59 +01:00
Moritz Bunkus
78576c0d4a
integrate Bulgarian translation 2019-11-03 11:44:18 +01:00
Moritz Bunkus
6edfeaef17
tests: update due to Turkish translation updates 2019-09-28 15:40:14 +02:00
Moritz Bunkus
2afabca04a
info: normalize how fmt formats doubles whose decimals are 0 2019-09-27 18:37:53 +02:00
Moritz Bunkus
8c3ed2382d
update bundled fmt to v6.0.0
Tests: when outputting floating point numbers, fmt 6.0.0 will no
longer add a fractional part if it's 0 (e.g. "48000" instead of
"48000.0").
2019-09-27 10:16:26 +02:00
Moritz Bunkus
190827ee5a
text I/O: always treat newlines as EOL regardless of detected EOL style
Problematic were files for which DOS-style EOLs were
detected (carriage return followed by newline, \r\n) but which had
some lines terminated solely by a newline (\n). In such a case the
EOL was only detected upon seeing the next \r\n, and the value
returned from the `getline()` function would return something that
everyone would judge to be multiple lines of text.

Fixes .
2019-08-10 16:05:57 +02:00
Moritz Bunkus
f383f8c78c
all: use H.265 instead of h.265
Second part of the fix of .
2019-08-10 14:34:54 +02:00
Moritz Bunkus
b56918d388
all: use H.264 instead of h.264
Part of the fix of .
2019-08-10 14:29:54 +02:00
Moritz Bunkus
ba03b34352
tests: intentional update due to translation updates 2019-08-06 21:03:50 +02:00
Moritz Bunkus
7dee3ae004
tests: update due to translation update 2019-06-18 19:14:35 +02:00
Chun-Kai Mao
1fb763752d
translations: update Chinese Traditional 2019-06-17 21:14:22 +02:00
Moritz Bunkus
39557e80a0
Matroska reader: add "codec_name" track property in JSON identification 2019-06-17 19:53:27 +02:00
Moritz Bunkus
970193a36e
tests: update due to translation update 2019-05-18 12:36:40 +02:00
Moritz Bunkus
dc163cc4d5
AV1: use container timing info if no bitstream timing info present
Fixes .
2019-05-18 10:40:35 +02:00
Rafael Fontenelle
89cf6dcdcd
translations: update Brazilian Portuguese 2019-05-08 20:05:13 +02:00
Moritz Bunkus
002daadc0a
mkvmerge: clarify description of several MPEG audio & video format names
Fixes .
2019-04-22 15:51:29 +02:00
Moritz Bunkus
d9c9b2498f
subtitles: treat all frames as key frames
Fixes .
2019-04-17 15:54:46 +02:00
Moritz Bunkus
09ad48cb8f
tests: intentional update due to a2e7d242c 2019-04-10 21:35:52 +02:00
Moritz Bunkus
66a2cebc82
tests: add test case for Emojis 2019-03-12 20:28:47 +01:00
Moritz Bunkus
5a36d0e95e
libEBML: update to latest upstream version
This pulls the fixes for handling Unicode code points >
U+FFFF. Also update the one test case with invalid data which is now
handled slightly differently than before.

Part of the fix of .
2019-03-06 22:39:54 +01:00
Moritz Bunkus
11067b213b
mkvinfo: show element's data size when --size is used 2019-03-06 19:31:20 +01:00
Moritz Bunkus
47058a6da2
HEVC: use height of full frame for dimensions for interlaced streams
Fixes .
2019-01-26 13:48:52 +01:00
Moritz Bunkus
9e1a1f3de6
subtitles: allow duration = 0ms
Various places needed to differentiate better between "no duration is
known or set for this packet" and "this packet has a duration of
0ms". The former means that no duration element should be written to
the file, and the use of `SimpleBlock` instead of `BlockGroup` is
OK. The latter on the other hand means that a `BlockGroup` must be
used and a duration element must be added.

This core change uncovered a couple of subtle bugs in other places
where subtitles were handled:

• The Matroska reader passed 0 as the duration even if no duration
  element was present making it impossible for other code to
  differentiate between "no duration present" and "duration present
  but set to 0".
• The DVB subtitle packetizer always enforced writing the duration
  even if the duration wasn't known.
• The Kate packetizer used a wrong dummy value of 1us for the duration
  for the "end of stream" packet as the core would not write a
  duration of 0.
• The text subtitle packetizer was using the difference between the
  current packet and the following one for packets were the duration
  was 0 or unknown. The correct behavior is to do this only if the
  duration is unknown, not if it is 0.

Fixes .
2019-01-24 16:01:22 +01:00
Moritz Bunkus
37e2da5502
MP4 reader: ignore edit lists consisting solely of unsupported elements
Unsupported edits such as dwells were simply ignored. If all of them
were ignored, then the new timeline was empty resulting in no data
being copied for that track. Instead simply ignore edit lists whose
new timeline ends up empty after the entries have been processed.

Fixes .
2019-01-19 11:12:26 +01:00