static int getSamples(videoreader_t*video, S16*data, int len, double speedup)
{
double pos = 0;
- double ratio = (double) video->rate * speedup / swf_mp3_in_samplerate;
+ double ratio = (double) video->samplerate * speedup / swf_mp3_in_samplerate;
int rlen = (int)(len * ratio);
int t;
S16 tmp[576*32];
msg("writeAudioForOneFrame()");
- if(i->video->channels<=0 || i->video->rate<=0)
+ if(i->video->channels<=0 || i->video->samplerate<=0)
return; /* no sound in video */
blocksize = (i->samplerate > 22050) ? 1152 : 576;
/* The pre-processing of sound samples in getSamples(..) above
re-samples the sound to swf_mp3_in_samplerate. It is best to
simply make it the original samplerate: */
- swf_mp3_in_samplerate = i->video->rate;
+ swf_mp3_in_samplerate = i->video->samplerate;
/* first run - initialize */
swf_mp3_channels = 1;//i->video->channels;
/* write num frames, max 1 block */
for(pos=0;pos<num;pos++) {
if(!getSamples(i->video, block1, blocksize * (double)swf_mp3_in_samplerate/swf_mp3_out_samplerate, speedup)) {
- i->video->rate = i->video->channels = 0; //end of soundtrack
+ i->video->samplerate = i->video->channels = 0; //end of soundtrack
return;
}
if(!pos) {
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);
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;