Browse Source

movenc: fix QT chapter track character encoding

An encoding ("encd") box is required to tell QT that the string is UTF8
tags/n2.4
John Stebbins 11 years ago
parent
commit
b50173a4dd
1 changed files with 6 additions and 1 deletions
  1. +6
    -1
      libavformat/movenc.c

+ 6
- 1
libavformat/movenc.c View File

@@ -3196,13 +3196,18 @@ static int mov_create_chapter_track(AVFormatContext *s, int tracknum)
pkt.duration = end - pkt.dts;

if ((t = av_dict_get(c->metadata, "title", NULL, 0))) {
const char encd[12] = {
0x00, 0x00, 0x00, 0x0C,
'e', 'n', 'c', 'd',
0x00, 0x00, 0x01, 0x00 };
len = strlen(t->value);
pkt.size = len + 2;
pkt.size = len + 2 + 12;
pkt.data = av_malloc(pkt.size);
if (!pkt.data)
return AVERROR(ENOMEM);
AV_WB16(pkt.data, len);
memcpy(pkt.data + 2, t->value, len);
memcpy(pkt.data + len + 2, encd, sizeof(encd));
ff_mov_write_packet(s, &pkt);
av_freep(&pkt.data);
}


Loading…
Cancel
Save