Commit b76bc010 authored by Hendrik Leppkes's avatar Hendrik Leppkes Committed by Michael Niedermayer

Implement parsing of the "HandlerName" from th MP4 HDLR atom.

This atom typically is used for a track title.
(cherry picked from commit a356137816b4ea20a892d1fb203b11dbfedbc543)

Reviewed-by: Baptiste Coudurier
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 05e417aa
...@@ -496,6 +496,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom) ...@@ -496,6 +496,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom)
AVStream *st; AVStream *st;
uint32_t type; uint32_t type;
uint32_t av_unused ctype; uint32_t av_unused ctype;
int title_size;
char *title_str;
if (c->fc->nb_streams < 1) // meta before first trak if (c->fc->nb_streams < 1) // meta before first trak
return 0; return 0;
...@@ -525,6 +527,17 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom) ...@@ -525,6 +527,17 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom)
avio_rb32(pb); /* component flags */ avio_rb32(pb); /* component flags */
avio_rb32(pb); /* component flags mask */ avio_rb32(pb); /* component flags mask */
title_size = atom.size - 24;
if (title_size > 0) {
title_str = av_malloc(title_size + 1); /* Add null terminator */
if (!title_str)
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);
av_freep(&title_str);
}
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment