Commit Graph

9081 Commits

Author SHA1 Message Date
Moritz Bunkus
ac0ea76a6f bit_reader_c: skip_get_bits() for clearer, shorter code (calls skip_bits, get_bits)
Often one has to skip bits in between reading several header
fields. This can make code tedious to read. For example:

  auto field1 = reader.get_bits(4);
  reader.skip_bits(2);
  auto field2 = reader.get_bits(3);
  if (field2 == 7)
    reader.skip_bits(16);
  auto field3 = reader.get_bits(8);

With this combined function it becomes clearer:

  auto field1 = reader.skip_get_bits(0,                    4);
  auto field2 = reader.skip_get_bits(2,                    3);
  auto field3 = reader.skip_get_bits(field2 == 7 ? 16 : 0, 8);
2015-12-29 14:09:05 +01:00
Moritz Bunkus
493440ffb3 Matroska reader: use TrueHD packetizer instead of generic one
This allows the TrueHD packetizer to properly set frame type flags as
decoding can only start from major sync frames for TrueHD.
2015-12-29 14:09:05 +01:00
Moritz Bunkus
6a51492919 truehd_frame_t: add codec() for determining actual codec; use it in readers 2015-12-29 14:09:05 +01:00
Moritz Bunkus
d03a0de9c4 truehd_frame_t: re-factor to use more C++11isms, make functions const 2015-12-29 09:51:21 +01:00
Moritz Bunkus
e3df2184d4 codec_c: add specializations for DTS:X and Atmos-in-TrueHD 2015-12-29 09:46:40 +01:00
René Maassen
93f74e8f3c translations: update Dutch 2015-12-29 09:25:16 +01:00
Moritz Bunkus
1ad936eced translations: update list of translatable strings 2015-12-29 09:23:14 +01:00
Moritz Bunkus
a3d77abda5 MP4 reader: rename qt_editlist_t members to equal field names in the specs 2015-12-28 18:30:40 +01:00
Moritz Bunkus
8a1e641762 MPEG-H: don't include SEI NALUs twice
The SEI user data is stored in m_user_data, and from there it's
re-created during HEVCC creation. Therefore keeping SEI NALUs in
m_extra_data, too, only duplicates them.

Idea/patch by Vladimír Pilný.

See also #1076 where this had been mentioned in the past, too.
2015-12-28 17:37:58 +01:00
Moritz Bunkus
83ab4ba521 MPEG-H: cosmetics 2015-12-28 17:37:38 +01:00
Jan Mazurczyk
674f9bc652 translations: update Polish 2015-12-28 16:12:36 +01:00
Moritz Bunkus
49b0b46ae8 ChangeLog: clarification/realignment 2015-12-28 16:08:50 +01:00
Moritz Bunkus
b7d6b698cb MPEG-H: convert slice NALUs to RBSP before parsing
All NALUs must be converted to RBSP before they're parsed. Otherwise the
wrong values will be used resulting in e.g. wrong picture order and
therefore in wrong timestamps.

Similar to the h.264 problems reported in #918 and #1548.
2015-12-28 16:08:35 +01:00
Moritz Bunkus
a56ed07cd5 MPEG-H: re-factor methods not to modify argument but to return modified memory 2015-12-28 15:35:10 +01:00
Moritz Bunkus
b3876a9f74 MPEG 4p10/MPEG-H: re-factor NALU↔RBSP functions to common file 2015-12-28 14:44:15 +01:00
Moritz Bunkus
39c878f59b common: remove outdated comments about function removed since 2015-12-28 14:00:56 +01:00
Moritz Bunkus
dee0280200 MPEG 4p10: convert slice NALUs to RBSP before parsing
All NALUs must be converted to RBSP before they're parsed. Otherwise the
wrong values will be used resulting in e.g. wrong picture order and
therefore in wrong timestamps.

Fixes #918 and #1548.
2015-12-28 13:49:04 +01:00
Moritz Bunkus
c5cba6f9e3 MPEG 4p10: refactor parse_sps() not to modify argument but return modified memory
Again making it easier to call.
2015-12-28 13:39:03 +01:00
Moritz Bunkus
ec605c0eaf MPEG 4p10: refactor nalu↔rbsp functions not to modify argument but return new memory
This makes them easier to use.
2015-12-28 13:24:28 +01:00
Moritz Bunkus
571343f2af MP4 reader: support random access point sample grouping
The current MP4 specs (ISO/IEC 14496-15:2015) say that open GOP random
access points aren't normal sync entries anymore. Therefore such frames
aren't present in the normal key frame table anymore. Instead sample
grouping information of type "rap " (random access point) is used for
signalling that decoding can start from those frames, too.

