diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 92fc51ec0facb7370a1ac8dcaca99b2bbc1a1ed2..a4008cb26457931cf77011b3890def958d05a22b 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -407,7 +407,7 @@ static int copy_parameter_set(void **to, void **from, int count, int size)
     memcpy(&to->start_field, &from->start_field,                        \
            (char *)&to->end_field - (char *)&to->start_field)
 
-static int h264_slice_header_init(H264Context *h, int reinit);
+static int h264_slice_header_init(H264Context *h);
 
 int ff_h264_update_thread_context(AVCodecContext *dst,
                                   const AVCodecContext *src)
@@ -560,7 +560,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst,
         h->mb_stride = h1->mb_stride;
         h->b_stride  = h1->b_stride;
 
-        if ((err = h264_slice_header_init(h, 1)) < 0) {
+        if ((err = h264_slice_header_init(h)) < 0) {
             av_log(h->avctx, AV_LOG_ERROR, "h264_slice_header_init() failed");
             return err;
         }
@@ -975,7 +975,7 @@ static int init_dimensions(H264Context *h)
     return 0;
 }
 
-static int h264_slice_header_init(H264Context *h, int reinit)
+static int h264_slice_header_init(H264Context *h)
 {
     int nb_slices = (HAVE_THREADS &&
                      h->avctx->active_thread_type & FF_THREAD_SLICE) ?
@@ -994,8 +994,8 @@ static int h264_slice_header_init(H264Context *h, int reinit)
                   h->sps.num_units_in_tick, den, 1 << 30);
     }
 
-    if (reinit)
-        ff_h264_free_tables(h);
+    ff_h264_free_tables(h);
+
     h->first_field           = 0;
     h->prev_interlaced_frame = 1;
 
@@ -1234,7 +1234,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
         av_log(h->avctx, AV_LOG_INFO, "Reinit context to %dx%d, "
                "pix_fmt: %d\n", h->width, h->height, h->avctx->pix_fmt);
 
-        if ((ret = h264_slice_header_init(h, 1)) < 0) {
+        if ((ret = h264_slice_header_init(h)) < 0) {
             av_log(h->avctx, AV_LOG_ERROR,
                    "h264_slice_header_init() failed\n");
             return ret;
@@ -1251,7 +1251,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
             return ret;
         h->avctx->pix_fmt = ret;
 
-        if ((ret = h264_slice_header_init(h, 0)) < 0) {
+        if ((ret = h264_slice_header_init(h)) < 0) {
             av_log(h->avctx, AV_LOG_ERROR,
                    "h264_slice_header_init() failed\n");
             return ret;