diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index b618be0bf538ed0d013a787dfa9dccc2aff7c1e6..295763a76de9fe21d6ba2259cb58e042b6c99355 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -244,7 +244,7 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src,
 {
     int err = 0;
 
-    if (dst != src) {
+    if (dst != src && (for_user || !(av_codec_get_codec_descriptor(src)->props & AV_CODEC_PROP_INTRA_ONLY))) {
         dst->time_base = src->time_base;
         dst->framerate = src->framerate;
         dst->width     = src->width;