[FFmpeg-cvslog] movenc: fix QT chapter track character encoding
John Stebbins
git at videolan.org
Thu Aug 7 03:07:01 CEST 2014
ffmpeg | branch: master | John Stebbins <stebbins at jetheaddev.com> | Thu Jul 31 11:51:40 2014 -0700| [b50173a4dd47b9c3c89845b781fa958ccf860929] | committer: John Stebbins
movenc: fix QT chapter track character encoding
An encoding ("encd") box is required to tell QT that the string is UTF8
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b50173a4dd47b9c3c89845b781fa958ccf860929
---
libavformat/movenc.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index c9b0f6e..4d487e9 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -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);
}
More information about the ffmpeg-cvslog
mailing list