LINUX.ORG.RU

mpd и нагрузка на процессор


0

1

mpd черезвычайно быстр.
Однако, если взглянуть в top, то загрузка им процессора может доходить до 7%, при воспроизведении mp3 44.1KHz.
Проблема в программном микшере alsa - он по-умолчанию преобразует любой поток к частоте сэмплирования 48KHz.

Убедиться в этом можно так:

$ grep -i rate /proc/asound/card*/pcm*/sub0/hw_params

Необходимо заставить микшер работать на частоте 44.1KHz.
Для начала убедимся, что кодек поддерживает эту частоту аппаратно:

$ grep 44100 /proc/asound/card*/codec*
Если вывод не пустой, то ок.
Если нет - идём на сайт http://alsa-project.org, в гугл, и уточняем информацию по поддерживаемым форматам карты.
Если с предыдущим пунктом ок, тогда создаём следующий конфиг для alsa:
$ cat /etc/asound.conf
pcm.!default {
    type dmix
    ipc_key 1024
    ipc_key_add_uid 0
    ipc_perm 0666
    slave {
        pcm {
            type hw
            card 0
            device 0
        }
        period_size 1024
        buffer_size 8192
        format "S16_LE"
        rate 44100
    }
}
и редактируем в конфиге mpd:
audio_output {
    type            "alsa"
    name            "My ALSA Device"
    auto_resample   "no"
}

samplerate_converter    "2"
Теперь всё ок - загрузка cpu ~1% на 1GHz + рабочее микширование.



Последнее исправление: anon_666 (всего исправлений: 1)

Для начала убедимся, что кодек поддерживает эту частоту аппаратно:

$ grep 44100 /proc/asound/card*/codec*

Нифига. Вот моя звуковая карта Creative может аппаратно играть 22050, 44100, 48000, 96000. А в этом /proc/asound/card0/codec97 указано лишь 48000. На самом деле чтобы узнать правду нужно прочитать мануал к драйверу звуковой карты или посмотреть его исходники. На сайте ALSA.

xcreatepixmap
()
Ответ на: комментарий от xcreatepixmap

>в этом /proc/asound/card0/codec97 указано лишь 48000

может аппаратно играть


Не, у меня тоже ca0106 есть. Там аппаратное ресемплирование. Сам кодек не может.

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