diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 66122a5c9f765ad4e4b819ea3ea3375195f73889..cf406817596ad9febd4a5ec889d51ada9adbc944 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -170,6 +170,8 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height){
 
     *width = ALIGN(*width , w_align);
     *height= ALIGN(*height, h_align);
+    if(s->codec_id == CODEC_ID_H264)
+        *height+=2; // some of the optimized chroma MC reads one line too much
 }
 
 int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h){