mirror of
https://codeberg.org/DansLeRuSH/ubuntu-touch-icons.git
synced 2024-12-22 18:19:07 +00:00
Add new file
This commit is contained in:
parent
493b20a41f
commit
36afe85209
1 changed files with 509 additions and 0 deletions
509
README.md
Normal file
509
README.md
Normal file
|
@ -0,0 +1,509 @@
|
|||
MKVToolNix 22.0.0
|
||||
|
||||
|
||||
Table of contents
|
||||
|
||||
|
||||
Introduction
|
||||
|
||||
Installation
|
||||
|
||||
|
||||
Requirements
|
||||
Optional components
|
||||
Building libEBML and libMatroska
|
||||
Building MKVToolNix
|
||||
Getting and building a development snapshot
|
||||
Configuration and compilation
|
||||
Notes for compilation on (Open)Solaris
|
||||
Unit tests
|
||||
|
||||
|
||||
Reporting bugs
|
||||
Test suite and continuous integration tests
|
||||
Code of Conduct
|
||||
|
||||
Included libraries and their licenses
|
||||
|
||||
|
||||
avilib
|
||||
Boost's utf8_codecvt_facet
|
||||
libEBML
|
||||
libMatroska
|
||||
librmff
|
||||
nlohmann's JSON
|
||||
pugixml
|
||||
utf8-cpp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
With these tools one can get information about (via mkvinfo) Matroska
|
||||
files, extract tracks/data from (via mkvextract) Matroska files and create
|
||||
(via mkvmerge) Matroska files from other media files. Matroska is a new
|
||||
multimedia file format aiming to become THE new container format for
|
||||
the future. You can find more information about it and its underlying
|
||||
technology, the Extensible Binary Meta Language (EBML), at
|
||||
|
||||
http://www.matroska.org/
|
||||
|
||||
The full documentation for each command is now maintained in its
|
||||
man page only. Type mkvmerge -h to get you started.
|
||||
|
||||
This code comes under the GPL v2 (see www.gnu.org or the file COPYING).
|
||||
Modify as needed.
|
||||
|
||||
The icons are based on the work of Alexandr Grigorcea and modified by
|
||||
Eduard Geier. They're licensed under the terms of the
|
||||
Creative Commons Attribution 3.0 Unported license.
|
||||
|
||||
The newest version can always be found at
|
||||
https://mkvtoolnix.download/
|
||||
|
||||
Moritz Bunkus moritz@bunkus.org
|
||||
|
||||
|
||||
2. Installation
|
||||
|
||||
If you want to compile the tools yourself, you must first decide
|
||||
if you want to use a 'proper' release version or the current
|
||||
development version. As both Matroska and MKVToolNix are under heavy
|
||||
development, there might be features available in the git repository
|
||||
that are not available in the releases. On the other hand the git
|
||||
repository version might not even compile.
|
||||
|
||||
|
||||
2.1. Requirements
|
||||
|
||||
In order to compile MKVToolNix, you need a couple of libraries. Most of
|
||||
them should be available pre-compiled for your distribution. The
|
||||
programs and libraries you absolutely need are:
|
||||
|
||||
|
||||
A C++ compiler that supports several features of the C++11 and C++14
|
||||
standards: initializer lists, range-based for loops, right angle
|
||||
brackets, the auto keyword, lambda functions, the nullptr keyword,
|
||||
tuples, alias declarations, std::make_unique(), digit
|
||||
separators, binary literals and generic lambdas. Others may be
|
||||
needed, too. For GCC this means at least v4.9.x; for clang v3.4 or
|
||||
later.
|
||||
libEBML v1.3.5 or later
|
||||
and libMatroska v1.4.8
|
||||
or later for low-level access to Matroska files. Instructions on how to
|
||||
compile them are a bit further down in this file.
|
||||
libOgg and
|
||||
libVorbis for access to Ogg/OGM
|
||||
files and Vorbis support
|
||||
zlib — a compression library
|
||||
Boost — Several of Boost's libraries are
|
||||
used: format, RegEx, filesystem, system, math,
|
||||
Range, rational, variant. At least v1.49.0 is required.
|
||||
libxslt's xsltproc binary and
|
||||
DocBook XSL stylesheets
|
||||
— for creating man pages from XML documents
|
||||
|
||||
|
||||
You also need the rake or drake build program. I suggest rake
|
||||
v10.0.0 or newer (this is included with Ruby 2.1) as it offers
|
||||
parallel builds out of the box. If you only have an earlier version of
|
||||
rake, you can install and use the drake gem for the same gain.
|
||||
|
||||
|
||||
2.2. Optional components
|
||||
|
||||
Other libraries are optional and only limit the features that are
|
||||
built. These include:
|
||||
|
||||
|
||||
Qt v5.3 or newer — a cross-platform GUI
|
||||
toolkit. You need this if you want to use the MKVToolNix GUI.
|
||||
cmark — the CommonMark
|
||||
parsing and rendering library in C is required when building the Qt
|
||||
GUIs.
|
||||
libFLAC for FLAC
|
||||
support (Free Lossless Audio Codec)
|
||||
lzo and
|
||||
bzip2 are compression libraries. These are
|
||||
the least important libraries as almost no application supports
|
||||
Matroska content that is compressed with either of these libs. The
|
||||
aforementioned zlib is what every program supports.
|
||||
libMagic from the "file" package
|
||||
for automatic content type detection
|
||||
po4a for building the translated
|
||||
man pages
|
||||
|
||||
|
||||
|
||||
2.3. Building libEBML and libMatroska
|
||||
|
||||
This is optional as MKVToolNix comes with its own set of the
|
||||
libraries. It will use them if no version is found on the system.
|
||||
|
||||
Start with the two libraries. Either download releases of
|
||||
libEBML v1.3.5 and
|
||||
libMatroska v1.4.8 or
|
||||
get a fresh copy from the git repository:
|
||||
|
||||
git clone https://github.com/Matroska-Org/libebml.git
|
||||
git clone https://github.com/Matroska-Org/libmatroska.git
|
||||
First change to libEBML's directory and run ./configure followed by
|
||||
make. Now install libEBML by running make install as root
|
||||
(e.g. via sudo). Change to libMatroska's directory and go through
|
||||
the same steps: first ./configure followed by make as a normal
|
||||
user and lastly make install as root.
|
||||
|
||||
|
||||
2.4. Building MKVToolNix
|
||||
|
||||
Either download the current release from
|
||||
the MKVToolNix home page
|
||||
and unpack it or get a development snapshot from my Git repository.
|
||||
|
||||
|
||||
2.4.1. Getting and building a development snapshot
|
||||
|
||||
You can ignore this subsection if you want to build from a release
|
||||
tarball.
|
||||
|
||||
All you need for Git repository access is to download a Git client
|
||||
from the Git homepage at http://git-scm.com/. There are clients
|
||||
for both Unix/Linux and Windows.
|
||||
|
||||
First clone my Git repository with this command:
|
||||
|
||||
git clone https://gitlab.com/mbunkus/mkvtoolnix.git
|
||||
Now change to the MKVToolNix directory with cd mkvtoolnix and run
|
||||
./autogen.sh which will generate the "configure" script. You need
|
||||
the GNU "autoconf" utility for this step.
|
||||
|
||||
|
||||
2.4.2. Configuration and compilation
|
||||
|
||||
If you have run make install for both libraries, then configure
|
||||
should automatically find the libraries' position. Otherwise you need
|
||||
to tell configure where the libEBML and libMatroska include and
|
||||
library files are:
|
||||
|
||||
./configure \
|
||||
--with-extra-includes=/where/i/put/libebml\;/where/i/put/libmatroska \
|
||||
--with-extra-libs=/where/i/put/libebml/make/linux\;/where/i/put/libmatroska/make/linux
|
||||
Now run rake and, as "root", rake install.
|
||||
|
||||
|
||||
2.4.3. If things go wrong
|
||||
|
||||
By default the commands executed by the build system aren't
|
||||
output. You can change that by adding V=1 as an argument to the
|
||||
rake command.
|
||||
|
||||
If rake executes too many processes at once, then you've stumbled
|
||||
across a known bug in rake. In that case you should install the
|
||||
drake Ruby gem and use the command drake instead of
|
||||
rake. drake supports parallelism properly and doesn't try to
|
||||
execute all jobs at once.
|
||||
|
||||
|
||||
2.5. Notes for compilation on (Open)Solaris
|
||||
|
||||
You can compile MKVToolNix with Sun's sunstudio compiler, but you need
|
||||
additional options for configure:
|
||||
|
||||
./configure --prefix=/usr \
|
||||
CXX="/opt/sunstudio12.1/bin/CC -library=stlport4" \
|
||||
CXXFLAGS="-D_POSIX_PTHREAD_SEMANTICS" \
|
||||
--with-extra-includes=/where/i/put/libebml\;/where/i/put/libmatroska \
|
||||
--with-extra-libs=/where/i/put/libebml/make/linux\;/where/i/put/libmatroska/make/linux
|
||||
|
||||
2.6. Unit tests
|
||||
|
||||
Building and running unit tests is completely optional. If you want to
|
||||
do this, you have to follow these steps:
|
||||
|
||||
|
||||
Download the "googletest" framework from
|
||||
https://github.com/google/googletest/ (at the time of writing the
|
||||
file to download was "googletest-release-1.8.0.tar.gz")
|
||||
Extract the archive somewhere and create a symbolic link to its
|
||||
googletest-release-1.8.0/googletest/include/gtest sub-directory
|
||||
inside MKVToolNix' "lib" directory.
|
||||
Configure MKVToolNix normally.
|
||||
|
||||
Build the unit test executable and run it with
|
||||
|
||||
rake tests:unit
|
||||
|
||||
|
||||
|
||||
|
||||
3. Reporting bugs
|
||||
|
||||
If you're sure you've found a bug — e.g. if one of my programs crashes
|
||||
with an obscur error message, or if the resulting file is missing part
|
||||
of the original data, then by all means submit a bug report.
|
||||
|
||||
I use GitLab's issue system
|
||||
as my bug database. You can submit your bug reports there. Please be as
|
||||
verbose as possible — e.g. include the command line, if you use Windows
|
||||
or Linux etc.pp.
|
||||
|
||||
If at all possible, please include sample files as well so that I can
|
||||
reproduce the issue. If they are larger than 1 MB, please upload
|
||||
them somewhere and post a link in the issue. You can also upload them
|
||||
to my FTP server. Details on how to connect can be found in the
|
||||
MKVToolNix FAQ.
|
||||
|
||||
|
||||
4. Test suite and continuous integration tests
|
||||
|
||||
MKVToolNix contains a lot of test cases in order to detect regressions
|
||||
before they're released. Regressions include both compilation issues
|
||||
as well as changes from expected program behavior.
|
||||
|
||||
As mentioned in section 2.6., MKVToolNix comes with a set of unit
|
||||
tests based on the Google Test library in the tests/unit
|
||||
sub-directory that you can run yourself. These cover only a small
|
||||
amount of code, and any effort to extend them would be most welcome.
|
||||
|
||||
A second test suite exists that targets the program behavior, e.g. the
|
||||
output generated by mkvmerge when specific options are used with
|
||||
specific input files. These are the test cases in the tests
|
||||
directory itself. Unfortunately the files they run on often contain
|
||||
copyrighted material that I cannot distribute. Therefore you cannot
|
||||
run them yourself.
|
||||
|
||||
A third pillar of the testing effort is the
|
||||
continuous integration tests
|
||||
run on a Buildbot instance. These are run automatically for each
|
||||
commit made to the git repository. The tests include:
|
||||
|
||||
|
||||
building of all the packages for Linux distributions that I
|
||||
normally provide for download myself in both 32-bit and 64-bit
|
||||
variants
|
||||
building of the Windows installer and portable packages in both
|
||||
32-bit and 64-bit variants
|
||||
building with both g++ and clang++
|
||||
building and running the unit tests
|
||||
building and running the test file test suite
|
||||
building with all optional features disabled
|
||||
|
||||
|
||||
|
||||
5. Code of Conduct
|
||||
|
||||
Please note that this project is released with a
|
||||
Code of Conduct. By participating in this project
|
||||
you agree to abide by its terms.
|
||||
|
||||
|
||||
6. Included third-party components and their licenses
|
||||
|
||||
MKVToolNix includes and uses the following libraries & artwork:
|
||||
|
||||
|
||||
6.1. avilib
|
||||
|
||||
Reading and writing AVI files. Originally part of the transcode
|
||||
package.
|
||||
|
||||
|
||||
Copyright: 1999 Rainer Johanni Rainer@Johanni.de
|
||||
|
||||
License: GNU General Public License v2 or later
|
||||
URL: the transcode project doesn't seem to have a home page anymore
|
||||
Corresponding files: lib/avilib-0.6.10/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.2. Boost's utf8_codecvt_facet
|
||||
|
||||
A class, utf8_codecvt_facet, derived from std::codecvt<wchar_t, char>,
|
||||
which can be used to convert utf8 data in files into wchar_t strings
|
||||
in the application.
|
||||
|
||||
|
||||
Copyright:
|
||||
|
||||
|
||||
2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
|
||||
Andrew Lumsdaine, Indiana University (lums@osl.iu.edu)
|
||||
|
||||
|
||||
License: Boost Software License - Version 1.0 (see doc/licenses/Boost-1.0.txt)
|
||||
URL: http://www.boost.org
|
||||
|
||||
Corresponding files: lib/boost/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.3. libEBML
|
||||
|
||||
A C++ library to parse EBML files
|
||||
|
||||
|
||||
Copyright: 2002-2010 Steve Lhomme et. al.
|
||||
License: GNU Lesser General Public License v2.1 or later (see doc/licenses/LGPL-2.1.txt)
|
||||
URL: http://www.matroska.org/
|
||||
|
||||
Corresponding files: lib/libebml/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.4. libMatroska
|
||||
|
||||
A C++ library to parse Matroska files
|
||||
|
||||
|
||||
Copyright: 2002-2010 Steve Lhomme et. al.
|
||||
License: GNU Lesser General Public License v2.1 or later (see doc/licenses/LGPL-2.1.txt)
|
||||
URL: http://www.matroska.org/
|
||||
|
||||
Corresponding files: lib/libmatroska/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.5. librmff
|
||||
|
||||
librmff is short for 'RealMedia file format access library'. It aims
|
||||
at providing the programmer an easy way to read and write RealMedia
|
||||
files.
|
||||
|
||||
|
||||
Copyright: Moritz Bunkus
|
||||
License: GNU Lesser General Public License v2.1 or later (see doc/licenses/LGPL-2.1.txt)
|
||||
URL: https://www.bunkus.org/videotools/librmff/index.html
|
||||
|
||||
Corresponding files: lib/librmff/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.6. nlohmann's JSON
|
||||
|
||||
JSON for Modern C++
|
||||
|
||||
|
||||
Copyright: 2013-2016 Niels Lohmann
|
||||
License: MIT (see doc/licenses/nlohmann-json-MIT.txt)
|
||||
URL: https://github.com/nlohmann/json
|
||||
|
||||
Corresponding files: lib/nlohmann-json/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.7. pugixml
|
||||
|
||||
An XML processing library
|
||||
|
||||
|
||||
Copyright: 2006–2017 by Arseny Kapoulkine arseny.kapoulkine@gmail.com
|
||||
|
||||
License: MIT (see doc/licenses/pugixml-MIT.txt)
|
||||
URL: http://pugixml.org/
|
||||
|
||||
Corresponding files: lib/pugixml/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.8. utf8-cpp
|
||||
|
||||
UTF-8 with C++ in a Portable Way
|
||||
|
||||
|
||||
Copyright: 2006 Nemanja Trifunovic
|
||||
License: custom (see doc/licenses/utf8-cpp-custom.txt)
|
||||
URL: http://utfcpp.sourceforge.net/
|
||||
|
||||
Corresponding files: lib/utf8-cpp/*
|
||||
|
||||
|
||||
|
||||
|
||||
6.9. Oxygen icons and sound files
|
||||
|
||||
Most of the icons included in this package originate from the Oxygen
|
||||
Project. These include all files in the share/icons sub-directory
|
||||
safe for those whose name starts with mkv.
|
||||
|
||||
The preferred form of modification are the SVG icons. These are not
|
||||
part of the binary distribution of MKVToolNix, but they are contained
|
||||
in the source code in the icons/scalable sub-directory. You can
|
||||
obtain the source code from the
|
||||
MKVToolNix website.
|
||||
|
||||
All of the sound files in the share/sounds sub-directory originate
|
||||
from the Oxygen project.
|
||||
|
||||
|
||||
License: GNU Lesser General Public License v3 (see doc/licenses/LGPL-3.0.txt)
|
||||
URL: https://techbase.kde.org/Projects/Oxygen
|
||||
|
||||
Corresponding files:
|
||||
|
||||
|
||||
|
||||
share/icons/* (except for share/icons/*/mkv*)
|
||||
share/sounds/*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6.10. MKVToolNix icons
|
||||
|
||||
|
||||
Copyright:
|
||||
|
||||
|
||||
2011 Alexandr Grigorcea cahr.gr@gmail.com
|
||||
|
||||
2012 Eduard Geier edu.g@online.de
|
||||
|
||||
2012 Ben Humpert ben@an3k.de
|
||||
|
||||
|
||||
|
||||
License: Creative Commons Attribution 3.0 Unported (CC BY 3.0) (see doc/licenses/CC-BY-3.0.txt)
|
||||
Corresponding files: share/icons/*/mkv*
|
||||
|
||||
|
||||
|
||||
|
||||
6.11. QtWaitingSpinner
|
||||
|
||||
A highly configurable, custom Qt widget for showing "waiting" or
|
||||
"loading" spinner icons in Qt applications
|
||||
|
||||
|
||||
Copyright:
|
||||
|
||||
|
||||
2012–2014 by Alexander Turkin
|
||||
2014 by William Hallatt
|
||||
2015 by Jacob Dawid
|
||||
|
||||
|
||||
License: MIT (see doc/licenses/QtWaitingSpinner-MIT.txt)
|
||||
URL: https://github.com/snowwlex/QtWaitingSpinner
|
||||
|
||||
Corresponding files: src/mkvtoolnix-gui/util/waiting_spinning_widget.{h,cpp}
|
||||
|
||||
6.12. Fancy tab widget
|
||||
|
||||
A beefed-up tab widget class for Qt extracted from the Qt Creator project
|
||||
|
||||
|
||||
Copyright: 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||
License: GNU General Public License v2 (see COPYING)
|
||||
Corresponding files: src/mkvtoolnix-gui/util/fancy_tab_widget.{h,cpp}
|
Loading…
Reference in a new issue