X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfc.c;h=092a49de1df0f4c2ff30f8a78335744e6f1b5e93;hb=c011b1c37df2a64a1f8e454c23bb5b7e9854ab67;hp=40f011f5b4cc7b5e30ff025872f5f239b0b279ab;hpb=207ff1e0876ef04db4ab3e3cc34e49150aa33093;p=swftools.git diff --git a/src/swfc.c b/src/swfc.c index 40f011f..092a49d 100644 --- a/src/swfc.c +++ b/src/swfc.c @@ -1178,6 +1178,7 @@ void s_sound(char*name, char*filename) U16*samples; int numsamples; int t; + int blocksize = 1152; 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