[FFmpeg-devel] [PATCH] mov: do not print string len in handler_name.
Clément Bœsch
ubitux at gmail.com
Thu Apr 5 15:28:44 CEST 2012
From: Clément Bœsch <clement.boesch at smartjog.com>
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 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 4541a6e..03a3504 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);
}
--
1.7.9.1
More information about the ffmpeg-devel
mailing list