mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 21:20:27 -04:00
commit
9951e3baa2
@ -129,9 +129,7 @@ void transform_signal(void)
|
||||
CHECKNULL( inbuf=(short*)malloc(sizeof(short)*2*nfft ) );
|
||||
CHECKNULL( tbuf=(kiss_fft_scalar*)malloc(sizeof(kiss_fft_scalar)*nfft ) );
|
||||
CHECKNULL( fbuf=(kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx)*nfreqs ) );
|
||||
CHECKNULL( mag2buf=(float*)malloc(sizeof(float)*nfreqs ) );
|
||||
|
||||
memset(mag2buf,0,sizeof(mag2buf)*nfreqs);
|
||||
CHECKNULL( mag2buf=(float*)calloc(nfreqs,sizeof(float) ) );
|
||||
|
||||
while (1) {
|
||||
if (stereo) {
|
||||
@ -164,7 +162,7 @@ void transform_signal(void)
|
||||
if (++avgctr == navg) {
|
||||
avgctr=0;
|
||||
++nrows;
|
||||
vals = (float*)realloc(vals,sizeof(float)*nrows*nfreqs);
|
||||
CHECKNULL( vals = (float*)realloc(vals,sizeof(float)*nrows*nfreqs) );
|
||||
float eps = 1;
|
||||
for (i=0;i<nfreqs;++i)
|
||||
vals[(nrows - 1) * nfreqs + i] = 10 * log10 ( mag2buf[i] / navg + eps );
|
||||
@ -198,10 +196,10 @@ void make_png(void)
|
||||
png_set_IHDR(png_ptr, info_ptr ,nfreqs,nrows,8,PNG_COLOR_TYPE_RGB,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT );
|
||||
|
||||
|
||||
row_data = (rgb_t*)malloc(sizeof(rgb_t) * nrows * nfreqs) ;
|
||||
CHECKNULL( row_data = (rgb_t*)malloc(sizeof(rgb_t) * nrows * nfreqs) );
|
||||
cpx2pixels(row_data, vals, nfreqs*nrows );
|
||||
|
||||
row_pointers = realloc(row_pointers, nrows*sizeof(png_bytep));
|
||||
CHECKNULL( row_pointers = malloc(nrows*sizeof(png_bytep)) );
|
||||
for (i=0;i<nrows;++i) {
|
||||
row_pointers[i] = (png_bytep)(row_data + i*nfreqs);
|
||||
}
|
||||
@ -213,6 +211,9 @@ void make_png(void)
|
||||
|
||||
png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY , NULL);
|
||||
|
||||
free(row_pointers);
|
||||
free(row_data);
|
||||
png_destroy_write_struct(&png_ptr, &info_ptr);
|
||||
}
|
||||
|
||||
int main(int argc,char ** argv)
|
||||
@ -225,5 +226,6 @@ int main(int argc,char ** argv)
|
||||
|
||||
if (fout!=stdout) fclose(fout);
|
||||
if (fin!=stdin) fclose(fin);
|
||||
free(vals);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user