|
|
@@ -496,6 +496,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
AVStream *st; |
|
|
|
uint32_t type; |
|
|
|
uint32_t av_unused ctype; |
|
|
|
int title_size; |
|
|
|
char *title_str; |
|
|
|
|
|
|
|
if (c->fc->nb_streams < 1) // meta before first trak |
|
|
|
return 0; |
|
|
@@ -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 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; |
|
|
|
} |
|
|
|
|
|
|
|