mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-23 19:31:44 +00:00
all: remove deprecated features
The features removed are: * mkvmerge: the options `--identify-verbose` (and its counterpart `-I`), `--identify-for-gui`, `--identify-for-mmg` and `--identification-format verbose-text` * all command line tools: the old, proprietary format used for option files * all command line tools: support for passing command line options via the environment variables `MKVTOOLNIX_OPTIONS`, `MKVEXTRACT_OPTIONS`, `MKVINFO_OPTIONS`, `MKVMERGE_OPTIONS`, and `MKVPROPEDIT_OPTIONS`
This commit is contained in:
parent
f164202a24
commit
ffb32a657b
13
NEWS.md
13
NEWS.md
@ -1,5 +1,18 @@
|
||||
# Version ?
|
||||
|
||||
## 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` have been removed.
|
||||
* all command line tools: support for the deprecated, old, proprietary format
|
||||
used for option files has been removed.
|
||||
* 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` has been
|
||||
removed.
|
||||
|
||||
## New features and enhancements
|
||||
|
||||
* mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter NALUs will
|
||||
|
@ -879,18 +879,6 @@
|
||||
</itemizedlist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvextract.escaping">
|
||||
<title>Escaping special chars in text</title>
|
||||
<para>
|
||||
There are a few places in which special characters in text must or should be escaped. The rules for escaping are simple: each character
|
||||
that needs escaping is replaced with a backslash followed by another character.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvextract.environment_variables">
|
||||
<title>Environment variables</title>
|
||||
|
||||
@ -915,15 +903,6 @@
|
||||
linkend="mkvextract.description.engage"><option>--engage</option></link> option.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>MKVEXTRACT_OPTIONS</varname>, <varname>MKVTOOLNIX_OPTIONS</varname> and its short form <varname>MTX_OPTIONS</varname></term>
|
||||
<listitem>
|
||||
<para>The content is split on white space. The resulting partial strings are treated as if it had been passed as command line
|
||||
options. If you need to pass special characters (e.g. spaces) then you have to escape them (see <link
|
||||
linkend="mkvextract.escaping">the section about escaping special characters in text</link>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -311,18 +311,6 @@
|
||||
</itemizedlist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvinfo.escaping">
|
||||
<title>Escaping special chars in text</title>
|
||||
<para>
|
||||
There are a few places in which special characters in text must or should be escaped. The rules for escaping are simple: each character
|
||||
that needs escaping is replaced with a backslash followed by another character.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvinfo.environment_variables">
|
||||
<title>Environment variables</title>
|
||||
|
||||
@ -347,15 +335,6 @@
|
||||
linkend="mkvinfo.description.engage"><option>--engage</option></link> option.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>MKVINFO_OPTIONS</varname>, <varname>MKVTOOLNIX_OPTIONS</varname> and its short form <varname>MTX_OPTIONS</varname></term>
|
||||
<listitem>
|
||||
<para>The content is split on white space. The resulting partial strings are treated as if it had been passed as command line
|
||||
options. If you need to pass special characters (e.g. spaces) then you have to escape them (see <link
|
||||
linkend="mkvinfo.escaping">the section about escaping special characters in text</link>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -1934,31 +1934,13 @@ $ mkvmerge -o out.mkv '(' file.mkv ')'</screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkvmerge.description.identify_verbose">
|
||||
<term><option>-I</option>, <option>--identify-verbose</option> <parameter>file-name</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Will let &mkvmerge; probe the single file and report its type, the tracks contained in the file and their track IDs. If this option is
|
||||
used then the only other option allowed is the filename.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The output will also contain properties for all items found, e.g. the file title or the track language.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>This option is deprecated. It will be removed in 2018.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkvmerge.description.identification_format">
|
||||
<term><option>-F</option>, <option>--identification-format</option> <parameter>format</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Determines the output format used by the <link linkend="mkvmerge.description.identify"><literal>--identify</literal>
|
||||
option</link>. The following formats are supported: <literal>text</literal> (the default if this option isn't used),
|
||||
<literal>verbose-text</literal> and <literal>json</literal>.
|
||||
option</link>. The following formats are supported: <literal>text</literal> (the default if this option isn't used) and
|
||||
<literal>json</literal>.
|
||||
</para>
|
||||
|
||||
<orderedlist>
|
||||
@ -1969,26 +1951,6 @@ $ mkvmerge -o out.mkv '(' file.mkv ')'</screen>
|
||||
linkend="mkvmerge.description.ui_language">--ui-language</link>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>verbose-text</literal> format extends the <literal>text</literal> format with additional properties for each item. The
|
||||
extra information is surronded by square brackets. It consists of space-saparated key/value pairs where keys and values are separated
|
||||
by a colon.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Each value is escaped according to the rules described in <link linkend="mkvmerge.escaping">the section about escaping special
|
||||
characters in text</link>.
|
||||
</para>
|
||||
|
||||
<para>This format is not meant to be parsed. The output will be translated into the language &mkvmerge; uses (see also <link
|
||||
linkend="mkvmerge.description.ui_language">--ui-language</link>).</para>
|
||||
|
||||
<note>
|
||||
<para>This option is deprecated. It will be removed in 2018.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>json</literal> format outputs a machine-readable JSON representation. This format follows the JSON schema described in
|
||||
@ -2593,29 +2555,21 @@ Track ID 1: audio (A_MPEG/L3)</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There are two formats for option files: a JSON format and a proprietary legacy format. The legacy format is deprecated, and support for
|
||||
it will likely be removed in 2018.
|
||||
An option file contains JSON-formatted data. Its content must be a valid JSON array consisting solely of JSON
|
||||
strings. The file's encoding must be UTF-8. The file should not start with a <foreignphrase>byte order marker</foreignphrase>
|
||||
(<abbrev>BOM</abbrev>), but if one exists, it will be skipped.
|
||||
</para>
|
||||
|
||||
<refsect2 id="mkvmerge.option_files.json_format">
|
||||
<title>The JSON format</title>
|
||||
<para>
|
||||
The rules for escaping special characters inside JSON are the ones in the official JSON specification, <ulink url="https://tools.ietf.org/html/rfc7159">RFC 7159</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A JSON option file's name must end in '<filename>.json</filename>'. Its content must be a valid JSON array consisting solely of JSON
|
||||
strings. The file's encoding must be UTF-8. The file should not start with a <foreignphrase>byte order marker</foreignphrase>
|
||||
(<abbrev>BOM</abbrev>), but if one exists, it will be skipped.
|
||||
</para>
|
||||
<para>
|
||||
The command line '<command>mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg</command>' could be converted into the following
|
||||
JSON option file called e.g. '<filename>options.json</filename>':
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The rules for escaping special characters inside JSON are the ones in the official JSON specification, <ulink url="https://tools.ietf.org/html/rfc7159">RFC 7159</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The command line '<command>mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg</command>' could be converted into the following
|
||||
JSON option file called e.g. '<filename>options.json</filename>':
|
||||
</para>
|
||||
|
||||
<programlisting>[
|
||||
<programlisting>[
|
||||
"-o",
|
||||
"c:\\Matroska\\my file.mkv",
|
||||
"--title",
|
||||
@ -2624,59 +2578,6 @@ Track ID 1: audio (A_MPEG/L3)</screen>
|
||||
"a movie.avi",
|
||||
"sound.ogg"
|
||||
]</programlisting>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="mkvmerge.option_files.legacy_format">
|
||||
<title>The legacy format</title>
|
||||
|
||||
<para>
|
||||
There are several rules regarding option files. Lines whose first non-whitespace character is a hash mark ('<literal>#</literal>') are
|
||||
treated as comments and ignored. White spaces at the start and end of a line will be stripped. Each line must contain exactly one
|
||||
option.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A line not containing anything is also ignored. An empty argument is represented by the line '<literal>#EMPTY#</literal>'.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Several chars can be escaped, e.g. if you need to start a non-comment line with '#'. The rules are described in <link
|
||||
linkend="mkvmerge.escaping">the section about escaping text</link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that backslashes must always be escaped. Hash marks ('#') must be escaped if they should not start a comment.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The command line '<command>mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg</command>' could be converted into the following
|
||||
legacy option file called e.g. '<filename>options.txt</filename>':
|
||||
</para>
|
||||
|
||||
<programlisting># Write to the file "c:\Matroska\my file.mkv" on Windows.
|
||||
-o
|
||||
c:\\Matroska\\my file.mkv
|
||||
# Set the title to '#65'.
|
||||
--title
|
||||
\h65
|
||||
# Only take the video from "a movie.avi".
|
||||
-A
|
||||
a movie.avi
|
||||
sound.ogg</programlisting>
|
||||
</refsect2>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvmerge.escaping">
|
||||
<title>Escaping special chars in text</title>
|
||||
<para>
|
||||
There are a few places in which special characters in text must or should be escaped. The rules for escaping are simple: each character
|
||||
that needs escaping is replaced with a backslash followed by another character.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h', '[' becomes '\b', ']' becomes '\B' and '\' (a single backslash) itself becomes '\\'.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvmerge.subtitles">
|
||||
@ -3286,15 +3187,6 @@ gap, 10.050
|
||||
linkend="mkvmerge.description.engage"><option>--engage</option></link> option.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>MKVMERGE_OPTIONS</varname>, <varname>MKVTOOLNIX_OPTIONS</varname> and its short form <varname>MTX_OPTIONS</varname></term>
|
||||
<listitem>
|
||||
<para>The content is split on white space. The resulting partial strings are treated as if it had been passed as command line
|
||||
options. If you need to pass special characters (e.g. spaces) then you have to escape them (see <link linkend="mkvmerge.escaping">the
|
||||
section about escaping special characters in text</link>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -724,18 +724,6 @@
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvpropedit.escaping">
|
||||
<title>Escaping special chars in text</title>
|
||||
<para>
|
||||
There are a few places in which special characters in text must or should be escaped. The rules for escaping are simple: each character
|
||||
that needs escaping is replaced with a backslash followed by another character.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="mkvpropedit.environment_variables">
|
||||
<title>Environment variables</title>
|
||||
|
||||
@ -760,15 +748,6 @@
|
||||
linkend="mkvpropedit.description.engage"><option>--engage</option></link> option.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>MKVPROPEDIT_OPTIONS</varname>, <varname>MKVTOOLNIX_OPTIONS</varname> and its short form <varname>MTX_OPTIONS</varname></term>
|
||||
<listitem>
|
||||
<para>The content is split on white space. The resulting partial strings are treated as if it had been passed as command line
|
||||
options. If you need to pass special characters (e.g. spaces) then you have to escape them (see <link
|
||||
linkend="mkvpropedit.escaping">the section about escaping special characters in text</link>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
8
po/ca.po
8
po/ca.po
@ -2478,16 +2478,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Avisos emesos per la tasca «%1», iniciada el %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1.- Un número que serà interpretat com un ID d'adjunt llistat per «mkvmerge --identify-verbose». Normalment, són números començant des de 0 (p. ex., «2»)."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1.- Un número que serà interpretat com un ID d'adjunt llistat per «mkvmerge --identify». Normalment, són números començant des de 0 (p. ex., «2»)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: tots els fotogrames"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2.- Un número amb el prefix «=», el qual serà interpretat com un l'ID únic de l'adjunt llistat per «mkvmerge --identify-verbose». Normalment, són nombres aleatoris. (p. ex., «128975986723»)."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2.- Un número amb el prefix «=», el qual serà interpretat com un l'ID únic de l'adjunt llistat per «mkvmerge --identify». Normalment, són nombres aleatoris. (p. ex., «128975986723»)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/cs.po
8
po/cs.po
@ -2474,16 +2474,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Upozornění vyvolaná úlohou '%1' spuštěnou %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Číslo, které bude vyhodnoceno jako ID přílohy a zobrazeno podle 'mkvmerge --identify-verbose'. Jsou to obvykle jednoduchá čísla začínající od 0 (např. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Číslo, které bude vyhodnoceno jako ID přílohy a zobrazeno podle 'mkvmerge --identify'. Jsou to obvykle jednoduchá čísla začínající od 0 (např. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: všechny snímky"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Číslo s předponou \"=\", které bude vyhodnoceno jako jedinečné ID (UID) přílohy a zobrazeno podle 'mkvmerge --identify-verbose'. Jsou to obvykle náhodně vypadající čísla (např. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Číslo s předponou \"=\", které bude vyhodnoceno jako jedinečné ID (UID) přílohy a zobrazeno podle 'mkvmerge --identify'. Jsou to obvykle náhodně vypadající čísla (např. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/de.po
8
po/de.po
@ -2426,16 +2426,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Warnungen ausgegeben von Job »%1« gestartet am %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. eine Zahl, die als die Dateianhangs-ID interpretiert wird, die auch »mkvmerge --identify-verbose« ausgibt. Diese sind normalerweise aufsteigend nummeriert und starten bei 0 (z.B. »2«)."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. eine Zahl, die als die Dateianhangs-ID interpretiert wird, die auch »mkvmerge --identify« ausgibt. Diese sind normalerweise aufsteigend nummeriert und starten bei 0 (z.B. »2«)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: alle Bilder"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. eine Zahl mit dem Präfix »=«, die als die eindeutige ID eines Dateianhangs interpretiert und auch von »mkvmerge --identify-verbose« ausgegeben wird. Dies ist normalerweise eine zufällig aussehende Zahl (z.B. »128975986723«)."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. eine Zahl mit dem Präfix »=«, die als die eindeutige ID eines Dateianhangs interpretiert und auch von »mkvmerge --identify« ausgegeben wird. Dies ist normalerweise eine zufällig aussehende Zahl (z.B. »128975986723«)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/es.po
8
po/es.po
@ -2489,16 +2489,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Advertencias generadas por la tarea '%1' iniciada en %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un número que será interpretado como un ID de un archivo adjunto listado por 'mkvmerge --identify-verbose'. Normalmente, son números que empiezan desde 0 (p.e. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un número que será interpretado como un ID de un archivo adjunto listado por 'mkvmerge --identify'. Normalmente, son números que empiezan desde 0 (p.e. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: todos los fotogramas"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un número con el prefijo '=' que será interpretado como un UID (IDentificador Único) del archivo adjunto listado por 'mkvmerge --identify-verbose'. Normalmente, son números aleatorios. (p.e. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un número con el prefijo '=' que será interpretado como un UID (IDentificador Único) del archivo adjunto listado por 'mkvmerge --identify'. Normalmente, son números aleatorios. (p.e. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
14
po/eu.po
14
po/eu.po
@ -2424,16 +2424,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- '%1' lanak jaulkitako kontuz-oharrak. Hasiera: %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Zenbaki bat eranskin ID bezala ulertuko da 'mkvmerge --identify-verbose'-n zerrendatu bezala. Hauek arrunt 0-tik hasita zenbakitzen dira (adib. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Zenbaki bat eranskin ID bezala ulertuko da 'mkvmerge --identify'-n zerrendatu bezala. Hauek arrunt 0-tik hasita zenbakitzen dira (adib. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: frame guztiak"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Zenbaki bat '=' aurrizkiarekin eranskinaren ID (UID) bakar bezala ulertuko dena 'mkvmerge --identify-verbose'-n zerrendatu bezala. Hauek arrunt zorizko-zenbakiak dira (adib. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Zenbaki bat '=' aurrizkiarekin eranskinaren ID (UID) bakar bezala ulertuko dena 'mkvmerge --identify'-n zerrendatu bezala. Hauek arrunt zorizko-zenbakiak dira (adib. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
@ -13500,7 +13500,7 @@ msgstr "– Ezarri ezer ez bezala –"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "1. A number which will be interepreted as an attachment ID as listed by "
|
||||
#~ "'mkvmerge --identify-verbose'. These are usually simply numbered starting "
|
||||
#~ "'mkvmerge --identify'. These are usually simply numbered starting "
|
||||
#~ "from 0 (e.g. '2')."
|
||||
#~ msgstr ""
|
||||
#~ "1. Eranskin baten ID bezala ulertuko den zenbaki bat 'mkvmerge --identify-"
|
||||
@ -13519,11 +13519,11 @@ msgstr "– Ezarri ezer ez bezala –"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "2. A number with the prefix '=' which will be interepreted as the "
|
||||
#~ "attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. "
|
||||
#~ "attachment's unique ID (UID) as listed by 'mkvmerge --identify'. "
|
||||
#~ "These are usually random-looking numbers (e.g. '128975986723')."
|
||||
#~ msgstr ""
|
||||
#~ "2. '=' aurrizkia duen zenbaki bat zeina eranskinaren ID (UID) bakarra "
|
||||
#~ "bezala ulertuko da 'mkvmerge --identify-verbose' zerrendan bezala. Hauek "
|
||||
#~ "bezala ulertuko da 'mkvmerge --identify' zerrendan bezala. Hauek "
|
||||
#~ "arrunt zorizko-bilaketa zenbakiak dira (adib. '128975986723')."
|
||||
|
||||
#~ msgid ""
|
||||
|
8
po/fr.po
8
po/fr.po
@ -2415,16 +2415,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Avertissements émis par la tâche « %1 » lancée le %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un numéro interprété comme un ID de pièce jointe et listé par « mkvmerge --identify-verbose ». La numérotation commence normalement à 0 (par exemple « 2 »)."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un numéro interprété comme un ID de pièce jointe et listé par « mkvmerge --identify ». La numérotation commence normalement à 0 (par exemple « 2 »)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1 : toutes les trames"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un numéro préfixé par « = » interprété comme identifiant unique de la pièce jointe (UID) et listé par « mkvmerge --identify-verbose ». La numérotation est généralement aléatoire (par ex. « 128975986723 »)."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un numéro préfixé par « = » interprété comme identifiant unique de la pièce jointe (UID) et listé par « mkvmerge --identify ». La numérotation est généralement aléatoire (par ex. « 128975986723 »)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/it.po
8
po/it.po
@ -2415,16 +2415,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Notifiche emesse dall'attività '%1' avviato il %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un numero che verrà intepretato come ID allegato come elencato da 'mkvmerge --identify-verbose'. Questi sono normalmente numeri che partono da 0 (es. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Un numero che verrà intepretato come ID allegato come elencato da 'mkvmerge --identify'. Questi sono normalmente numeri che partono da 0 (es. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: tutti i frame"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un numero con il prefisso '=' che verrà intepretato come l'ID univoco (UID) dell'allegato come elencato da 'mkvmerge --identify-verbose'. Questi sono normalmente numeri casuali. (es. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Un numero con il prefisso '=' che verrà intepretato come l'ID univoco (UID) dell'allegato come elencato da 'mkvmerge --identify'. Questi sono normalmente numeri casuali. (es. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/ja.po
8
po/ja.po
@ -2423,16 +2423,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- %2に開始したジョブ「%1」で警告が発生しました ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 'mkvmerge --identify-verbose'で列挙される、添付ファイルのIDとして解釈される数字。これは通常、単純に0を開始点として番号が付けられます(例:'2')。"
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 'mkvmerge --identify'で列挙される、添付ファイルのIDとして解釈される数字。これは通常、単純に0を開始点として番号が付けられます(例:'2')。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: 全フレーム"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 'mkvmerge --identify-verbose'で列挙され、添付ファイルのユニークID(UID)として解釈される、'='が最初に付加された数字。これは通常ランダムに見える数字です(例:'128975986723')。"
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 'mkvmerge --identify'で列挙され、添付ファイルのユニークID(UID)として解釈される、'='が最初に付加された数字。これは通常ランダムに見える数字です(例:'128975986723')。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/ko.po
8
po/ko.po
@ -2378,16 +2378,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- '%1' 작업 중 경고가 %2 에서 시작되었습니다 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 'mkvmerge --identify-verbose' 에 적은 대로 첨부 파일 ID로 해석할 숫자. 이것들은 보통 단순하게 0에서 시작해서 번호를 붙입니다 (예. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 'mkvmerge --identify' 에 적은 대로 첨부 파일 ID로 해석할 숫자. 이것들은 보통 단순하게 0에서 시작해서 번호를 붙입니다 (예. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: 모든 프레임"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 'mkvmerge --identify-verbose' 에 적은 대로 첨부 파일의 고유 ID(UID)로 해석할 접두어 '='가 있는 숫자. 이것들은 보통 무작위 모양의 숫자입니다 (예. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 'mkvmerge --identify' 에 적은 대로 첨부 파일의 고유 ID(UID)로 해석할 접두어 '='가 있는 숫자. 이것들은 보통 무작위 모양의 숫자입니다 (예. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
4
po/lt.po
4
po/lt.po
@ -2332,7 +2332,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr ""
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2340,7 +2340,7 @@ msgid "1: all frames"
|
||||
msgstr "1: visi kadrai"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
8
po/nl.po
8
po/nl.po
@ -2408,16 +2408,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Waarschuwing verstuurd door taak '%1' gestart op %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Een nummer die gezien wordt als een bijlage ID uit gelijst door de 'mkvmerge --identify-verbose'. Dit zijn gewoonlijk nummers startend vanaf 0 (b.v. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Een nummer die gezien wordt als een bijlage ID uit gelijst door de 'mkvmerge --identify'. Dit zijn gewoonlijk nummers startend vanaf 0 (b.v. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: alle beeldjes"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Een cijfer voorgezet met een '=' welke geïnterpreteerd zullen worden als een unieke bijlage(n) ID (UID) uit gelijst door 'mkvmerge --identify-verbose'. Dit zijn gewoonlijk willekeurige cijfers (b.v. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Een cijfer voorgezet met een '=' welke geïnterpreteerd zullen worden als een unieke bijlage(n) ID (UID) uit gelijst door 'mkvmerge --identify'. Dit zijn gewoonlijk willekeurige cijfers (b.v. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
8
po/pl.po
8
po/pl.po
@ -2430,16 +2430,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "► Ostrzeżenia emitowane przez zadanie: \"%1\". Rozpoczęto o: %2"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Liczba, która będzie interpretowana jako ID załącznika, wyświetlana przez \"mkvmerge --identify-verbose\". Z reguły są to numery mogące rozpoczynać się od 0 (np.: \"2\")."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Liczba, która będzie interpretowana jako ID załącznika, wyświetlana przez \"mkvmerge --identify\". Z reguły są to numery mogące rozpoczynać się od 0 (np.: \"2\")."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: wszystkie klatki"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Liczba z przedrostkiem \"=\", która będzie interpretowana jako unikalne ID załącznika (UID), wyświetlane przez \"mkvmerge --identify-verbose\". Są to numery z cyframi przypadkowej kolejności (np.: \"128975986723\")"
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Liczba z przedrostkiem \"=\", która będzie interpretowana jako unikalne ID załącznika (UID), wyświetlane przez \"mkvmerge --identify\". Są to numery z cyframi przypadkowej kolejności (np.: \"128975986723\")"
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
4
po/pt.po
4
po/pt.po
@ -2358,7 +2358,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "Aviso emitidos pela tarefa '%1' iniciada em %2"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2366,7 +2366,7 @@ msgid "1: all frames"
|
||||
msgstr "1: todos os frames"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
@ -2486,7 +2486,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr ""
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2494,7 +2494,7 @@ msgid "1: all frames"
|
||||
msgstr "1: todos os frames"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
4
po/ro.po
4
po/ro.po
@ -2226,7 +2226,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Avertizări emise de activitatea „%1” pornită pe %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2234,7 +2234,7 @@ msgid "1: all frames"
|
||||
msgstr "1: toate cadrele"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
8
po/ru.po
8
po/ru.po
@ -2237,16 +2237,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Предупреждения, произведённые заданием '%1', запущенным в %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Число, интерпретируемое как идентификатор вложения, как они перечисляются командой 'mkvmerge --identify-verbose'. Обычно они просто нумеруются по порядку начиная с нуля (например '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Число, интерпретируемое как идентификатор вложения, как они перечисляются командой 'mkvmerge --identify'. Обычно они просто нумеруются по порядку начиная с нуля (например '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: все кадры"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Число с префиксом '=', что интерпретируется как уникальный ID (UID) вложения, как они перечисляются командой 'mkvmerge --identify-verbose'. Обычно это произвольного вида числа (например '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Число с префиксом '=', что интерпретируется как уникальный ID (UID) вложения, как они перечисляются командой 'mkvmerge --identify'. Обычно это произвольного вида числа (например '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
@ -2499,16 +2499,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Упозорења при извршењу радње »%1«, покренуте: %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Број који се добије преко „mkvmerge --identify-verbose“, приказан као Прилог ИБ. Ови бројеви су једноставно нумерисани почев од „0“ (нпр. „2“)."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Број који се добије преко „mkvmerge --identify“, приказан као Прилог ИБ. Ови бројеви су једноставно нумерисани почев од „0“ (нпр. „2“)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: сви кадрови"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Број са предлошком „=“. Овај број је приказан као јединствен ИБ (ЈИБ) прилога (енг. „uid“) у излазу наредбе „mkvmerge --identify-verbose“. Ово су обично насумице створени бројеви (нпр. „128975986723“)."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Број са предлошком „=“. Овај број је приказан као јединствен ИБ (ЈИБ) прилога (енг. „uid“) у излазу наредбе „mkvmerge --identify“. Ово су обично насумице створени бројеви (нпр. „128975986723“)."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
@ -2437,16 +2437,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Upozorenja emitovana od zadatka '%1' započela u %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Broj koji će biti protumačen kao ID priloga kao što je navedeno sa 'mkvmerge --identify-verbose'. Oni su obično jednostavno numerisani polazeći od 0 (npr. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Broj koji će biti protumačen kao ID priloga kao što je navedeno sa 'mkvmerge --identify'. Oni su obično jednostavno numerisani polazeći od 0 (npr. '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: sve slike"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Broj sa prefiksom '=', koji će biti protumačen kao jedinstven ID priloga (UID) kao što je navedeno sa 'mkvmerge --identify-verbose'. Oni obično izgledaju kao nasumice izabrani brojevi (npr. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Broj sa prefiksom '=', koji će biti protumačen kao jedinstven ID priloga (UID) kao što je navedeno sa 'mkvmerge --identify'. Oni obično izgledaju kao nasumice izabrani brojevi (npr. '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
4
po/sv.po
4
po/sv.po
@ -2245,7 +2245,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr ""
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2253,7 +2253,7 @@ msgid "1: all frames"
|
||||
msgstr "1: alla rutor"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
4
po/tr.po
4
po/tr.po
@ -2407,7 +2407,7 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- '%1' işi tarafından verilen %2 zamanındaki uyarılar ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
@ -2415,7 +2415,7 @@ msgid "1: all frames"
|
||||
msgstr "1: tüm kareler"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr ""
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
|
8
po/uk.po
8
po/uk.po
@ -2457,16 +2457,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- Попередження, згенеровані під час виконання завдання \"%1\" розпочатого в: %2 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Число, що буде інтепретуватися як ID вкладення як вказано в 'mkvmerge --identify-verbose'. Це зазвичай проста нумерація, починаючи з 0 (наприклад, '2')."
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. Число, що буде інтепретуватися як ID вкладення як вказано в 'mkvmerge --identify'. Це зазвичай проста нумерація, починаючи з 0 (наприклад, '2')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: всі кадри"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Число з префіксом '=', що буде інтепретуватися як унікальний ID вкладення (UID) як вказано в 'mkvmerge --identify-verbose'. Це зазвичай випадково згенеровані числа (наприклад, '128975986723')."
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. Число з префіксом '=', що буде інтепретуватися як унікальний ID вкладення (UID) як вказано в 'mkvmerge --identify'. Це зазвичай випадково згенеровані числа (наприклад, '128975986723')."
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
@ -2343,16 +2343,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- 任务“%1”(启动时间 %2) 的警告消息 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 一个表示附件 ID 的数字 ('mkvmerge --identify-verbose' 所列出的)。通常是从 0 开始的数字编号 (如 '2')。"
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 一个表示附件 ID 的数字 ('mkvmerge --identify' 所列出的)。通常是从 0 开始的数字编号 (如 '2')。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: 所有帧"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 数字,以“=”为前缀,表示附件的唯一 ID(UID,即“mkvmerge --identify-verbose”所列出的 ID)。通常是看起来随机的数字 (如“128975986723”)。"
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 数字,以“=”为前缀,表示附件的唯一 ID(UID,即“mkvmerge --identify”所列出的 ID)。通常是看起来随机的数字 (如“128975986723”)。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
@ -2397,16 +2397,16 @@ msgid "--- Warnings emitted by job '%1' started on %2 ---"
|
||||
msgstr "--- 任務 %1 (開始時間 %2) 的警告訊息 ---"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:263
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 插入號碼作為由「mkvmerge --identify-verbose」列舉的附件 ID。這些號碼通常是從 0 開始編號的簡單號碼 (例如「2」)。"
|
||||
msgid "1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."
|
||||
msgstr "1. 插入號碼作為由「mkvmerge --identify」列舉的附件 ID。這些號碼通常是從 0 開始編號的簡單號碼 (例如「2」)。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:808
|
||||
msgid "1: all frames"
|
||||
msgstr "1: 全部畫格"
|
||||
|
||||
#: src/propedit/propedit_cli_parser.cpp:264
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 插入以「=」為字首的號碼作為由「mkvmerge --identify-verbose」列舉的附件唯一識別碼 (UID)。這些號碼通常看起來像是隨機產生的數字 (例如「128975986723」)。"
|
||||
msgid "2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."
|
||||
msgstr "2. 插入以「=」為字首的號碼作為由「mkvmerge --identify」列舉的附件唯一識別碼 (UID)。這些號碼通常看起來像是隨機產生的數字 (例如「128975986723」)。"
|
||||
|
||||
#: src/info/mkvinfo.cpp:810
|
||||
msgid "2: codec private data"
|
||||
|
@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require File.absolute_path(File.dirname(__FILE__)) + "/mkvtoolnix/common.rb"
|
||||
require File.absolute_path(File.dirname(__FILE__)) + "/mkvtoolnix/merge.rb"
|
@ -1,16 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
module MKVToolNix
|
||||
module Common
|
||||
def self.unescape string
|
||||
map = {
|
||||
'2' => '"',
|
||||
's' => ' ',
|
||||
'c' => ':',
|
||||
'h' => '#',
|
||||
}
|
||||
|
||||
return string.gsub(/\\(.)/) { |match| map[$1] || $1 }
|
||||
end
|
||||
end
|
||||
end
|
@ -1,96 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require "pp"
|
||||
|
||||
module MKVToolNix
|
||||
module Merge
|
||||
EXIT_STATUS_MAP = {
|
||||
0 => :success,
|
||||
1 => :warnings,
|
||||
2 => :errors,
|
||||
}
|
||||
|
||||
def self.identify file_name, opt = {}
|
||||
opt[:executable] ||= 'mkvmerge'
|
||||
|
||||
p = IO.popen([ opt[:executable], "--identify-for-gui", "--output-charset", "UTF-8", file_name ])
|
||||
output = p.readlines
|
||||
p.close
|
||||
|
||||
result = {
|
||||
:status => EXIT_STATUS_MAP[ $?.exitstatus ] || :unknown,
|
||||
:exitstatus => $?.exitstatus,
|
||||
:container => { },
|
||||
:tracks => [ ],
|
||||
:attachments => [ ],
|
||||
:num_chapters => 0,
|
||||
:num_tags => 0,
|
||||
}
|
||||
|
||||
return result if result[:status] != :success
|
||||
|
||||
tracks_by_id = { }
|
||||
num_tags_by_id = { }
|
||||
|
||||
output.each do |line|
|
||||
line.chomp!
|
||||
|
||||
if /^File.+:.+container: +([^ ]+)/.match line
|
||||
result[:container] = self.extract_properties(line).merge(:type => $1)
|
||||
|
||||
elsif /^Track ID (\d): +([a-z\-]+) +\((.+?)\)/.match line
|
||||
track = self.extract_properties(line).merge(
|
||||
:mkvmerge_id => $1.to_i,
|
||||
:type => $2.to_sym,
|
||||
:codec => $3,
|
||||
:num_tags => 0,
|
||||
)
|
||||
|
||||
result[:tracks] << track
|
||||
tracks_by_id[ track[:mkvmerge_id] ] = track
|
||||
|
||||
elsif /^Attachment +ID +(\d+): +type +["'](.+)["'], +size +(\d+) +bytes?, +file +name +["'](.+)["']$/.match line
|
||||
# Attachment ID 1: type 'text/plain', size 1202 bytes, file name 'ven.srt'
|
||||
result[:attachments] << {
|
||||
:mkvmerge_id => $1.to_i,
|
||||
:type => $2,
|
||||
:size => $3.to_i,
|
||||
:file_name => $4,
|
||||
}
|
||||
|
||||
elsif /^Global +tags: +(\d+)/.match line
|
||||
# Global tags: 4 entries
|
||||
result[:num_tags] = $1.to_i
|
||||
|
||||
elsif /^Chapters: +(\d+)/.match line
|
||||
# Chapters: 5 entries
|
||||
result[:num_chapters] = $1.to_i
|
||||
|
||||
elsif /^Tags +for +track +ID +(\d+): +(\d+)/.match line
|
||||
# Tags for track ID 1: 2 entries
|
||||
num_tags_by_id[$1.to_i] = $2.to_i
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
num_tags_by_id.each do |id, num|
|
||||
tracks_by_id[id][:num_tags] = num if tracks_by_id.has_key? id
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def self.extract_properties line
|
||||
return { } unless /.+\[ ( .+ ) \]/x.match line
|
||||
return Hash[ *
|
||||
$1
|
||||
.chomp
|
||||
.split(/ +/)
|
||||
.collect { |part| sub_parts = part.split(/:/).collect { |sub_part| MKVToolNix::Common.unescape sub_part } ; [ sub_parts[0].to_sym, sub_parts[1] ] }
|
||||
.flatten
|
||||
]
|
||||
end
|
||||
end
|
||||
end
|
@ -36,49 +36,6 @@ namespace mtx { namespace cli {
|
||||
|
||||
bool g_gui_mode = false;
|
||||
|
||||
/** \brief Reads command line arguments from a file
|
||||
|
||||
Each line contains exactly one command line argument or a
|
||||
comment. Arguments are converted to UTF-8 and appended to the array
|
||||
\c args.
|
||||
*/
|
||||
static void
|
||||
read_args_from_old_option_file(std::vector<std::string> &args,
|
||||
std::string const &filename) {
|
||||
mm_text_io_cptr mm_io;
|
||||
std::string buffer;
|
||||
bool skip_next;
|
||||
|
||||
try {
|
||||
mm_io = std::make_shared<mm_text_io_c>(std::make_shared<mm_file_io_c>(filename));
|
||||
} catch (mtx::mm_io::exception &ex) {
|
||||
mxerror(boost::format(Y("The file '%1%' could not be opened for reading: %2%.\n")) % filename % ex);
|
||||
}
|
||||
|
||||
skip_next = false;
|
||||
while (!mm_io->eof() && mm_io->getline2(buffer)) {
|
||||
if (skip_next) {
|
||||
skip_next = false;
|
||||
continue;
|
||||
}
|
||||
strip(buffer);
|
||||
|
||||
if (buffer == "#EMPTY#") {
|
||||
args.push_back("");
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((buffer[0] == '#') || (buffer[0] == 0))
|
||||
continue;
|
||||
|
||||
if (buffer == "--command-line-charset") {
|
||||
skip_next = true;
|
||||
continue;
|
||||
}
|
||||
args.push_back(unescape(buffer));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
read_args_from_json_file(std::vector<std::string> &args,
|
||||
std::string const &filename) {
|
||||
@ -121,36 +78,6 @@ read_args_from_json_file(std::vector<std::string> &args,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
read_args_from_file(std::vector<std::string> &args,
|
||||
std::string const &filename) {
|
||||
auto path = bfs::path{filename};
|
||||
if (balg::to_lower_copy(path.extension().string()) == ".json")
|
||||
read_args_from_json_file(args, filename);
|
||||
|
||||
else
|
||||
read_args_from_old_option_file(args, filename);
|
||||
}
|
||||
|
||||
static std::vector<std::string>
|
||||
command_line_args_from_environment() {
|
||||
std::vector<std::string> all_args;
|
||||
|
||||
auto process = [&all_args](std::string const &variable) {
|
||||
auto value = getenv((boost::format("%1%_OPTIONS") % variable).str().c_str());
|
||||
if (value && value[0]) {
|
||||
auto args = split(value, " ");
|
||||
std::transform(args.begin(), args.end(), std::back_inserter(all_args), unescape);
|
||||
}
|
||||
};
|
||||
|
||||
process("MKVTOOLNIX");
|
||||
process("MTX");
|
||||
process(balg::to_upper_copy(get_program_name()));
|
||||
|
||||
return all_args;
|
||||
}
|
||||
|
||||
/** \brief Expand the command line parameters
|
||||
|
||||
Takes each command line paramter, converts it to UTF-8, and reads more
|
||||
@ -171,13 +98,13 @@ std::vector<std::string>
|
||||
args_in_utf8(int argc,
|
||||
char **argv) {
|
||||
int i;
|
||||
std::vector<std::string> args = command_line_args_from_environment();
|
||||
std::vector<std::string> args;
|
||||
|
||||
charset_converter_cptr cc_command_line = g_cc_stdio;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
if (argv[i][0] == '@')
|
||||
read_args_from_file(args, &argv[i][1]);
|
||||
read_args_from_json_file(args, &argv[i][1]);
|
||||
else {
|
||||
if (!strcmp(argv[i], "--command-line-charset")) {
|
||||
if ((i + 1) == argc)
|
||||
|
@ -118,70 +118,6 @@ shrink_whitespace(std::string &s) {
|
||||
return s;
|
||||
}
|
||||
|
||||
std::string
|
||||
escape(const std::string &source) {
|
||||
std::string dst;
|
||||
std::string::const_iterator src;
|
||||
|
||||
for (src = source.begin(); src < source.end(); src++) {
|
||||
if (*src == '\\')
|
||||
dst += "\\\\";
|
||||
else if (*src == '"')
|
||||
dst += "\\2"; // Yes, this IS a trick ;)
|
||||
else if (*src == ' ')
|
||||
dst += "\\s";
|
||||
else if (*src == ':')
|
||||
dst += "\\c";
|
||||
else if (*src == '#')
|
||||
dst += "\\h";
|
||||
else if (*src == '[')
|
||||
dst += "\\b";
|
||||
else if (*src == ']')
|
||||
dst += "\\B";
|
||||
else
|
||||
dst += *src;
|
||||
}
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
std::string
|
||||
unescape(const std::string &source) {
|
||||
std::string dst;
|
||||
std::string::const_iterator src, next_char;
|
||||
|
||||
src = source.begin();
|
||||
next_char = src + 1;
|
||||
while (src != source.end()) {
|
||||
if (*src == '\\') {
|
||||
if (next_char == source.end()) // This is an error...
|
||||
dst += '\\';
|
||||
else {
|
||||
if (*next_char == '2')
|
||||
dst += '"';
|
||||
else if (*next_char == 's')
|
||||
dst += ' ';
|
||||
else if (*next_char == 'c')
|
||||
dst += ':';
|
||||
else if (*next_char == 'h')
|
||||
dst += '#';
|
||||
else if (*next_char == 'b')
|
||||
dst += '[';
|
||||
else if (*next_char == 'B')
|
||||
dst += ']';
|
||||
else
|
||||
dst += *next_char;
|
||||
src++;
|
||||
}
|
||||
} else
|
||||
dst += *src;
|
||||
src++;
|
||||
next_char = src + 1;
|
||||
}
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
std::string
|
||||
get_displayable_string(const char *src,
|
||||
int max_len) {
|
||||
|
@ -39,9 +39,6 @@ void strip_back(std::string &s, bool newlines = false);
|
||||
|
||||
std::string &shrink_whitespace(std::string &s);
|
||||
|
||||
std::string escape(const std::string &src);
|
||||
std::string unescape(const std::string &src);
|
||||
|
||||
std::string get_displayable_string(const char *src, int max_len = -1);
|
||||
std::string get_displayable_string(std::string const &src);
|
||||
|
||||
|
@ -23,48 +23,6 @@
|
||||
|
||||
static int64_rational_c s_probe_range_percentage{3, 10}; // 0.3%
|
||||
|
||||
static std::string
|
||||
format_json_value(nlohmann::json const &value) {
|
||||
return value.is_number() ? to_string(value.get<uint64_t>())
|
||||
: value.is_boolean() ? std::string{value.get<bool>() ? "1" : "0"}
|
||||
: value.get<std::string>();
|
||||
}
|
||||
|
||||
static std::string
|
||||
format_key_and_json_value(std::string const &key,
|
||||
nlohmann::json const &value) {
|
||||
return (boost::format{"%1%:%2%"} % escape(key) % escape(format_json_value(value))).str();
|
||||
}
|
||||
|
||||
static std::string
|
||||
format_verbose_info(mtx::id::verbose_info_t const &info) {
|
||||
auto formatted = std::vector<std::string>{};
|
||||
auto sub_fmt = boost::format("%1%.%2%.%3%");
|
||||
|
||||
for (auto const &pair : info) {
|
||||
if (pair.second.is_array()) {
|
||||
auto idx = 0u;
|
||||
|
||||
for (auto it = pair.second.begin(), end = pair.second.end(); it != end; ++it) {
|
||||
if (it->is_object()) {
|
||||
for (auto sub_it = it->begin(), sub_end = it->end(); sub_it != sub_end; ++sub_it)
|
||||
formatted.emplace_back(format_key_and_json_value((sub_fmt % pair.first % idx % sub_it.key()).str(), sub_it.value()));
|
||||
|
||||
++idx;
|
||||
|
||||
} else
|
||||
formatted.emplace_back(format_key_and_json_value(pair.first, *it));
|
||||
}
|
||||
|
||||
} else
|
||||
formatted.emplace_back(format_key_and_json_value(pair.first, pair.second));
|
||||
}
|
||||
|
||||
brng::sort(formatted);
|
||||
|
||||
return boost::join(formatted, " ");
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
template<typename T>
|
||||
@ -359,74 +317,35 @@ generic_reader_c::display_identification_results() {
|
||||
|
||||
void
|
||||
generic_reader_c::display_identification_results_as_text() {
|
||||
auto identify_verbose = mtx::included_in(g_identification_output_format, identification_output_format_e::verbose_text, identification_output_format_e::gui);
|
||||
auto identify_for_gui = identification_output_format_e::gui == g_identification_output_format;
|
||||
|
||||
std::string format_file, format_track, format_attachment, format_att_description, format_att_file_name;
|
||||
|
||||
if (identify_for_gui) {
|
||||
format_file = "File '%1%': container: %2%";
|
||||
format_track = "Track ID %1%: %2% (%3%)";
|
||||
format_attachment = "Attachment ID %1%: type \"%2%\", size %3% bytes";
|
||||
format_att_description = ", description \"%1%\"";
|
||||
format_att_file_name = ", file name \"%1%\"";
|
||||
|
||||
} else {
|
||||
format_file = Y("File '%1%': container: %2%");
|
||||
format_track = Y("Track ID %1%: %2% (%3%)");
|
||||
format_attachment = Y("Attachment ID %1%: type '%2%', size %3% bytes");
|
||||
format_att_description = Y(", description '%1%'");
|
||||
format_att_file_name = Y(", file name '%1%'");
|
||||
}
|
||||
|
||||
mxinfo(boost::format(format_file) % m_ti.m_fname % m_id_results_container.info);
|
||||
|
||||
if (identify_verbose && !m_id_results_container.verbose_info.empty())
|
||||
mxinfo(boost::format(" [%1%]") % format_verbose_info(m_id_results_container.verbose_info));
|
||||
|
||||
mxinfo(boost::format(Y("File '%1%': container: %2%")) % m_ti.m_fname % m_id_results_container.info);
|
||||
mxinfo("\n");
|
||||
|
||||
for (auto &result : m_id_results_tracks) {
|
||||
mxinfo(boost::format(format_track) % result.id % result.type % result.info);
|
||||
|
||||
if (identify_verbose && !result.verbose_info.empty())
|
||||
mxinfo(boost::format(" [%1%]") % format_verbose_info(result.verbose_info));
|
||||
|
||||
mxinfo(boost::format(Y("Track ID %1%: %2% (%3%)")) % result.id % result.type % result.info);
|
||||
mxinfo("\n");
|
||||
}
|
||||
|
||||
for (auto &result : m_id_results_attachments) {
|
||||
mxinfo(boost::format(format_attachment) % result.id % id_escape_string(result.type) % result.size);
|
||||
mxinfo(boost::format(Y("Attachment ID %1%: type '%2%', size %3% bytes")) % result.id % result.type % result.size);
|
||||
|
||||
if (!result.description.empty())
|
||||
mxinfo(boost::format(format_att_description) % id_escape_string(result.description));
|
||||
mxinfo(boost::format(Y(", description '%1%'")) % result.description);
|
||||
|
||||
if (!result.info.empty())
|
||||
mxinfo(boost::format(format_att_file_name) % id_escape_string(result.info));
|
||||
|
||||
if (identify_verbose && !result.verbose_info.empty())
|
||||
mxinfo(boost::format(" [%1%]") % format_verbose_info(result.verbose_info));
|
||||
mxinfo(boost::format(Y(", file name '%1%'")) % result.info);
|
||||
|
||||
mxinfo("\n");
|
||||
}
|
||||
|
||||
for (auto &result : m_id_results_chapters) {
|
||||
if (identify_for_gui)
|
||||
mxinfo(boost::format("Chapters: %1% entries") % result.size);
|
||||
else
|
||||
mxinfo(boost::format(NY("Chapters: %1% entry", "Chapters: %1% entries", result.size)) % result.size);
|
||||
mxinfo(boost::format(NY("Chapters: %1% entry", "Chapters: %1% entries", result.size)) % result.size);
|
||||
mxinfo("\n");
|
||||
}
|
||||
|
||||
for (auto &result : m_id_results_tags) {
|
||||
if (ID_RESULT_GLOBAL_TAGS_ID == result.id) {
|
||||
if (identify_for_gui)
|
||||
mxinfo(boost::format("Global tags: %1% entries") % result.size);
|
||||
else
|
||||
mxinfo(boost::format(NY("Global tags: %1% entry", "Global tags: %1% entries", result.size)) % result.size);
|
||||
if (ID_RESULT_GLOBAL_TAGS_ID == result.id)
|
||||
mxinfo(boost::format(NY("Global tags: %1% entry", "Global tags: %1% entries", result.size)) % result.size);
|
||||
|
||||
} else if (identify_for_gui)
|
||||
mxinfo(boost::format("Tags for track ID %1%: %2% entries") % result.id % result.size);
|
||||
else
|
||||
mxinfo(boost::format(NY("Tags for track ID %1%: %2% entry", "Tags for track ID %1%: %2% entries", result.size)) % result.id % result.size);
|
||||
|
||||
@ -498,11 +417,6 @@ generic_reader_c::display_identification_results_as_json() {
|
||||
display_json_output(json);
|
||||
}
|
||||
|
||||
std::string
|
||||
generic_reader_c::id_escape_string(const std::string &s) {
|
||||
return identification_output_format_e::gui == g_identification_output_format ? escape(s) : s;
|
||||
}
|
||||
|
||||
void
|
||||
generic_reader_c::add_available_track_id(int64_t id) {
|
||||
m_available_track_ids.push_back(id);
|
||||
|
@ -139,8 +139,6 @@ protected:
|
||||
virtual void id_result_chapters(int num_entries);
|
||||
virtual void id_result_tags(int64_t track_id, int num_entries);
|
||||
|
||||
virtual std::string id_escape_string(const std::string &s);
|
||||
|
||||
virtual mm_io_c *get_underlying_input(mm_io_c *actual_in = nullptr) const;
|
||||
|
||||
virtual void display_identification_results_as_json();
|
||||
|
@ -19,10 +19,7 @@ static void
|
||||
output_container_unsupported_text(std::string const &filename,
|
||||
translatable_string_c const &info) {
|
||||
if (g_identifying) {
|
||||
if (identification_output_format_e::gui == g_identification_output_format)
|
||||
mxinfo(boost::format("File '%1%': unsupported container: %2%\n") % filename % info);
|
||||
else
|
||||
mxinfo(boost::format(Y("File '%1%': unsupported container: %2%\n")) % filename % info);
|
||||
mxinfo(boost::format(Y("File '%1%': unsupported container: %2%\n")) % filename % info);
|
||||
mxexit(3);
|
||||
|
||||
} else
|
||||
|
@ -338,7 +338,7 @@ set_usage() {
|
||||
" \"--identification-format json --identify file\".\n");
|
||||
usage_text += Y(" -F, --identification-format <format>\n"
|
||||
" Set the identification results format\n"
|
||||
" ('text', 'verbose-text', 'json').\n");
|
||||
" ('text' or 'json'; default is 'text').\n");
|
||||
usage_text += Y(" --probe-range-percentage <percent>\n"
|
||||
" Sets maximum size to probe for tracks in percent\n"
|
||||
" of the total file size for certain file types\n"
|
||||
@ -2116,12 +2116,6 @@ parse_arg_identification_format(std::vector<std::string>::const_iterator &sit,
|
||||
if (next_arg == "text")
|
||||
g_identification_output_format = identification_output_format_e::text;
|
||||
|
||||
else if (next_arg == "verbose-text")
|
||||
g_identification_output_format = identification_output_format_e::verbose_text;
|
||||
|
||||
else if (next_arg == "gui")
|
||||
g_identification_output_format = identification_output_format_e::gui;
|
||||
|
||||
else if (next_arg == "json") {
|
||||
g_identification_output_format = identification_output_format_e::json;
|
||||
redirect_warnings_and_errors_to_json();
|
||||
@ -2169,18 +2163,12 @@ handle_identification_args(std::vector<std::string> &args) {
|
||||
}
|
||||
|
||||
for (auto const &this_arg : args) {
|
||||
if (!mtx::included_in(this_arg, "-i", "--identify", "-I", "--identify-verbose", "--identify-for-mmg", "--identify-for-gui", "-J"))
|
||||
if (!mtx::included_in(this_arg, "-i", "--identify", "-J"))
|
||||
continue;
|
||||
|
||||
identification_command = this_arg;
|
||||
|
||||
if (mtx::included_in(this_arg, "-I", "--identify-verbose"))
|
||||
g_identification_output_format = identification_output_format_e::verbose_text;
|
||||
|
||||
else if (mtx::included_in(this_arg, "--identify-for-mmg", "--identify-for-gui"))
|
||||
g_identification_output_format = identification_output_format_e::gui;
|
||||
|
||||
else if (this_arg == "-J") {
|
||||
if (this_arg == "-J") {
|
||||
g_identification_output_format = identification_output_format_e::json;
|
||||
redirect_warnings_and_errors_to_json();
|
||||
}
|
||||
@ -2192,7 +2180,7 @@ handle_identification_args(std::vector<std::string> &args) {
|
||||
for (auto sit = args.cbegin(), sit_end = args.cend(); sit != sit_end; sit++) {
|
||||
auto const &this_arg = *sit;
|
||||
|
||||
if (mtx::included_in(this_arg, "-i", "--identify", "-I", "--identify-verbose", "--identify-for-mmg", "--identify-for-gui", "-J"))
|
||||
if (mtx::included_in(this_arg, "-i", "--identify", "-J"))
|
||||
continue;
|
||||
|
||||
if (mtx::included_in(this_arg, "-F", "--identification-format"))
|
||||
@ -2230,7 +2218,7 @@ parse_args(std::vector<std::string> args) {
|
||||
list_iso639_languages();
|
||||
mxexit();
|
||||
|
||||
} else if (mtx::included_in(this_arg, "-i", "--identify", "-I", "--identify-verbose", "--identify-for-mmg", "--identify-for-gui", "-J"))
|
||||
} else if (mtx::included_in(this_arg, "-i", "--identify", "-J"))
|
||||
mxerror(boost::format(Y("'%1%' can only be used with a file name. No further options are allowed if this option is used.\n")) % this_arg);
|
||||
|
||||
else if (this_arg == "--capabilities") {
|
||||
|
@ -116,8 +116,6 @@ enum append_mode_e {
|
||||
|
||||
enum class identification_output_format_e {
|
||||
text,
|
||||
verbose_text,
|
||||
gui,
|
||||
json,
|
||||
};
|
||||
|
||||
|
@ -55,11 +55,6 @@
|
||||
<string>MKVToolNix option files (JSON-formatted)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>MKVToolNix option files (old format)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Don't escape</string>
|
||||
|
@ -52,16 +52,14 @@ CommandLineDialog::onEscapeModeChanged(int index) {
|
||||
auto mode = 0 == index ? Util::EscapeShellCmdExeArgument
|
||||
: 1 == index ? Util::EscapeShellUnix
|
||||
: 2 == index ? Util::EscapeJSON
|
||||
: 3 == index ? Util::EscapeMkvtoolnix
|
||||
: Util::DontEscape;
|
||||
|
||||
auto sep = Util::EscapeMkvtoolnix == mode ? "\n" : " ";
|
||||
auto opts = m_options;
|
||||
|
||||
if (mtx::included_in(mode, Util::EscapeJSON, Util::EscapeMkvtoolnix))
|
||||
if (mtx::included_in(mode, Util::EscapeJSON))
|
||||
opts.removeFirst();
|
||||
|
||||
ui->commandLine->setPlainText(Util::escape(opts, mode).join(Q(sep)));
|
||||
ui->commandLine->setPlainText(Util::escape(opts, mode).join(Q(" ")));
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -41,20 +41,6 @@ DeferredRegularExpression::operator *() {
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
static QString
|
||||
escapeMkvtoolnix(QString const &source) {
|
||||
if (source.isEmpty())
|
||||
return QString{"#EMPTY#"};
|
||||
return to_qs(::escape(to_utf8(source)));
|
||||
}
|
||||
|
||||
static QString
|
||||
unescapeMkvtoolnix(QString const &source) {
|
||||
if (source == Q("#EMPTY#"))
|
||||
return Q("");
|
||||
return to_qs(::unescape(to_utf8(source)));
|
||||
}
|
||||
|
||||
static QString
|
||||
escapeShellUnix(QString const &source) {
|
||||
if (source.isEmpty())
|
||||
@ -186,8 +172,7 @@ unescapeKeyboardShortcuts(QString const &text) {
|
||||
QString
|
||||
escape(QString const &source,
|
||||
EscapeMode mode) {
|
||||
return EscapeMkvtoolnix == mode ? escapeMkvtoolnix(source)
|
||||
: EscapeShellUnix == mode ? escapeShellUnix(source)
|
||||
return EscapeShellUnix == mode ? escapeShellUnix(source)
|
||||
: EscapeShellCmdExeArgument == mode ? escapeShellWindows(source)
|
||||
: EscapeShellCmdExeProgram == mode ? escapeShellWindowsProgram(source)
|
||||
: EscapeKeyboardShortcuts == mode ? escapeKeyboardShortcuts(source)
|
||||
@ -197,10 +182,9 @@ escape(QString const &source,
|
||||
QString
|
||||
unescape(QString const &source,
|
||||
EscapeMode mode) {
|
||||
Q_ASSERT(mtx::included_in(mode, EscapeMkvtoolnix, EscapeKeyboardShortcuts));
|
||||
Q_ASSERT(mtx::included_in(mode, EscapeKeyboardShortcuts));
|
||||
|
||||
return EscapeKeyboardShortcuts == mode ? unescapeKeyboardShortcuts(source)
|
||||
: unescapeMkvtoolnix(source);
|
||||
return unescapeKeyboardShortcuts(source);
|
||||
}
|
||||
|
||||
static QStringList
|
||||
|
@ -10,7 +10,6 @@ class QStringList;
|
||||
namespace mtx { namespace gui { namespace Util {
|
||||
|
||||
enum EscapeMode {
|
||||
EscapeMkvtoolnix,
|
||||
EscapeJSON,
|
||||
EscapeShellUnix,
|
||||
EscapeShellCmdExeArgument,
|
||||
|
@ -156,7 +156,7 @@ attachment_target_c::parse_spec(command_e command,
|
||||
m_selector_string_arg = matches[4 + offset].str();
|
||||
|
||||
if (ac_replace == m_command)
|
||||
m_selector_string_arg = unescape(m_selector_string_arg);
|
||||
m_selector_string_arg = unescape_colon(m_selector_string_arg);
|
||||
}
|
||||
|
||||
if ((ac_replace == m_command) && m_file_name.empty())
|
||||
@ -336,3 +336,9 @@ attachment_target_c::replace_attachment_values(KaxAttached &att) {
|
||||
if (m_file_content)
|
||||
GetChild<KaxFileData>(att).CopyBuffer(m_file_content->get_buffer(), m_file_content->get_size());
|
||||
}
|
||||
|
||||
std::string
|
||||
attachment_target_c::unescape_colon(std::string arg) {
|
||||
boost::replace_all(arg, "\\c", ":");
|
||||
return arg;
|
||||
}
|
||||
|
@ -112,6 +112,8 @@ protected:
|
||||
virtual void replace_attachment_values(KaxAttached &att);
|
||||
|
||||
virtual bool matches_by_uid_name_or_mime_type(KaxAttached &att);
|
||||
|
||||
virtual std::string unescape_colon(std::string arg);
|
||||
};
|
||||
|
||||
inline bool
|
||||
|
@ -260,8 +260,8 @@ propedit_cli_parser_c::init_parser() {
|
||||
|
||||
add_section_header(YT("Attachment selectors"), 0);
|
||||
add_information(YT("An <attachment-selector> can have three forms:"), 1);
|
||||
add_information(YT("1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify-verbose'. These are usually simply numbered starting from 0 (e.g. '2')."), 2);
|
||||
add_information(YT("2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify-verbose'. These are usually random-looking numbers (e.g. '128975986723')."), 2);
|
||||
add_information(YT("1. A number which will be interpreted as an attachment ID as listed by 'mkvmerge --identify'. These are usually simply numbered starting from 0 (e.g. '2')."), 2);
|
||||
add_information(YT("2. A number with the prefix '=' which will be interpreted as the attachment's unique ID (UID) as listed by 'mkvmerge --identify'. These are usually random-looking numbers (e.g. '128975986723')."), 2);
|
||||
add_information(YT("3. Either 'name:<value>' or 'mime-type:<value>' in which case the selector applies to all attachments whose name or MIME type respectively equals <value>."), 2);
|
||||
|
||||
add_hook(mtx::cli::parser_c::ht_unknown_option, std::bind(&propedit_cli_parser_c::set_file_name, this));
|
||||
|
@ -5,6 +5,8 @@ use warnings;
|
||||
|
||||
use English;
|
||||
|
||||
use JSON::PP;
|
||||
|
||||
my $exe = $ENV{MKVMERGE} // 'mkvmerge';
|
||||
|
||||
sub mpls_files {
|
||||
@ -14,11 +16,12 @@ sub mpls_files {
|
||||
sub identify {
|
||||
my ($file_name) = @_;
|
||||
|
||||
my $output = `$exe --identify-verbose $file_name 2> /dev/null`;
|
||||
my $output = `$exe -J $file_name 2> /dev/null`;
|
||||
return undef if $CHILD_ERROR != 0;
|
||||
|
||||
my ($duration) = $output =~ m{playlist_duration:(\d+)};
|
||||
my ($size) = $output =~ m{playlist_size:(\d+)};
|
||||
$output = JSON::PP::decode_json($output);
|
||||
my ($duration) = $output->{container}->{properties}->{playlist_duration};
|
||||
my ($size) = $output->{container}->{properties}->{playlist_size};
|
||||
|
||||
return undef unless $duration && $size;
|
||||
|
||||
|
@ -63,7 +63,7 @@ T_213mp4_broken_pixel_dimensions:407c26ce06393d2dc5ee1a602a63af0b:passed:2005091
|
||||
T_214one_frame_avi:683d26d5c30a903e4bfba86448fc3ec2:passed:20051004-192755:0.039489971
|
||||
T_215X_codec_extradata_avi:e8c0c4dad4908f20062be3c1f3b9ad85-74ac799ad899f703cbb6c6654e5f9f51:passed:20051004-194707:0.052219855
|
||||
T_216mp4_editlists:66365e78024f12277a6d456d3d9dc491:passed:20051118-191453:0.106975045
|
||||
T_217file_identification:0778e29cb0fd9105f256a2ef5d6ab76f-07ccbe9b29f63dabe2a106b8ec3493d4-c66a0411b938385f95d9d94348f19a56-3edc1b78f1c121e14adfa14572a887d1-6de183e75c13780b13b9bf2a03412c5e-d745abfda0493233b08945eee9111434-c68e864573c8f2b661315dfd8e16b4c7-4d79fbc36b795949b97207a1de92e7d6-f20778159a2f6ccb9dc58b843caf2a8a-21fb00a414c5ce021bff1fa46a358cf8-3038c2ae29c6493970eda7d3e52f3af5-e14631f851d4372631e246eff0c55b5a-18f99189542c084416fc7a9f41bd34a2-730d162a188013899e56e5aeffd12686-a7d494520e437c3c7c67272f2613ee15-2d276629d6ea53e3386e0b805ec89368-515532789a5b930f32856a1e3d7deb2a-4cdcef1ccefaa4977be842da4ebf34e3-4308b9e486d32e2105f4f547747f6070-9fedc0ff927fd9394eaadadc0e4c784f-cfa24cbdb820fd68c0b98816d81dd139-eb8c2e68093164ae5b3b143454f4dc25:passed:20051209-180815:1.882517588
|
||||
T_217file_identification:a7959c78036a7fa44ce8b31c97014224-81f0a1b96ee89c1081cbb13bff6748d9-21cb81b1c68ee64fe33b11d17c1f484d-32e68f8e85f5c3ff55a981ba715caabd-a96a2af8eb39c8f34e30b768e03a25bd-729ab2a6be9c228a001f9c06a3b3bb38-7db6ea7b9c85b12346f1aefdebe66e04-e7ce95a9d24f08352eedad98017b867b-c674e8553ba03fece5250270f0b6dbee-70b8742edd6739e7b193b2a2d4ba3375-39f01f9a969f1e3d33a74c0c99fdf6bf-0c13df5a3a3b0b27c4d0d348cd170a25-d34845050e63e5fc3895bd77f7d460f5-dc88e2311a27f2ade19b0e5e8e77151a-ed2a4a7118b99a58d2f1ae7fd1e2d2fd-c2b250f393dc229f7952fad4d15cc372-3f0752bde4202fb12dbeb87daab2967b-6e71817fca8d4ef34de5ba227e008e3f-72cb49a74740e489d69cfc592474b368-c7407382dd1e29d07645c3f3315ac29d-c777627d7470d122b0767b0e842a6d81-339634cb983320bf8166225fa4582174:passed:20051209-180815:1.882517588
|
||||
T_218theora:ed6737006bb71b5b2931e3800f81eee7-27d75f52561de1bdb24faa0a386ad7bd:passed:20060428-105054:0.392912102
|
||||
T_219srt_short_timecodes:4d58c1d5ddab6368080d54a7585b0f83:passed:20060926-112658:0.117747192
|
||||
T_220ass_with_comments_at_start:30926355189808086b52edf95c8f49d0:passed:20060926-120101:0.382410266
|
||||
|
3
tests/test-217file_identification.rb
Normal file → Executable file
3
tests/test-217file_identification.rb
Normal file → Executable file
@ -30,11 +30,10 @@ class T_217file_identification < Test
|
||||
"data/wp/with-correction.wv",
|
||||
"data/wp/without-correction.wv"
|
||||
].collect do |file|
|
||||
sys "../src/mkvmerge --identify-verbose #{file} > #{tmp}", 0
|
||||
sys "../src/mkvmerge -J #{file} > #{tmp}", 0
|
||||
hash_tmp
|
||||
end
|
||||
|
||||
checksum.join '-'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -6,7 +6,7 @@ class T_255aspect_ratio_display_dimensions < Test
|
||||
end
|
||||
|
||||
def get_display_dimensions file_name
|
||||
`mkvmerge --identify-for-gui "#{file_name}" | grep 'display_dimensions:' | sed -e 's/.*display_dimensions://' -e 's/ .*//'`.chomp
|
||||
JSON.load(`mkvmerge -J "#{file_name}"`)["tracks"][0]["properties"]["display_dimensions"]
|
||||
end
|
||||
|
||||
def run_test_with_args initial_args
|
||||
|
5
tests/test-288identify_files_by_amg.rb
Normal file → Executable file
5
tests/test-288identify_files_by_amg.rb
Normal file → Executable file
@ -6,8 +6,9 @@ class T_288identify_files_by_amg < Test
|
||||
end
|
||||
|
||||
def run
|
||||
sys "../src/mkvmerge --identify-verbose data/mkv/amg_sample.mkv | grep '^Track' | wc -l | sed 's/^[^0-9]*//' > #{tmp}"
|
||||
File.open(tmp, 'w') do |file|
|
||||
file.puts(JSON.load(`../src/mkvmerge -J data/mkv/amg_sample.mkv`)["tracks"].size.to_s)
|
||||
end
|
||||
hash_tmp
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -23,7 +23,7 @@ test_merge "'(' #{vob_files[0]} #{vob_files[1]} ')'"
|
||||
|
||||
m2ts_files = (0..3).map { |i| "data/ts/0000#{i}.m2ts" }
|
||||
|
||||
test_identify m2ts_files[0], :verbose => true
|
||||
test_identify m2ts_files[0], :format => :json
|
||||
|
||||
# These four must be equal.
|
||||
test_merge m2ts_files[0]
|
||||
|
@ -5,7 +5,7 @@ the_file = "data/mkv/deprecated-languages.mkv"
|
||||
# T_378deprecated_iso_639_2_codes
|
||||
describe "mkvmerge / handling deprecated ISO 639-2 language codes"
|
||||
test "identification" do
|
||||
identify(the_file)[0].select { |e| /language:/.match(e) }.collect { |e| e.chomp.gsub(/.*language:(\w+).*/, '\1') }.compact.sort.join('+')
|
||||
identify_json(the_file)["tracks"].collect { |t| t["properties"]["language"] }.compact.sort.join('+')
|
||||
end
|
||||
|
||||
test_merge the_file
|
||||
|
@ -12,8 +12,6 @@ describe "mkvmerge / deprecated ISO 639-1/2 codes"
|
||||
codes.each do |deprecated_code, expected_code|
|
||||
test_merge "data/subtitles/srt/vde.srt", :args => "--language 0:#{deprecated_code}", :keep_tmp => true
|
||||
test "check code #{deprecated_code} => #{expected_code}" do
|
||||
output = identify tmp
|
||||
unlink_tmp_files
|
||||
/language:#{expected_code}/.match(output.join("")) ? "good" : "bad"
|
||||
identify_json(tmp)["tracks"][0]["properties"]["language"] == expected_code ? "good" : "bad"
|
||||
end
|
||||
end
|
||||
|
@ -176,8 +176,8 @@ class SimpleTest
|
||||
@blocks[:tests] << {
|
||||
:name => full_command_line,
|
||||
:block => lambda {
|
||||
sys "../src/mkvmerge --identify-verbose #{full_command_line} > #{tmp}", :exit_code => 3
|
||||
%r{unsupported container}.match(IO.readlines(tmp).first || '') ? :ok : :bad
|
||||
json = identify_json full_command_line, :exit_code => 3
|
||||
(json["container"]["recognized"] == true) && (json["container"]["supported"] == false) ? :ok : :bad
|
||||
},
|
||||
}
|
||||
end
|
||||
@ -243,9 +243,7 @@ class SimpleTest
|
||||
options = args.extract_options!
|
||||
fail ArgumentError if args.empty?
|
||||
|
||||
verbose = !options[:verbose].nil? ? options[:verbose] : true
|
||||
format = options[:format] ? options[:format].to_s.downcase.gsub(/_/, '-') : verbose ? 'verbose-text' : 'text'
|
||||
|
||||
format = options[:format] ? options[:format].to_s.downcase.gsub(/_/, '-') : 'text'
|
||||
command = "../src/mkvmerge --identify --identification-format #{format} --engage no_variable_data #{args.first}"
|
||||
|
||||
self.sys command, :exit_code => options[:exit_code], :no_result => options[:no_result]
|
||||
|
Loading…
Reference in New Issue
Block a user