diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 63a4c76ac3ce8c1a8f80591d6c6b9cc418db45ba..de7a5ac9976a071f766c878b9e46073342f62ece 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2781,11 +2781,9 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
         s->avctx->pix_fmt = pix_fmt;
 
     if (s->context_initialized &&
-        (s->width  != s->avctx->coded_width   ||
-         s->height != s->avctx->coded_height  ||
-         pix_fmt   != s->avctx->pix_fmt ||
+        (
          needs_reinit                   ||
-         av_cmp_q(h->sps.sar, s->avctx->sample_aspect_ratio))) {
+         must_reinit)) {
 
         if (h != h0) {
             av_log(s->avctx, AV_LOG_ERROR, "changing width/height on "