fixed "emai" bug.
authorkramm <kramm>
Sun, 20 Feb 2005 19:51:03 +0000 (19:51 +0000)
committerkramm <kramm>
Sun, 20 Feb 2005 19:51:03 +0000 (19:51 +0000)
src/swfc.c

index 40f011f..49b3998 100644 (file)
@@ -1178,6 +1178,7 @@ void s_sound(char*name, char*filename)
     U16*samples;
     int numsamples;
     int t;
+    int blocksize = 576;
 
     if(!readWAV(filename, &wav)) {
        warning("Couldn't read wav file \"%s\"", filename);
@@ -1195,6 +1196,20 @@ void s_sound(char*name, char*filename)
        }
 #endif
     }
+    
+    if(numsamples%blocksize != 0)
+    {
+       // apply padding, so that block is a multiple of blocksize
+       int numblocks = (numsamples+blocksize-1)/blocksize;
+       int numsamples2;
+       U16* samples2;
+       numsamples2 = numblocks * blocksize;
+       samples2 = malloc(sizeof(U16)*numsamples2);
+       memcpy(samples2, samples, numsamples*sizeof(U16));
+       memset(&samples2[numsamples], 0, sizeof(U16)*(numsamples2 - numsamples));
+       numsamples = numsamples2;
+       samples = samples2;
+    }
 
     tag = swf_InsertTag(tag, ST_DEFINESOUND);
     swf_SetU16(tag, id); //id