diff --git a/tools/probetest.c b/tools/probetest.c
index 36a05a3de11aecb1ecf5a8563bc03e771fe10327..f8a617ddeaf81e97c95afa887ffd917462102975 100644
--- a/tools/probetest.c
+++ b/tools/probetest.c
@@ -49,12 +49,19 @@ static void probe(AVProbeData *pd, int type, int p, int size)
     }
 }
 
-int main(void)
+int main(int argc, char **argv)
 {
     unsigned int p, i, type, size, retry;
     AVProbeData pd;
     AVLFG state;
     PutBitContext pb;
+    int retry_count= 4097;
+    int max_size = 65537;
+
+    if(argc >= 2)
+        retry_count = atoi(argv[1]);
+    if(argc >= 3)
+        max_size = atoi(argv[2]);
 
     avcodec_register_all();
     av_register_all();
@@ -62,14 +69,14 @@ int main(void)
     av_lfg_init(&state, 0xdeadbeef);
 
     pd.buf = NULL;
-    for (size = 1; size < 65537; size *= 2) {
+    for (size = 1; size < max_size; size *= 2) {
         pd.buf_size = size;
         pd.buf      = av_realloc(pd.buf, size + AVPROBE_PADDING_SIZE);
         pd.filename = "";
 
         fprintf(stderr, "testing size=%d\n", size);
 
-        for (retry = 0; retry < 4097; retry += FFMAX(size, 32)) {
+        for (retry = 0; retry < retry_count; retry += FFMAX(size, 32)) {
             for (type = 0; type < 4; type++) {
                 for (p = 0; p < 4096; p++) {
                     unsigned hist = 0;