X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fswfc.c;h=49b3998f17b0fd9db2d6f47495b68540ef93758e;hb=060e9eb4ab789c3a208846b9eaa7e586c664aeb3;hp=40f011f5b4cc7b5e30ff025872f5f239b0b279ab;hpb=207ff1e0876ef04db4ab3e3cc34e49150aa33093;p=swftools.git diff --git a/src/swfc.c b/src/swfc.c index 40f011f..49b3998 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 = 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