Fixes #1543.
2015-12-28 12:55:09 +01:00
Moritz Bunkus
16c4d86eb4 translations: update list of translatable strings; update German translation 2015-12-27 22:28:12 +01:00
Moritz Bunkus
3461c0c9cd GUI: merge: rename "Files:" label to "Source files:"
The button is named "Add source files", too. It might therefore be
easier to understand for the user.
2015-12-27 22:24:03 +01:00
Moritz Bunkus
e0e7eae1a0 translations: update list of translatable strings; update German translation 2015-12-27 22:10:48 +01:00
Moritz Bunkus
51ff345f68 Revert "GUI: merge: remove the "mux this" column from the track list"
This reverts commit 20188b5eea.
2015-12-27 22:04:26 +01:00
Moritz Bunkus
c4012c7c89 mkvmerge: fix block group type decision for last frame of a track
The last frame of a track doesn't need a duration if its rounded
duration equals the rounded default duration. On the other hand the last
frame must not be put into an existing lace if those durations are
different.

Fixes #1545.
2015-12-27 22:02:11 +01:00
Moritz Bunkus
acd59655d1 mkvmerge: cosmetics 2015-12-27 20:25:26 +01:00
Moritz Bunkus
48104d1261 GUI: merge: copying first source file's/destination file's name to title 2015-12-27 16:08:33 +01:00
Moritz Bunkus
5fd106d7e9 GUI: header editor: allow columns to be resized 2015-12-24 11:36:38 +01:00
Moritz Bunkus
260e1fb93a GUI: escape tool tip strings properly
The function Util::setToolTip() HTML-escapes the tool tip if it doesn't
start with a <. Otherwise it assumes the caller has taken care of
escaping. So far not all callers did, though; some were inserting
non-escaped translated strings into formatting strings like
"<p>%1</p><p>%2</p>" resulting in invalid HTML and cut-off tool tips
during display.
2015-12-24 10:11:10 +01:00
Moritz Bunkus
20188b5eea GUI: merge: remove the "mux this" column from the track list
The "codec" column contains a checklist that shows the same information
by now. Therefore "mux this" is superfluous.
2015-12-23 19:09:51 +01:00
Antoni Bella Pérez
cd3acf5b26 translations: update Catalan 2015-12-23 18:17:24 +01:00
Moritz Bunkus
f09b8a3759 kax_file_c: fix compilation on older gcc 2015-12-22 20:49:45 +01:00
Moritz Bunkus
b60c62c863 kax_file_c: fix compilation with mingw 2015-12-22 20:30:01 +01:00
Moritz Bunkus
58c8d57e71 translations: update list of translatable strings; update German translation 2015-12-22 19:46:25 +01:00
Moritz Bunkus
894fc3f8fc man page translations: update list of translatable strings; update German translation 2015-12-22 19:44:19 +01:00
Moritz Bunkus
2ec29ac325 docs: update man pages for mkvpropedit's new --add-track-statistics-tags
See #1507.
2015-12-22 19:41:50 +01:00
Moritz Bunkus
092b7e82d1 mkvpropedit: option for calculating & adding track statistics tags
Second half of #1507.
2015-12-22 19:30:40 +01:00
Moritz Bunkus
2c032a6e9a tools: script for outputting SimpleTags as JSON 2015-12-22 19:30:40 +01:00
Moritz Bunkus
8f4f6a639a kax_file_c: re-factor interfaces wrt. mm_io_c, fewer explicit types 2015-12-22 19:30:40 +01:00
Moritz Bunkus
b3e134075b vint_c: re-factor interfaces wrt. mm_io_c, fewer explicit types 2015-12-22 19:30:40 +01:00
Moritz Bunkus
ca437e5491 mkvmerge: re-factor track_statistics_c, statistics tag generation to common library 2015-12-22 19:30:40 +01:00
Roberto Boriotti
7480a345f4 translations: update Italian 2015-12-22 19:30:15 +01:00
Качура Иван
4c36f8243f translations: update Russian 2015-12-21 12:16:34 +01:00
René Maassen
8b21451f86 translations: update Dutch 2015-12-20 15:50:31 +01:00
Moritz Bunkus
9e70ebd83c Matroska reader: fix timestamp-based progress calculation when appending
When appending m_last_timecode is already offset by
m_first_timecode. Therefore subtracting it once more during the progress
calculation will result in negative numbers if m_first_timecode is
non-zero – which is the case when appending files created by splitting
with linking enabled, for example.
2015-12-19 21:16:15 +01:00
Jan Mazurczyk
ee39d23a7f translations: update Polish 2015-12-19 18:32:53 +01:00
Moritz Bunkus
9b742a7099 translations: update list of translatable strings 2015-12-19 18:31:31 +01:00
Moritz Bunkus
559e0a8b12 mkvpropedit: fix tag operations not getting applied
This was a regression introduced in c494170. In that commit a check was
introduced to determine whether or not the file had actually to be
modified. This check was wrong for replacing tags.
2015-12-19 17:04:59 +01:00
Moritz Bunkus
c51bb7cfe9 re-factor mtx::any from propedit.cpp to list_utils.h 2015-12-19 15:55:01 +01:00
Moritz Bunkus
ed0e1fb840 translations: update list of translatable strings; update German translation 2015-12-19 15:16:57 +01:00