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

Reply via email to