diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 6ff9aaf361..f5eec3f2d1 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -2687,6 +2687,7 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, { Mpeg4DecContext *s = dst->priv_data; const Mpeg4DecContext *s1 = src->priv_data; + int init = s->m.context_initialized; int ret = ff_mpeg_update_thread_context(dst, src); @@ -2695,6 +2696,9 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, memcpy(((uint8_t*)s) + sizeof(MpegEncContext), ((uint8_t*)s1) + sizeof(MpegEncContext), sizeof(Mpeg4DecContext) - sizeof(MpegEncContext)); + if (CONFIG_MPEG4_DECODER && !init && s1->xvid_build >= 0) + ff_xvididct_init(&s->m.idsp, dst); + return 0; }