On 31/07/14 20:53, John Stebbins wrote:
> An encoding ("encd") box is required to tell QT that the string is UTF8
> ---
> libavformat/movenc.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index f16e851..6a0baf2 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -3146,13 +3146,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);
> }
>
Seems ok.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel