mirror of
https://codeberg.org/DansLeRuSH/ubuntu-touch-icons.git
synced 2024-11-22 06:08:07 +00:00
Delete README.md
This commit is contained in:
parent
36afe85209
commit
4e7a5d687e
1 changed files with 0 additions and 509 deletions
509
README.md
509
README.md
|
@ -1,509 +0,0 @@
|
||||||
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