added numframes parameter
[swftools.git] / avi2swf / avi2swf.cc
index e980747..8662605 100644 (file)
@@ -48,6 +48,7 @@ static int skip = 0;
 static float audio_adjust = 0;
 static int mp3_bitrate = 32;
 static int samplerate = 11025;
+static int numframes = 0;
 
 static struct options_t options[] = {
 {"h", "help"},
@@ -57,6 +58,7 @@ static struct options_t options[] = {
 {"m", "mp3-bitrate"},
 {"r", "mp3-samplerate"},
 {"d", "scale"},
+{"k", "keyframe"},
 {"p", "flip"},
 {"q", "quality"},
 {"x", "extragood"},
@@ -75,6 +77,10 @@ int args_callback_option(char*name,char*val)
        outputfilename = val;
        return 1;
     }
+    else if(!strcmp(name, "n")) {
+       numframes = atoi(val);
+       return 1;
+    }
     else if(!strcmp(name, "q")) {
        quality = atoi(val);
        if(quality<0)
@@ -87,6 +93,10 @@ int args_callback_option(char*name,char*val)
        flip = 1;
        return 0;
     }
+    else if(!strcmp(name, "k")) {
+       keyframe_interval = atoi(val);
+       return 1;
+    }
     else if(!strcmp(name, "A")) {
        audio_adjust = atof(val);
        return 1;
@@ -220,7 +230,7 @@ int main (int argc,char ** argv)
     }
     if(keyframe_interval<0) {
        if(flashversion>=6)
-           keyframe_interval=200;
+           keyframe_interval=20;
        else
            keyframe_interval=5;
     }
@@ -253,6 +263,8 @@ int main (int argc,char ** argv)
     ret = v2swf_init(&v2swf, &video);
     if(verbose)
        v2swf_setparameter(&v2swf, "verbose", "1");
+    if(numframes)
+       v2swf_setparameter(&v2swf, "numframes", itoa(numframes));
     v2swf_setparameter(&v2swf, "quality", itoa(quality));
     v2swf_setparameter(&v2swf, "blockdiff", "0");
     v2swf_setparameter(&v2swf, "blockdiff_mode", "exact");