[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