diff --git a/libavformat/movenc.c b/libavformat/movenc.c index c19d58d683..5d224bcacb 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2046,16 +2046,25 @@ static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, { AVDictionaryEntry *t = NULL; uint8_t num; + int size = 24 + len; + + if (len != 1 && len != 4) + return -1; if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) return 0; num = atoi(t->value); - avio_wb32(pb, len+8); + avio_wb32(pb, size); ffio_wfourcc(pb, name); + avio_wb32(pb, size - 8); + ffio_wfourcc(pb, "data"); + avio_wb32(pb, 0x15); + avio_wb32(pb, 0); if (len==4) avio_wb32(pb, num); else avio_w8 (pb, num); - return len+8; + + return size; } /* iTunes meta data list */