avcodec/hevc: more clearing to avoid stale pointers
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 12 Jul 2014 04:50:21 +0000 (06:50 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 12 Jul 2014 19:31:37 +0000 (21:31 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/hevc.c

index 2cdd08a..cc36f97 100644 (file)
@@ -2965,6 +2965,9 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx)
         av_buffer_unref(&s->sps_list[i]);
     for (i = 0; i < FF_ARRAY_ELEMS(s->pps_list); i++)
         av_buffer_unref(&s->pps_list[i]);
+    s->sps = NULL;
+    s->pps = NULL;
+    s->vps = NULL;
 
     av_buffer_unref(&s->current_sps);
 
@@ -3063,6 +3066,8 @@ static int hevc_update_thread_context(AVCodecContext *dst,
         }
     }
 
+    if (s->sps != s0->sps)
+        s->sps = NULL;
     for (i = 0; i < FF_ARRAY_ELEMS(s->vps_list); i++) {
         av_buffer_unref(&s->vps_list[i]);
         if (s0->vps_list[i]) {