LINUX.ORG.RU

[libmp3lame] Несколько вопросов.


0

1

Не подкинете ли пример, как с помощью данной библиотеки перекодировать в MP3 mono raw pcm? Для стерео работает такой код:

    const int BUFFLEN = 8192;
    short int pcmbuff[BUFFLEN*2];
    unsigned char mp3buff[BUFFLEN];

    lame_global_flags *gf;
    gf = lame_init();
    lame_set_in_samplerate(gf, format.frequency());
    lame_set_num_channels(gf, format.channels());
    lame_init_params(gf);

    do
    {
        read = fread(pcmbuff, 2*sizeof(short int), BUFFLEN, in);
        if (read == 0)
        {
            write = lame_encode_flush(gf, mp3buff, BUFFLEN);
        }
        else
        {       
            write = lame_encode_buffer_interleaved(gf, pcmbuff, read, mp3buff, BUFFLEN);
         
        }
        fwrite(mp3buff, write, 1, out);
    }
    while (read != 0);

Но если на входе mono, то результат получается ускоренный в 2 раза. Как сделать правильно?

И еще один вопрос. Этот код работает для частоты дискретизации входного потока 11025, но для 44100 сегфолтится. ЧЯДНТ?

★★★

Ответ на: комментарий от unikoid

Хм, внезапно и сегфолтится перестало. Думаю, проблема таки решена.

unikoid ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.