[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