./multimedia/mkvtoolnix, Set of tools to create, alter and inspect Matroska files

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 20.0.0, Package name: mkvtoolnix-20.0.0, Maintainer: pkgsrc-users

MKVtoolnix is a set of tools to create, alter and inspect Matroska files.

With these tools one can get information about (mkvinfo) Matroska files,
extract tracks/data from (mkvextract) Matroska files and create (mkvmerge)
Matroska files from other media files.


Required to run:
[multimedia/libmatroska] [multimedia/libogg] [archivers/lzo] [audio/flac] [audio/libvorbis] [devel/boost-libs] [devel/libebml] [textproc/cmark]

Required to build:
[textproc/po4a] [textproc/docbook-xsl] [devel/boost-headers] [pkgtools/cwrappers] [lang/ruby23-base]

Master sites:

SHA1: a1e6a2fa1bce5fffd4a059f606efc05dc3743820
RMD160: 935781a83549d1779b7852ce20a547ad40ebf6fb
Filesize: 4560.809 KB

Version history: (Expand)


CVS history: (Expand)


   2018-01-18 18:14:41 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
mkvtoolnix: updated to 20.0.0

Version 20.0.0 "I Am The Sun":

Important notes

* Feature removal: several deprecated features have been removed:
  * mkvmerge: the deprecated options --identify-verbose (and its counterpart
    -I), --identify-for-gui, --identify-for-mmg and
    --identification-format verbose-text
  * all command line tools: support for the deprecated, old, proprietary format
    used for option files
  * all command line tools: support for passing command line options via the
    deprecated environment variables MKVTOOLNIX_OPTIONS, MKVEXTRACT_OPTIONS,
    MKVINFO_OPTIONS, MKVMERGE_OPTIONS and MKVPROPEDIT_OPTIONS

* mkvinfo: most of its code was re-written in order to lay the groundwork for
  including its functionality in MKVToolNix GUI but with more features than
  the existing mkvinfo GUI. The result is that a lot of its output has been
  changed slightly while keeping the basic layout. Changes include but aren't
  limited to:

  * Several element names are a bit clearer (e.g. Maximum cache instead of
    MaxCache).
  * All timestamps and durations are now output as nanoseconds in formatted
    form (e.g. 01:23:45.67890123). All additional formats (e.g. floating
    point numbers output in seconds or milliseconds) were removed.
  * Element names for chapters and tags are now translated if a translation is
    available.
  * Elements located in wrong positions within the Matroska document are
    handled better.

  While mkvinfo's output is mostly kept very stable, it is not designed to be
  parsed by other utilities. Even though I've tried hard to cram all changes
  and cleanups into this version, additional changes may be made in the next
  couple of releases depending on user feedback and bug reports.

New features and enhancements

* mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter NALUs will
  now be removed.

Bug fixes

* mkvmerge: AVC/h.264 parser: when fixing the bitstream timing information
  mkvmerge will now use exact representations of the desired field duration if
  possible. For example, when indicating 50 fields/second num_units_in_tick
  is set to 1 and time_scale to 50 instead of 5368709 and 268435456.
* mkvmerge: AVC/h.264 parser: mkvmerge no longer assumes that encountering
  sequence parameter set or picture parameter set NALUs signal the start of a
  new frame.
* mkvmerge: AVC/h.264 packetizer (framed): when mkvmerge is told to fix the
  bitstream timing information, it will now update all SPS NALUs, not just the
  ones in the AVCC.
* mkvmerge: MPEG TS reader: TS packet payloads will only be treated as PES
  packets if the payload actually starts with a PES start code. The prior
  behavior led to wrong timestamps and potentially broken frame data.
* mkvmerge: MPEG TS reader: mkvmerge will now drop incomplete PES packets as
  soon as an error is detected in the transport stream instead of passing the
  incomplete frame to the packetizer. An error is assumed either if the
  transport_error_indicator flag is set or if the value of the
  continuity_counter header field doesn't match the expected value.
* mkvmerge: Opus: when re-muxing Opus from Matroska mkvmerge will now write
  "block duration" elements for all block groups where a "discard \ 
padding" is
  set, too.
* mkvmerge: SRT reader: mkvmerge can now handle SRT files with timestamps
  without decimal places (e.g. 00:01:15 instead of 00:01:15.000).
