Hi All,<br /><br />I am working on Wave to Mp3 Encoding on Mac. From what I have seen so far. Here is what we need to do for encoding process:<br /><br />1.) Init the lame encoder.<br />2.) Set the Params. Such as bit rate, sample rate, channels etc<br />3.) Then we open the wave file and read the data from it and submit it to the encoder for conversion.<br /><br />I am using "fstreams" APIs for file handling. <br /><br />As far as I know I am doing things alright but I am getting an mp3 file equal to size of the wave file that I try to convert. And The file has white noise where there should be actual data. Meaning, if there is "hello" word spoken in the wave file. Then on the same location we will hear white noise in the mp3 file.<br /><br /><!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->Please note that, INPUT_BUFFER_SIZE is 220500 and OUTPUT_BUFFER_SIZE is 282825<!--colorc--></span><!--/colorc--><br /><br /><!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><br />-(void)InitMp3Encoder<br />{<br />m_pLgf = lame_init();<br />if(m_pLgf != NULL)<br />Â Â Â Â {<br />Â Â Â Â Â Â retVal = lame_set_num_channels(m_pLgf, m_NumChannels);<br />Â Â Â Â Â Â retVal = lame_set_in_samplerate(m_pLgf, m_SampleRate);<br />Â Â Â Â Â Â retVal = lame_set_brate(m_pLgf, m_BitRate);<br />Â Â Â Â Â Â retVal = lame_init_params(m_pLgf);<br />Â Â Â Â }<br />}<br /><br /><br />- (IBAction)StartConversionid)sender<br />{<br />Â Â Â Â short int * pAudioBuffer;<br />Â Â Â Â Â Â Â Â unsigned char* mp3Buffer; <br />Â Â Â Â Â Â Â Â size_t result;<br />Â Â Â Â Â Â Â Â int retVal = 0;<br />Â Â Â Â Â Â Â Â int i;<br />Â Â Â Â Â Â Â Â NSMutableString *pMp3FileName = [[NSMutableString alloc] init];<br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â // Initialize the Mp3 Encoder<br />Â Â Â Â Â Â Â Â [self InitMp3Encoder];<br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â [pMp3FileName appendString:[m_pAudioFilePathString stringByDeletingPathExtension]];<br />Â Â Â Â Â Â Â Â [pMp3FileName appendString"TMP.mp3"];<br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â const char * pAudioFilePath =(char *)[pMp3FileName UTF8String];Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â m_pMp3FileStream = fopen(pAudioFilePath, "wb+");<br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â if(m_pMp3FileStream == NULL)<br />Â Â Â Â Â Â Â Â Â Â Â Â printf("Error Occured!!!");Â Â Â Â Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â pAudioBuffer = (short int *) malloc((INPUT_BUFFER_SIZE * 2));<br />Â Â Â Â Â Â Â Â mp3Buffer = (unsigned char *) malloc(OUTPUT_BUFFER_SIZE * sizeof(unsigned char));<br />Â Â Â Â <br />Â Â Â Â Â Â Â Â while(!feof(m_pWaveFileStream))<br />Â Â Â Â Â Â Â Â Â Â Â Â {<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â //result = fread(pAudioBuffer, INPUT_BUFFER_SIZE * 2, 1, m_pWaveFileStream);<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â result = fread(pAudioBuffer, 1, ((INPUT_BUFFER_SIZE * 2)), m_pWaveFileStream);<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â retVal = lame_encode_buffer_interleaved(m_pLgf,<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pAudioBuffer,<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 220500,<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â mp3Buffer,<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 0);<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â <br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â fwrite(mp3Buffer, OUTPUT_BUFFER_SIZE, 1, m_pMp3FileStream);<br />Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â //fwrite(pAudioBuffer, INPUT_BUFFER_SIZE * 2, 1, m_pMp3FileStream);<br />Â Â Â Â Â Â Â Â Â Â Â Â }<br /><br />Â Â Â Â Â Â Â Â <br />}<br /><!--c2--></div><!--ec2--><br /><br />Thanks for any help on this in advance!<br />Pulkit
</div>
</div>