fixed double showframe at start.
[swftools.git] / avi2swf / v2swf.c
index e4f14c5..e983c36 100644 (file)
@@ -119,6 +119,12 @@ static void msg(char*format, ...)
     fflush(stdout);
 }
 
+extern int swf_mp3_in_samplerate;
+extern int swf_mp3_out_samplerate;
+extern int swf_mp3_channels;
+extern int swf_mp3_bitrate;
+
+
 static void writeShape(v2swf_internal_t*i, int id, int gfxid, int width, int height)
 {
     RGBA rgb;
@@ -189,11 +195,6 @@ static int getSamples(videoreader_t*video, S16*data, int len, double speedup)
     return 1;
 }
 
-extern int swf_mp3_channels;
-extern int swf_mp3_bitrate;
-extern int swf_mp3_out_samplerate;
-extern int swf_mp3_in_samplerate;
-
 static void writeAudioForOneFrame(v2swf_internal_t* i)
 {
     int blocksize; 
@@ -583,18 +584,16 @@ static int encodeoneframe(v2swf_internal_t*i)
        return 0;
     }
 
-    i->fpspos += i->fpsratio;
-
-    /* skip frames */
-    if(i->fpspos<1.0) {
-       return 0;
-    }
-    
     msg("encoding image for frame %d\n", i->frames);
-
-    if(i->showframe)
+    if(i->showframe) {
+       i->fpspos += i->fpsratio;
+       /* skip frames */
+       if(i->fpspos<1.0) {
+           return 0;
+       }
        writeShowFrame(i);
-
+    }
+    
     msg("scaling\n");
 
     scaleimage(i);
@@ -797,7 +796,7 @@ int v2swf_init(v2swf_t*v2swf, videoreader_t * video)
     i->audio_fix = 1.0;
     i->fixheader = 0;
     i->framerate = video->fps;
-    i->fpsratio = 1.00000000;
+    i->fpsratio = 1.00000000000;
     i->fpspos = 0.0;
     i->bitrate = 32;
     i->version = 6;
@@ -971,29 +970,6 @@ void v2swf_backpatch(v2swf_t*v2swf, char*filename)
     }
 }
 
-float v2swf_getprogress(v2swf_t*v2swf)
-{
-    float* p;
-    v2swf_internal_t* i;
-    msg("v2swf_getprogress()");
-    if(!v2swf || !v2swf->internal) {
-       return 0.0;
-    }
-    i = (v2swf_internal_t*)v2swf->internal;
-
-    p = (float*)videoreader_getinfo(i->video, "position");
-
-    if(p) {
-       return *p;
-    } else {
-       float f = i->frames/1500.0; /*fake*/
-       if(f>1.0)
-           return 1.0;
-       else
-           return f;
-    }
-}
-
 void v2swf_setvideoparameter(videoreader_t*v, char*name, char*value)
 {
     msg("v2swf_setvideoparameter()");