* mkvmerge: read buffer I/O class: the class could get out of sync regarding
  the file position of the underlying file I/O class causing wrong data to be
  returned on subsequent read operations. One result was that trying to
  identifying MPLS files that refer to very short M2TS files caused mkvmerge
  to segfault.
* mkvmerge: multiplexer core: if there's a gap in audio timestamps, a new
  block group/lace will be started for the first frame after each gap. Before
  the fix the frame after the gap was often stored in the previous block group
  causing the gap to be in the wrong place: at the end of that block
  group.
* mkvextract: AVC/h.264: if two consecutive IDR frames with the same
  idr_pic_id parameter and no access unit delimiters are found between them,
  mkvextract will insert an access unit delimiter in order to signal the start
  of a new access unit.
* MKVToolNix GUI: update check dialog: Markdown links will now be converted to
  clickable links.
* build system: fixed a race condition when creating new directories if rake
  is run with -jN in newer versions of Ruby/rake.

Build system changes
* [cmark](https://github.com/commonmark/cmark), the CommonMark parsing and
  rendering library in C, is now required when building the GUIs.
   2018-01-01 22:18:57 by Adam Ciarcinski | Files touched by this commit (629) | Package updated
Log message:
Revbump after boost update
   2017-12-14 13:11:29 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
mkvtoolnix: updated to 18.0.0

Version 18.0.0 "Apricity" 2017-11-18

New features and enhancements
* build system: when building with clang v3.8.0 or newer, `configure` will no
  longer restrict optimization flags to `-O1` and use `-O3` again (older
  versions of clang suffered from excessive memory usage with higher
  optimization levels).
* build system: when building with mingw 7.2.0 or newer, `configure` will no
  longer restrict optimization flags to `-O2` and use `-O3` again (older
  versions of mingw suffered from bugs such as segmentation faults with higher
  optimization levels).
* build system: stack protection is enabled when building with clang 3.5.0 or
  newer on all platforms.
* mkvmerge: AVC & HEVC ES parsers: performance improvements by copying much
  less memory around.
* mkvmerge: tags: reintroduced a workaround for non-compliant files with tags
  that do not contain the mandatory `SimpleTag` element. This workaround was
  removed during code refactoring in release v15.0.0.
* GUI: multiplexer: the "AAC is SBR/HE-AAC/AAC+" checkbox in the \ 
"audio
  properties" section will be disabled if the functionality is not implemented
  for the selected track's codec & container.
* GUI: multiplexer: the "reduce to core" checkbox in the "audio \ 
properties"
  section will be disabled if the functionality is not implemented for the
  selected track's codec.

Bug fixes
* mkvmerge: AAC ADTS parser: fixed interpretation of the
  `channel_configuration` header element for ADTS files that do not contain a
  program configuration element: value 7 means 7.1 channels.
* mkvmerge: Matroska identification: the `date_local` and `date_utc`
  attributes will only be output if the identified Matroska file actually
  contains the "date" header field.
* mkvmerge: WebVTT: mkvmerge did not recognize timestamp lines if the hours
  components were absent.
* mkvpropedit, GUI's header editor: the `date` header field won't be added
  automatically anymore whenever the segment info section is edited and the
  `date` element is either deleted or not present in the first place.
   2017-11-30 17:45:43 by Adam Ciarcinski | Files touched by this commit (654) | Package updated
Log message:
Revbump after textproc/icu update
   2017-10-24 20:14:26 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
mkvtoolnix: updated to 17.0.0

Version 17.0.0 "Be Ur Friend":

Important notes

* The word "timecode" has been changed to "timestamp" \ 
everywhere it was
  used in MKVToolNix. This affects program output (including mkvinfo's), GUI
  controls, command line parameters (e.g. `mkvmerge --timestamp-scale …`) and
  file formats. All programs remain backwards compatible insofar as they still
  accept "timecode" in all those places (e.g. `mkvmerge \ 
--timecode-scale …`).

  The reason for the change is wrong usage. What both the Matroska specification
  and MKVToolNix used "timecode" for is normally called a \ 
"timestamp" in audio &
  video domains. A "timecode" on the other hand has a specific \ 
meaning. As the
  Matroska specification is moving towards implementing real timecodes, it will
  also move towards correcting the verbiage. MKVToolNix is following this
  change.

* mkvextract's command line interface has been changed to allow extraction of
  multiple items at the same time. The first argument must now be the source
  file's name. All following arguments either set the mode (e.g. `tracks`) or
  specify what to extract in the currently active mode.

  Those items that were written to the standard output (chapters, tags and cue
  sheets) are now always written to files instead. Therefore the respective
  modes require an output file name.

  For example, extracting two tracks, the chapters and the tags can be done
  with the following command:

  `mkvextract input.mkv tracks 0:video.h265 1:audio.aac chapters chapters.xml \ 
tags tags.xml`

  The old interface (specifying the mode first and the source file name
  second) remains working and supported. However, it is now deprecated and
  will be removed at the end of 2018.

New features and enhancements

* mkvmerge: AC-3: during identification regular AC-3 and E-AC-3 tracks will
  now be identified differently for most container formats (exception: AVI,
  Real Media, Ogg/OGM). The codec will be reported as `AC-3` for regular AC-3
  and as `E-AC-3` for E-AC-3 tracks instead of the combined `AC-3/E-AC-3`.
* mkvextract: the command line interface has been changed to allow extraction
  of multiple items at the same time. See section "Important notes" \ 
for details.

Bug fixes

* mkvmerge: AAC ADTS parser: mkvmerge will now parse the
  `program_config_element` if it is located at the start of an AAC frame in
  order to determine the actual number of channels. This overrides invalid
  channel configurations in the ADTS headers, for example.
* mkvmerge: fixed AC-3 being misdetected as encrypted MPEG program streams
  under certain conditions.
* mkvmerge: Dirac: under certain conditions (e.g. only muxing a single Dirac
  track without any other tracks) mkvmerge was always setting the pixel width
  & height to 123. The frame rate was wrong, too.
* mkvmerge: E-AC-3 in Matroska: if AC-3 cores and their corresponding E-AC-3
  extension are located in two different Matroska blocks, then mkvmerge will
  now re-assemble them into a single block and only use the first block's
  timestamp.
* mkvmerge: SRT reader: fixed calculating the duration of entries starting
  with at a negative timestamp.
* mkvmerge: VC-1: under certain conditions (e.g. only muxing a single VC-1
  track without any other tracks) mkvmerge was always setting the pixel width
  & height to 123. The frame rate was wrong, too.
* mkvmerge: command line options: an error message will be output if the
  single-value-form of the `--sync` option is used and it isn't a number
  (e.g. `--sync 0:asd`).
* mkvpropedit, GUI's header editor: both programs will now show proper error
  messages instead of crashing when certain kinds of data corruption is found
  when reading a file.
   2017-10-06 23:18:20 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
mkvtoolnix: update to 16.0.0

Version 16.0.0 "Protest":

New features and enhancements

* mkvmerge: MP4 reader: added support for Vorbis.

Bug fixes

* configure: the checks for libEBML and libMatroska have been fixed to require
  libEBML 1.3.5 and libMatroska 1.4.7 as intended.

* mkvmerge: AAC reader: mkvmerge will now emit an error message for AAC files
  whose header fields imply a sampling frequency or number of channels
  of 0.
* mkvmerge: AVC/h.264 ES parser: fixed the calculation of reference
  information for P and B frames. This also fixes some P frames being marked
  as B frames and vice versa.
* mkvmerge: AVC/h.264 ES parser: only non-key frames that have the NALU header
  field `nal_ref_idc` set to 0 will be marked as "discardable" in
  `SimpleBlock` elements.
* mkvmerge: HEVC/h.265: the generation of the HEVCC structure stored in
  `CodecPrivate` was wrong in two places: 1. the position of the number of
  sub-layers was swapped with reserved bits and 2. the VPS/SPS/PPS/SEI lists
  did not start with a reserved 1 bit.
* mkvmerge: output: the `doc type version` will be set at least to 2 if
  certain elements are written (`CodecState`, `CueCodecState`,
  `FlagInterlaced`).
* mkvmerge: output: the track header attributes `MinCache` and `MaxCache` will not be
  written anymore.
* mkvmerge: Matroska reader: the "key" and "discardable" \ 
flags of SimpleBlock
  elements will be kept as they are.
* mkvmerge: Matroska reader: if present in the file, the "white colour
  coordinate x" track header attribute was written to both "white colour
  coordinate x" and "white colour coordinate y" in the output file.
* mkvmerge: Opus output: mkvmerge will now put all frames with discard padding
  into their own block group.
* MKVToolNix GUI: header editor: removed the check for external modification
  when saving the file.
* MKVToolNix GUI: job queue: fixed calculation of total progress when
  automatic removal of completed is enabled.
   2017-09-18 11:53:40 by Maya Rashish | Files touched by this commit (676)
Log message:
revbump for requiring ICU 59.x
   2017-09-17 14:00:41 by Adam Ciarcinski | Files touched by this commit (5) | Package updated
Log message:
multimedia/mkvtoolnix: update to 15.0.0

Version 15.0.0 "Duel with the Devil":

Important notes
* mkvmerge, mkvpropedit, GUI's header and chapter editors: the programs will
  no longer add most missing Matroska elements that are mandatory but have a
  default value in the Matroska specification (e.g. the `TagLanguage` element
  with a value of `und` if it isn't present in its `SimpleTag` parent). Due to
  this change libEBML v1.3.5 is now required.

New features and enhancements
* MKVToolNix GUI: multiplex tool: added a new entry to the "source files"
  context menu labeled "Set destination file name from selected file's
  name". It will force the GUI to consider the selected file to be the
  reference for automatically setting the file name, no matter which file was
  originally added as the first file. It will also force setting the
  destination file name once if automatic destination file name generation is
  turned off in the preferences. Implements part of 2058.
* MKVToolNix GUI: multiplex tool: added an option in the preferences on
  "Multiplexer" → "Output" labeled "Only use the \ 
first source file that
  contains a video track". If enabled, only source files containing video
  tracks will be used for setting the destination file name. Other files that
  are added are ignore. Implements the rest of 2058.
* MKVToolNix GUI: header editor: added support for editing the video colour
  attributes. Implements the second half of 2038.
* MKVToolNix GUI: header editor: added support for the "video projection"
  track header attributes. Part of the implementation of 2064.
* MKVToolNix GUI: job queue: selected jobs can now be move up and down by
  pressing the `Ctrl+Up` and `Ctrl+Down` keys. Additionally, push buttons to
  move them up & down are shown if the corresponding option is enabled in the
  preferences. Implements 2060.
* mkvmerge: added support for the "video projection" track header
  attributes. Part of the implementation of 2064.
* mkvinfo: added support for the "video projection" track header
  attributes. Part of the implementation of 2064.
* mkvpropedit: added support for editing the video colour
  attributes. Implements one half of 2038.
* mkvpropedit: added support for the "video projection" track header
  attributes. Part of the implementation of 2064.

Bug fixes
* all: selecting the program's language (e.g. via the `--ui-language`
  command-line option or via the GUI's preferences) did not work on Linux &
  Unix if the `LANGUAGE` environment variable was set and didn't include the
  desired language. Fixes 2070.
* MKVToolNix GUI: removed the keyboard shortcuts for switching between the
  different tools (e.g. `Ctrl+Alt+1` for the multiplexer). They overlapped
  with basic functionality on keyboards that use an `AltGr` key, e.g. German
  ones, where `AltGr+7` emits `{`. As `AltGr+key` is implemented as
  `Ctrl+Alt+key` under the hood, this means that `AltGr+7` is really
  `Ctrl+Alt+7` which the GUI now took to mean "switch to the job queue"
  instead of "insert `{`". Fixes 2056.
* MKVToolNix GUI: header editor: after saving the file the GUI wasn't updating
  its internal file modification timestamp. That lead to the GUI wrongfully
  claiming that the file had been modified externally when the user wanted to
  save the file once more, requiring a reload of the file losing all
  modifications made since saving the first time.
* mkvmerge: DTS handling: some source files provide timestamps for audio
  tracks only once every `n` audio frames. In such situations mkvmerge was
  buffering too much data resulting in a single gap in the timestamps of one
  frame duration after frame number `n - 1` (the second audio timestamp read
  from the source file was used one output frame too early). Fixes 2071.
* mkvinfo: fixed a null pointer dereference if an `EbmlBinary` element's data
  pointer is a null pointer. Fixes 2072.

Build system changes
* configure: added option `--disable-update-check`. If given, the code
  checking online for available updates will be disabled. The update check is
  enabled and included in the GUI by default.
* libEBML v1.3.5 is now required.

Other changes
* mkvmerge: the option `--colour-matrix` has been renamed to
  `--colour-matrix-coefficients` in order to match the specification more
  closely. The old option name will continue to be recognized as well.