From ffb32a657b893f4b2523158f4af4475043d3b083 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 22 Dec 2017 16:02:58 +0100 Subject: [PATCH] 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` --- NEWS.md | 13 ++ doc/man/mkvextract.xml | 21 --- doc/man/mkvinfo.xml | 21 --- doc/man/mkvmerge.xml | 134 ++---------------- doc/man/mkvpropedit.xml | 21 --- po/ca.po | 8 +- po/cs.po | 8 +- po/de.po | 8 +- po/es.po | 8 +- po/eu.po | 14 +- po/fr.po | 8 +- po/it.po | 8 +- po/ja.po | 8 +- po/ko.po | 8 +- po/lt.po | 4 +- po/nl.po | 8 +- po/pl.po | 8 +- po/pt.po | 4 +- po/pt_BR.po | 4 +- po/ro.po | 4 +- po/ru.po | 8 +- po/sr_RS.po | 8 +- po/sr_RS@latin.po | 8 +- po/sv.po | 4 +- po/tr.po | 4 +- po/uk.po | 8 +- po/zh_CN.po | 8 +- po/zh_TW.po | 8 +- share/ruby/mkvtoolnix.rb | 4 - share/ruby/mkvtoolnix/common.rb | 16 --- share/ruby/mkvtoolnix/merge.rb | 96 ------------- src/common/command_line.cpp | 77 +--------- src/common/strings/editing.cpp | 64 --------- src/common/strings/editing.h | 3 - src/merge/generic_reader.cpp | 102 ++----------- src/merge/generic_reader.h | 2 - src/merge/id_result.cpp | 5 +- src/merge/mkvmerge.cpp | 22 +-- src/merge/output_control.h | 2 - .../forms/merge/command_line_dialog.ui | 5 - .../merge/command_line_dialog.cpp | 6 +- src/mkvtoolnix-gui/util/string.cpp | 22 +-- src/mkvtoolnix-gui/util/string.h | 1 - src/propedit/attachment_target.cpp | 8 +- src/propedit/attachment_target.h | 2 + src/propedit/propedit_cli_parser.cpp | 4 +- src/scripts/scan_mpls_dir.pl | 9 +- tests/results.txt | 2 +- tests/test-217file_identification.rb | 3 +- ...test-255aspect_ratio_display_dimensions.rb | 2 +- tests/test-288identify_files_by_amg.rb | 5 +- tests/test-361file_concatenation.rb | 2 +- tests/test-378deprecated_iso_639_2_codes.rb | 2 +- tests/test-423deprecated_iso639_codes.rb | 4 +- tests/test.d/simple_test.rb | 8 +- 55 files changed, 159 insertions(+), 695 deletions(-) delete mode 100755 share/ruby/mkvtoolnix.rb delete mode 100755 share/ruby/mkvtoolnix/common.rb delete mode 100755 share/ruby/mkvtoolnix/merge.rb mode change 100644 => 100755 tests/test-217file_identification.rb mode change 100644 => 100755 tests/test-288identify_files_by_amg.rb diff --git a/NEWS.md b/NEWS.md index bf56bfcd0..4d16ad3ec 100644 --- a/NEWS.md +++ b/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 diff --git a/doc/man/mkvextract.xml b/doc/man/mkvextract.xml index df6769a3c..f9886e110 100644 --- a/doc/man/mkvextract.xml +++ b/doc/man/mkvextract.xml @@ -879,18 +879,6 @@ - - Escaping special chars in text - - 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. - - - - The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'. - - - Environment variables @@ -915,15 +903,6 @@ linkend="mkvextract.description.engage"> option. - - - MKVEXTRACT_OPTIONS, MKVTOOLNIX_OPTIONS and its short form MTX_OPTIONS - - 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 the section about escaping special characters in text). - - diff --git a/doc/man/mkvinfo.xml b/doc/man/mkvinfo.xml index 4af2b1c31..13aeddff0 100644 --- a/doc/man/mkvinfo.xml +++ b/doc/man/mkvinfo.xml @@ -311,18 +311,6 @@ - - Escaping special chars in text - - 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. - - - - The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'. - - - Environment variables @@ -347,15 +335,6 @@ linkend="mkvinfo.description.engage"> option. - - - MKVINFO_OPTIONS, MKVTOOLNIX_OPTIONS and its short form MTX_OPTIONS - - 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 the section about escaping special characters in text). - - diff --git a/doc/man/mkvmerge.xml b/doc/man/mkvmerge.xml index e6b5fad42..7214b8859 100644 --- a/doc/man/mkvmerge.xml +++ b/doc/man/mkvmerge.xml @@ -1934,31 +1934,13 @@ $ mkvmerge -o out.mkv '(' file.mkv ')' - - , file-name - - - 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. - - - - The output will also contain properties for all items found, e.g. the file title or the track language. - - - - This option is deprecated. It will be removed in 2018. - - - - , format Determines the output format used by the --identify - option. The following formats are supported: text (the default if this option isn't used), - verbose-text and json. + option. The following formats are supported: text (the default if this option isn't used) and + json. @@ -1969,26 +1951,6 @@ $ mkvmerge -o out.mkv '(' file.mkv ')' linkend="mkvmerge.description.ui_language">--ui-language). - - - The verbose-text format extends the text 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. - - - - Each value is escaped according to the rules described in the section about escaping special - characters in text. - - - This format is not meant to be parsed. The output will be translated into the language &mkvmerge; uses (see also --ui-language). - - - This option is deprecated. It will be removed in 2018. - - - The json 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) - 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 byte order marker + (BOM), but if one exists, it will be skipped. - - The JSON format + + The rules for escaping special characters inside JSON are the ones in the official JSON specification, RFC 7159. + - - A JSON option file's name must end in '.json'. 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 byte order marker - (BOM), but if one exists, it will be skipped. - + + The command line 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' could be converted into the following + JSON option file called e.g. 'options.json': + - - The rules for escaping special characters inside JSON are the ones in the official JSON specification, RFC 7159. - - - - The command line 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' could be converted into the following - JSON option file called e.g. 'options.json': - - - [ + [ "-o", "c:\\Matroska\\my file.mkv", "--title", @@ -2624,59 +2578,6 @@ Track ID 1: audio (A_MPEG/L3) "a movie.avi", "sound.ogg" ] - - - - The legacy format - - - There are several rules regarding option files. Lines whose first non-whitespace character is a hash mark ('#') 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. - - - - A line not containing anything is also ignored. An empty argument is represented by the line '#EMPTY#'. - - - - Several chars can be escaped, e.g. if you need to start a non-comment line with '#'. The rules are described in the section about escaping text. - - - - Note that backslashes must always be escaped. Hash marks ('#') must be escaped if they should not start a comment. - - - - The command line 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' could be converted into the following - legacy option file called e.g. 'options.txt': - - - # 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 - - - - - - Escaping special chars in text - - 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. - - - - 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 '\\'. - @@ -3286,15 +3187,6 @@ gap, 10.050 linkend="mkvmerge.description.engage"> option. - - - MKVMERGE_OPTIONS, MKVTOOLNIX_OPTIONS and its short form MTX_OPTIONS - - 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 the - section about escaping special characters in text). - - diff --git a/doc/man/mkvpropedit.xml b/doc/man/mkvpropedit.xml index 6b341da9d..382a8827a 100644 --- a/doc/man/mkvpropedit.xml +++ b/doc/man/mkvpropedit.xml @@ -724,18 +724,6 @@ - - Escaping special chars in text - - 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. - - - - The rules are: ' ' (a space) becomes '\s', '"' (double quotes) becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' (a single backslash) itself becomes '\\'. - - - Environment variables @@ -760,15 +748,6 @@ linkend="mkvpropedit.description.engage"> option. - - - MKVPROPEDIT_OPTIONS, MKVTOOLNIX_OPTIONS and its short form MTX_OPTIONS - - 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 the section about escaping special characters in text). - - diff --git a/po/ca.po b/po/ca.po index e83acff70..d7564c389 100644 --- a/po/ca.po +++ b/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" diff --git a/po/cs.po b/po/cs.po index 7799b1b53..81b3fe2fe 100644 --- a/po/cs.po +++ b/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" diff --git a/po/de.po b/po/de.po index 727648e20..0c84e20ad 100644 --- a/po/de.po +++ b/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" diff --git a/po/es.po b/po/es.po index d8167a4b0..15fd30e1f 100644 --- a/po/es.po +++ b/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" diff --git a/po/eu.po b/po/eu.po index c1363a859..7bac40c70 100644 --- a/po/eu.po +++ b/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 "" diff --git a/po/fr.po b/po/fr.po index 092f8af58..1857d5f0d 100644 --- a/po/fr.po +++ b/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" diff --git a/po/it.po b/po/it.po index ece3c4d1a..4593c21c1 100644 --- a/po/it.po +++ b/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" diff --git a/po/ja.po b/po/ja.po index 005194d93..37cebfa95 100644 --- a/po/ja.po +++ b/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" diff --git a/po/ko.po b/po/ko.po index 1f87c911b..373f200ab 100644 --- a/po/ko.po +++ b/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" diff --git a/po/lt.po b/po/lt.po index d1b87cdce..80d7b9de7 100644 --- a/po/lt.po +++ b/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 diff --git a/po/nl.po b/po/nl.po index 33863e49d..f76f10c60 100644 --- a/po/nl.po +++ b/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" diff --git a/po/pl.po b/po/pl.po index 565c90caf..d3459bf4e 100644 --- a/po/pl.po +++ b/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" diff --git a/po/pt.po b/po/pt.po index 97904ea9f..a7052accd 100644 --- a/po/pt.po +++ b/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 diff --git a/po/pt_BR.po b/po/pt_BR.po index f7a3bfe2e..4c0baf77a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -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 diff --git a/po/ro.po b/po/ro.po index 41e45f905..45c0d55d2 100644 --- a/po/ro.po +++ b/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 diff --git a/po/ru.po b/po/ru.po index dc9c40a55..a9d6eef52 100644 --- a/po/ru.po +++ b/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" diff --git a/po/sr_RS.po b/po/sr_RS.po index 2e41c0969..7910f4253 100644 --- a/po/sr_RS.po +++ b/po/sr_RS.po @@ -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" diff --git a/po/sr_RS@latin.po b/po/sr_RS@latin.po index 370fcb910..7572c5ded 100644 --- a/po/sr_RS@latin.po +++ b/po/sr_RS@latin.po @@ -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" diff --git a/po/sv.po b/po/sv.po index e468e8a60..c77bb1ec7 100644 --- a/po/sv.po +++ b/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 diff --git a/po/tr.po b/po/tr.po index 920678672..336160cdd 100644 --- a/po/tr.po +++ b/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 diff --git a/po/uk.po b/po/uk.po index e0f21b4c1..7fce9b37b 100644 --- a/po/uk.po +++ b/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" diff --git a/po/zh_CN.po b/po/zh_CN.po index 169727745..6721f3689 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -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" diff --git a/po/zh_TW.po b/po/zh_TW.po index 59bfcce3b..4dc20ede0 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -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" diff --git a/share/ruby/mkvtoolnix.rb b/share/ruby/mkvtoolnix.rb deleted file mode 100755 index fa7813c24..000000000 --- a/share/ruby/mkvtoolnix.rb +++ /dev/null @@ -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" diff --git a/share/ruby/mkvtoolnix/common.rb b/share/ruby/mkvtoolnix/common.rb deleted file mode 100755 index addb76a66..000000000 --- a/share/ruby/mkvtoolnix/common.rb +++ /dev/null @@ -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 diff --git a/share/ruby/mkvtoolnix/merge.rb b/share/ruby/mkvtoolnix/merge.rb deleted file mode 100755 index 0f679fa74..000000000 --- a/share/ruby/mkvtoolnix/merge.rb +++ /dev/null @@ -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 diff --git a/src/common/command_line.cpp b/src/common/command_line.cpp index 3069d2d09..1ef917a03 100644 --- a/src/common/command_line.cpp +++ b/src/common/command_line.cpp @@ -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 &args, - std::string const &filename) { - mm_text_io_cptr mm_io; - std::string buffer; - bool skip_next; - - try { - mm_io = std::make_shared(std::make_shared(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 &args, std::string const &filename) { @@ -121,36 +78,6 @@ read_args_from_json_file(std::vector &args, } } -static void -read_args_from_file(std::vector &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 -command_line_args_from_environment() { - std::vector 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 args_in_utf8(int argc, char **argv) { int i; - std::vector args = command_line_args_from_environment(); + std::vector 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) diff --git a/src/common/strings/editing.cpp b/src/common/strings/editing.cpp index 894fe9cc1..03b064ec3 100644 --- a/src/common/strings/editing.cpp +++ b/src/common/strings/editing.cpp @@ -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) { diff --git a/src/common/strings/editing.h b/src/common/strings/editing.h index a4fe517a3..50878f18e 100644 --- a/src/common/strings/editing.h +++ b/src/common/strings/editing.h @@ -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); diff --git a/src/merge/generic_reader.cpp b/src/merge/generic_reader.cpp index 609c4ba51..92a09ddc1 100644 --- a/src/merge/generic_reader.cpp +++ b/src/merge/generic_reader.cpp @@ -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()) - : value.is_boolean() ? std::string{value.get() ? "1" : "0"} - : value.get(); -} - -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{}; - 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 @@ -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); diff --git a/src/merge/generic_reader.h b/src/merge/generic_reader.h index 807dc7797..cf3a4b4a5 100644 --- a/src/merge/generic_reader.h +++ b/src/merge/generic_reader.h @@ -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(); diff --git a/src/merge/id_result.cpp b/src/merge/id_result.cpp index ab364fde1..245af5ecf 100644 --- a/src/merge/id_result.cpp +++ b/src/merge/id_result.cpp @@ -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 diff --git a/src/merge/mkvmerge.cpp b/src/merge/mkvmerge.cpp index 570d101e4..e1e1d098b 100644 --- a/src/merge/mkvmerge.cpp +++ b/src/merge/mkvmerge.cpp @@ -338,7 +338,7 @@ set_usage() { " \"--identification-format json --identify file\".\n"); usage_text += Y(" -F, --identification-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 \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::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 &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 &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 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") { diff --git a/src/merge/output_control.h b/src/merge/output_control.h index 2f3999fdf..6f9af8b20 100644 --- a/src/merge/output_control.h +++ b/src/merge/output_control.h @@ -116,8 +116,6 @@ enum append_mode_e { enum class identification_output_format_e { text, - verbose_text, - gui, json, }; diff --git a/src/mkvtoolnix-gui/forms/merge/command_line_dialog.ui b/src/mkvtoolnix-gui/forms/merge/command_line_dialog.ui index a69e5dfda..409f17bb3 100644 --- a/src/mkvtoolnix-gui/forms/merge/command_line_dialog.ui +++ b/src/mkvtoolnix-gui/forms/merge/command_line_dialog.ui @@ -55,11 +55,6 @@ MKVToolNix option files (JSON-formatted) - - - MKVToolNix option files (old format) - - Don't escape diff --git a/src/mkvtoolnix-gui/merge/command_line_dialog.cpp b/src/mkvtoolnix-gui/merge/command_line_dialog.cpp index 12e687a8e..56940efc4 100644 --- a/src/mkvtoolnix-gui/merge/command_line_dialog.cpp +++ b/src/mkvtoolnix-gui/merge/command_line_dialog.cpp @@ -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 diff --git a/src/mkvtoolnix-gui/util/string.cpp b/src/mkvtoolnix-gui/util/string.cpp index ec1bf535b..5ff7a9838 100644 --- a/src/mkvtoolnix-gui/util/string.cpp +++ b/src/mkvtoolnix-gui/util/string.cpp @@ -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 diff --git a/src/mkvtoolnix-gui/util/string.h b/src/mkvtoolnix-gui/util/string.h index 2faa96589..7cfca028b 100644 --- a/src/mkvtoolnix-gui/util/string.h +++ b/src/mkvtoolnix-gui/util/string.h @@ -10,7 +10,6 @@ class QStringList; namespace mtx { namespace gui { namespace Util { enum EscapeMode { - EscapeMkvtoolnix, EscapeJSON, EscapeShellUnix, EscapeShellCmdExeArgument, diff --git a/src/propedit/attachment_target.cpp b/src/propedit/attachment_target.cpp index 5d4751971..fd0f5397c 100644 --- a/src/propedit/attachment_target.cpp +++ b/src/propedit/attachment_target.cpp @@ -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(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; +} diff --git a/src/propedit/attachment_target.h b/src/propedit/attachment_target.h index a1a752d7d..fce80a6cc 100644 --- a/src/propedit/attachment_target.h +++ b/src/propedit/attachment_target.h @@ -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 diff --git a/src/propedit/propedit_cli_parser.cpp b/src/propedit/propedit_cli_parser.cpp index 33f74bda9..ca2f6f9cb 100644 --- a/src/propedit/propedit_cli_parser.cpp +++ b/src/propedit/propedit_cli_parser.cpp @@ -260,8 +260,8 @@ propedit_cli_parser_c::init_parser() { add_section_header(YT("Attachment selectors"), 0); add_information(YT("An 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:' or 'mime-type:' in which case the selector applies to all attachments whose name or MIME type respectively equals ."), 2); add_hook(mtx::cli::parser_c::ht_unknown_option, std::bind(&propedit_cli_parser_c::set_file_name, this)); diff --git a/src/scripts/scan_mpls_dir.pl b/src/scripts/scan_mpls_dir.pl index 31dda2b5d..cb4685417 100755 --- a/src/scripts/scan_mpls_dir.pl +++ b/src/scripts/scan_mpls_dir.pl @@ -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; diff --git a/tests/results.txt b/tests/results.txt index a567f6ac7..92a0d5f31 100644 --- a/tests/results.txt +++ b/tests/results.txt @@ -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 diff --git a/tests/test-217file_identification.rb b/tests/test-217file_identification.rb old mode 100644 new mode 100755 index 0d8bc8a5e..1be3fb960 --- a/tests/test-217file_identification.rb +++ b/tests/test-217file_identification.rb @@ -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 - diff --git a/tests/test-255aspect_ratio_display_dimensions.rb b/tests/test-255aspect_ratio_display_dimensions.rb index 89bad8b21..b7a5d0645 100755 --- a/tests/test-255aspect_ratio_display_dimensions.rb +++ b/tests/test-255aspect_ratio_display_dimensions.rb @@ -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 diff --git a/tests/test-288identify_files_by_amg.rb b/tests/test-288identify_files_by_amg.rb old mode 100644 new mode 100755 index 9585f0462..1e32bc336 --- a/tests/test-288identify_files_by_amg.rb +++ b/tests/test-288identify_files_by_amg.rb @@ -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 - diff --git a/tests/test-361file_concatenation.rb b/tests/test-361file_concatenation.rb index aa752e3ba..a982d2bf7 100755 --- a/tests/test-361file_concatenation.rb +++ b/tests/test-361file_concatenation.rb @@ -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] diff --git a/tests/test-378deprecated_iso_639_2_codes.rb b/tests/test-378deprecated_iso_639_2_codes.rb index 3cecddf51..e94cd3207 100755 --- a/tests/test-378deprecated_iso_639_2_codes.rb +++ b/tests/test-378deprecated_iso_639_2_codes.rb @@ -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 diff --git a/tests/test-423deprecated_iso639_codes.rb b/tests/test-423deprecated_iso639_codes.rb index e7c7f7391..c017b1f39 100755 --- a/tests/test-423deprecated_iso639_codes.rb +++ b/tests/test-423deprecated_iso639_codes.rb @@ -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 diff --git a/tests/test.d/simple_test.rb b/tests/test.d/simple_test.rb index 403cb03c0..ba2346be3 100644 --- a/tests/test.d/simple_test.rb +++ b/tests/test.d/simple_test.rb @@ -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]