wie kann ich mit lame eine mp3 datei in wav konvertieren?
folgendes funktioniert leider nicht;(
int main()
{
int read, write;
FILE *pcm = fopen("music_noisy.mp3", "rb");
FILE *mp3 = fopen("music_noisy2.mp3", "wb");
const int PCM_SIZE = 8192;
const int MP3_SIZE = 8192;
short int pcm_buffer[PCM_SIZE*2];
short int pcm_buffer1[PCM_SIZE];
short int pcm_buffer2[PCM_SIZE];
unsigned char mp3_buffer[MP3_SIZE];
mp3data_struct mp3data = {0};
memset(pcm_buffer, 0, sizeof(pcm_buffer));
memset(pcm_buffer1, 0, sizeof(pcm_buffer1));
memset(pcm_buffer2, 0, sizeof(pcm_buffer2));
memset(mp3_buffer, 0, sizeof(mp3_buffer));
lame_t lame = lame_init();
hip_t l = hip_decode_init();
lame_set_in_samplerate(lame, 44100);
lame_set_VBR(lame, vbr_default);
//lame_set_mode(lame, MONO);
lame_init_params(lame);
do {
read = fread(mp3_buffer, sizeof(unsigned char), MP3_SIZE, pcm);
read = hip_decode_headers(l, mp3_buffer, MP3_SIZE, pcm_buffer1,
pcm_buffer2, &mp3data);
// nun haben wir die mp3 daten als wav in pcm_buffer1 und
pcm_buffer2
memcpy(pcm_buffer, pcm_buffer1, sizeof(pcm_buffer1));
memcpy(&pcm_buffer[PCM_SIZE], pcm_buffer2, sizeof(pcm_buffer2));
write = lame_encode_buffer_interleaved(lame, pcm_buffer, read,
mp3_buffer, MP3_SIZE);
fwrite(mp3_buffer, write, 1, mp3);
} while (read != 0);
hip_decode_exit(l);
lame_close(lame);
fclose(mp3);
fclose(pcm);
return 0;
}