diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 4ccc7d571a7c5bb5fa1aad552c44d7722c9914fa..91b46b2b687aa2680d1bc3943f8bd86a3639079f 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -1364,7 +1364,6 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
        // empty
         }else{
             int h_chroma_shift, v_chroma_shift;
-        
             avcodec_get_chroma_sub_sample(s->avctx->pix_fmt, &h_chroma_shift, &v_chroma_shift);
         
             for(i=0; i<3; i++){
@@ -1548,6 +1547,11 @@ int MPV_encode_picture(AVCodecContext *avctx,
     AVFrame *pic_arg = data;
     int i;
 
+    if(avctx->pix_fmt != PIX_FMT_YUV420P){
+        fprintf(stderr, "this codec supports only YUV420P\n");
+        return -1;
+    }
+    
     init_put_bits(&s->pb, buf, buf_size, NULL, NULL);
 
     s->picture_in_gop_number++;