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)







Zitieren

Lesezeichen