Support for MultiComment tags in mkvextract.

This commit is contained in:
Moritz Bunkus 2003-08-10 09:41:16 +00:00
parent a9bc3c3e9e
commit 97aea708cb
2 changed files with 43 additions and 1 deletions

View File

@ -1,5 +1,7 @@
2003-08-10 Moritz Bunkus <moritz@bunkus.org> 2003-08-10 Moritz Bunkus <moritz@bunkus.org>
* mkvextract: Support for MultiComment tags.
* mkvmerge: Fixed support for reading MultiComment tags from * mkvmerge: Fixed support for reading MultiComment tags from
XML tag files. XML tag files.

View File

@ -146,8 +146,22 @@ static void print_unknown(int level, EbmlElement *e) {
#define pr_unk() print_unknown(level, e) #define pr_unk() print_unknown(level, e)
static void handle_multicomments(EbmlElement *e, int level) {
if (is_id(KaxTagMultiCommentName))
pr_s("Name");
else if (is_id(KaxTagMultiCommentComments))
pr_us("Comments");
else if (is_id(KaxTagMultiCommentLanguage))
pr_s("Language");
else
pr_unk();
}
static void handle_level5(EbmlElement *e) { static void handle_level5(EbmlElement *e) {
int level = 5; int i, level = 5;
if (is_id(KaxTagMultiPriceCurrency)) if (is_id(KaxTagMultiPriceCurrency))
pr_s("Currency"); pr_s("Currency");
@ -158,6 +172,13 @@ static void handle_level5(EbmlElement *e) {
else if (is_id(KaxTagMultiPricePriceDate)) else if (is_id(KaxTagMultiPricePriceDate))
pr_d("PriceDate"); pr_d("PriceDate");
else if (is_id(KaxTagMultiComment)) {
mxprint(o, " <MultiComment>\n");
for (i = 0; i < ((EbmlMaster *)e)->ListSize(); i++)
handle_multicomments((*(EbmlMaster *)e)[i], 6);
mxprint(o, " </MultiComment>\n");
}
else else
pr_unk(); pr_unk();
} }
@ -252,6 +273,13 @@ static void handle_level4(EbmlElement *e) {
else if (is_id(KaxTagMultiTitleLanguage)) else if (is_id(KaxTagMultiTitleLanguage))
pr_s("Language"); pr_s("Language");
else if (is_id(KaxTagMultiComment)) {
mxprint(o, " <MultiComment>\n");
for (i = 0; i < ((EbmlMaster *)e)->ListSize(); i++)
handle_multicomments((*(EbmlMaster *)e)[i], 5);
mxprint(o, " </MultiComment>\n");
}
else else
pr_unk(); pr_unk();
} }
@ -409,6 +437,12 @@ static void handle_level3(EbmlElement *e) {
handle_level4((*(EbmlMaster *)e)[i]); handle_level4((*(EbmlMaster *)e)[i]);
mxprint(o, " </Title>\n"); mxprint(o, " </Title>\n");
} else if (is_id(KaxTagMultiComment)) {
mxprint(o, " <MultiComment>\n");
for (i = 0; i < ((EbmlMaster *)e)->ListSize(); i++)
handle_multicomments((*(EbmlMaster *)e)[i], 4);
mxprint(o, " </MultiComment>\n");
} else } else
pr_unk(); pr_unk();
} }
@ -482,6 +516,12 @@ static void handle_level2(EbmlElement *e) {
handle_level3((*(EbmlMaster *)e)[i]); handle_level3((*(EbmlMaster *)e)[i]);
mxprint(o, " </MultiTitle>\n"); mxprint(o, " </MultiTitle>\n");
} else if (is_id(KaxTagMultiComment)) {
mxprint(o, " <MultiComment>\n");
for (i = 0; i < ((EbmlMaster *)e)->ListSize(); i++)
handle_multicomments((*(EbmlMaster *)e)[i], 3);
mxprint(o, " </MultiComment>\n");
} else } else
pr_unk(); pr_unk();
} }