diff --git a/libavcodec/cook.c b/libavcodec/cook.c
index b5f7cbfa6065ca387a8fc005e1e5ec61756b30a9..4140be153862069aa7c3368d1124412070f27b33 100644
--- a/libavcodec/cook.c
+++ b/libavcodec/cook.c
@@ -1225,10 +1225,10 @@ static int cook_decode_init(AVCodecContext *avctx)
                 q->js_vlc_bits = e->js_vlc_bits;
             }
             if (q->samples_per_channel > 256) {
-                q->log2_numvector_size  = 6
+                q->log2_numvector_size  = 6;
             }
             if (q->samples_per_channel > 512) {
-                q->log2_numvector_size  = 7
+                q->log2_numvector_size  = 7;
             }
             break;
         case MC_COOK:
@@ -1282,6 +1282,11 @@ static int cook_decode_init(AVCodecContext *avctx)
         av_log(NULL,AV_LOG_ERROR,"subbands > 50, report sample!\n");
         return -1;
     }
+    if ((q->samples_per_channel == 256) || (q->samples_per_channel == 512) || (q->samples_per_channel == 1024)) {
+    } else {
+        av_log(NULL,AV_LOG_ERROR,"unknown amount of samples_per_channel = %d, report sample!\n",q->samples_per_channel);
+        return -1;
+    }
 
 #ifdef COOKDEBUG
     dump_cook_context(q,e);