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.
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.
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.
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.
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.
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.
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.
If the items are removed (like the retranslateUi() generated by Qt
Creator does) then the current selection will be gone with it. Therefore
only set the texts manually without removing the entry as that keeps the
selection.
Fixes#1539.
This reverts commits 2c11d3f3bd and
9436271a04.
The reason is that users have chimed in with legitimate use cases,
especially extracting text subtitles on Windows, modifying them and
re-muxing them later. This worked out of the box before but requires
setting the subtitle character set to UTF-8 upon re-muxing now.