[FFmpeg-cvslog] mov: do not print string len in handler_name.
Clément Bœsch
git at videolan.org
Thu Apr 5 17:33:04 CEST 2012
ffmpeg | branch: master | Clément Bœsch <clement.boesch at smartjog.com> | Thu Apr 5 15:14:00 2012 +0200| [614716f5831af4646329cc08db6fa47a8368883d] | committer: Clément Bœsch
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=614716f5831af4646329cc08db6fa47a8368883d
---
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);
}
More information about the ffmpeg-cvslog
mailing list