Hi all,
I'm tring to get started with "libmad" so I've tried to make an application very similar to "minimad.c" , the one included in the source code, only that instead of reading and writing from STDIN to STDOUT it reads and writes from and to files.
The problem that I get is that I get a strange synchronization error near the end of the file :
Decoding /balthasar/****.mp3 0 <-- ID3Tad size decoding error 0x0101 (lost synchronization) at byte offset 3072836
The actual size of the file is : 3072949
I get this almost with every file I try to decode.
I manage the input by creating with "malloc()" a memory area of "unsigned chars" of the size of the file , then I fread the mp3 file into memory and pass the pointer to the callback input function .
I miss something or I made any mistakes?
Thanks for your help.
Bye
Marcello
PS= Do you know how to check the correctness of a Raw 16bit PCM stream?? I've tried to play my file with many players , but it doesn't work. Sorry but I'm a newbie of digital audio :)
On Sep 14, 2005, at 3:40 AM, Marcello Maggioni wrote:
I'm tring to get started with "libmad" so I've tried to make an application very similar to "minimad.c" , the one included in the source code, only that instead of reading and writing from STDIN to STDOUT it reads and writes from and to files.
The problem that I get is that I get a strange synchronization error near the end of the file :
Decoding /balthasar/****.mp3 0 <-- ID3Tad size decoding error 0x0101 (lost synchronization) at byte offset 3072836
The actual size of the file is : 3072949
I get this almost with every file I try to decode.
I manage the input by creating with "malloc()" a memory area of "unsigned chars" of the size of the file , then I fread the mp3 file into memory and pass the pointer to the callback input function .
I miss something or I made any mistakes?
Try this: when you call malloc(), allocate MAD_BUFFER_GUARD extra bytes at the end and fill them with zero bytes. This will allow the decoder to fully decode the last frame.
PS= Do you know how to check the correctness of a Raw 16bit PCM stream?? I've tried to play my file with many players , but it doesn't work. Sorry but I'm a newbie of digital audio :)
You might want to prepend a WAV or AIFF header to the raw PCM so that other applications can understand the data. See the audio_wave.c and audio_aiff.c files from madplay for an example.