ich würde erstmal alles blind aus dem File byte-weise in einen byte-array einlesen, und dann erst später den Array nach Header und Daten zerpflücken, dann die wav-Daten isolieren / separieren und in einen int32_t array umkopieren:
Code:
#include <stdio.h>
long read_wavfile(FILE * fp)
{
uint8_t c, cbuf[SHRT_MAX*4]; // byte array, oversized
long n=0;
fp = fopen ("myfile.wav","r"); // oder über popen() und Zenity
do {
cbuf[n++] = c = fgetc(fp);
} while ( (c != EOF) && (n<SHRT_MAX*4 -1) );
close(fp);
return n;
}
jetzt Header ignorieren, dann Anfang der wav-Daten suchen (Position x), und dann Daten ab x in den int32_t input-Array rüberkopieren (ab Pos. 0).
(nur als grobe Idee)
Lesezeichen