From 614716f5831af4646329cc08db6fa47a8368883d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Thu, 5 Apr 2012 15:14:00 +0200 Subject: [PATCH] mov: do not print string len in handler_name. The handler name is stored as a pascal string in the QT specs (first byte is the length of the string), thus leading to an invalid metadata string export. Also add a second length check based on the first character to avoid overwriting an already specified handler_name (it happens with Youtube videos for instance, the handler_name get masked), or specifying an empty string metadata. --- libavformat/mov.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 4541a6ec18..03a35047ac 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -534,7 +534,9 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom) return AVERROR(ENOMEM); avio_read(pb, title_str, title_size); title_str[title_size] = 0; - av_dict_set(&st->metadata, "handler_name", title_str, 0); + if (title_str[0]) + av_dict_set(&st->metadata, "handler_name", title_str + + (!c->isom && title_str[0] == title_size - 1), 0); av_freep(&title_str); }