занялся кодированием мп3 с помощью библиотеки lame.
кодер работает,но если менять установки битрейт и частоты дискретизации,то они в винампе показываются неизменными, по дефолту 128кбс и 44кГЦ,с чем это связано я никак не пойму.
Объясните,кто рабботал с этой билиотекой как правильно кодировать в мп3,я разбирался по исходникам ламовского кодера,и вроде бы все полезное и нужное вытащил,)
ниже код кодера.
int EncodeMp3(char* oFileName,//имя файла для записи
short *ldata,//массив значений для левого канала
short *rdata,//массив значений для правого канала
mp3data_struct *mp3data)//данные об мп3 файле
{
int t= 0;
FILE *ofn;
int rd = 0;
size_t ofs =0;
unsigned char mp3buffer[LAME_MAXMP3BUFFER];
short pcm_l[1152];
short pcm_r[1152];
lame_global_flags *gf;
gf = lame_init();
if(gf == NULL)
{
return 0;
}
if(lame_init_params(gf)<0)
{
return 0;
}
ofn = fopen(oFileName,"wb");
lame_set_brate(gf, mp3data->bitrate);
lame_set_out_samplerate(gf,mp3data->samplerate);
cout <<" Starting ecncode -------------"<<endl;
for(int i = 0;i < l;i+=1152)
{
for(int j = 0;j< 1152;j++)
{
pcm_l[j] = ldata[i+j];
pcm_r[j] = rdata[i+j];
t++;
}
rd = lame_encode_buffer(gf,pcm_l,pcm_r,mp3data->framesize,mp3buffer,0);
fwrite(mp3buffer,1,rd,ofn);
ofs+=rd;
}
lame_close(gf);
fclose(ofn);
return ofs;
};