Commit Graph

9069 Commits

Author SHA1 Message Date
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
Moritz Bunkus
015a6671c2 docs: update man pages for mkvpropedit's new --delete-track-statistics-tags
See #1507.
2015-12-19 15:15:39 +01:00
Moritz Bunkus
c494170054 mkvpropedit: add option for removing statistics tags for all tracks
Part of the implementation of #1507.
2015-12-19 15:15:39 +01:00
Moritz Bunkus
8cc0918d8f AAC: with 2 bytes codec-specific config only treat 24 KHz and 22.05 KHz as SBR
Certain SBR AAC tracks only have two-bytes long codec-specific
configuration data even though SBR normally requires five-bytes long
data. mkvmerge contains a heuristic for such cases that treats sampling
frequencies of <= 24000 Hz as another indicator for SBR.

However, this breaks in cases of low sampling frequencies like 8000 Hz
which are almost never SBR. This results in the wrong profile being
detected preventing mkvmerge from appending such tracks to track for
which the profile was detected correctly.

This change limits the heuristic to the two most common sampling
frequencies used for such broken SBR AAC files: 22050 Hz and 24000 Hz.

Fixes #1540.
2015-12-19 13:04:49 +01:00
Roberto Boriotti
0c4e95cb6a translations: update Italian 2015-12-18 15:17:26 +01:00
Moritz Bunkus
563ca4fbc7 mkvmerge: iterate over correct array when output track tags
Fixes #1538.
2015-12-17 20:37:17 +01:00
Moritz Bunkus
11f6ca8c19 mkvmerge: add container ID as "number" attribute in verbose/JSON identification
Several container formats provide an internal ID of some kind. mkvmerge
already output that ID for some of the container formats it supports
albeit under different property names:

- Matroska: "number"
- MPEG program streams: "stream_id" and "sub_stream_id", encoded as a
  hexadecimal string instead of integers
- MPEG transport streams: "ts_pid"

With this commit the support is extended to other container formats. The
MPEG program and transport stream reader modules output their IDs as the
property "number" (in addition to the older identifiers) in order to
have a consistent naming scheme which makes using the output easier for
other applications.

The changes are:

- QuickTime/MP4: the track ID from the 'tkhd' atom
- MPEG program stream: the sub-stream ID in the upper 32 bits and the
  stream ID in the lower 32 bits
- MPEG transport stream: the program ID
- Ogg/OGM: the stream's serial number field
- RealMedia: the track ID

Implements #1541.
2015-12-17 20:05:32 +01:00
Antoni Bella Pérez
2a25767a15 translations: update Catalan 2015-12-17 18:56:10 +01:00
Moritz Bunkus
e0cb04007d Merge pull request #1542 from DonghuiLi-81/zh_CN
Translations: update Chinese Simplified
2015-12-17 12:48:41 +01:00
Donghui Li
8f394f66cd Translations: update Chinese Simplified 2015-12-17 19:27:31 +08:00
Moritz Bunkus
922304c3ce translations: update list of translatable strings; update German translation 2015-12-16 22:31:01 +01:00
Moritz Bunkus
f9a59bc0a1 GUI: fix entries in "add variable" menu in "run program" part of the preferences
In this case the ampersands aren't supposed to indicate a keyboard
shortcut but are supposed to be displayed. Therefore a single & is not
enough; they have to be doubled.
2015-12-16 22:20:25 +01:00
Moritz Bunkus
4555e3edce ChangeLog: mention having fixed #1539 2015-12-16 22:18:18 +01:00