diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index ac900d6f3059fa67bb857ea1fd51d996aed8b4ba..f40431fc626d936b734a4d80c7743bf479d8430b 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -429,7 +429,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)
@@ -605,7 +605,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;
         }
@@ -1071,7 +1071,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) ?
@@ -1090,8 +1090,8 @@ static int h264_slice_header_init(H264Context *h, int reinit)
                   h->sps.num_units_in_tick * h->avctx->ticks_per_frame, den, 1 << 30);
     }
 
-    if (reinit)
-        ff_h264_free_tables(h);
+    ff_h264_free_tables(h);
+
     h->first_field           = 0;
     h->prev_interlaced_frame = 1;
 
@@ -1415,7 +1415,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: %s\n", h->width, h->height, av_get_pix_fmt_name(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;
@@ -1432,7 +1432,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;