ado_pcm_sw_mix()

Механизм одновременной обработки нескольких потоков

Прототип:

#include <audio_driver.h>
int32_t ado_pcm_sw_mix( ado_card_t *card,
ado_pcm_t *pcm,
ado_mixer_t *mixer );

Аргументы:

card
Аргумент, переданный менеджером стека io-audio в функцию драйвера ctrl_init().
pcm
PCM устройство, на основе которого построен программный микшер. Это указатель на структуру ado_pcm_t, созданную для PCM устройства при вызове ado_pcm_create().
mixer
Микшер, в котором создаются группы субканалов.

Библиотека:

libado

Описание:

Функция ado_pcm_sw_mix() предоставляет механизм, посредством которого устройство с единственным субканалом может поддержать несколько одновременно обрабатываемых потоков.


Note: Число поддерживаемых потоков есть атрибут архитектуры менеджера io-audio и драйвер не может на него повлиять.

Функция использует ресурсы CPU для смешивания нескольких потоков в один, который и будет отправлен PCM устройству.

Программный микшер реализуется через создание нового PCM устройства, ассоциированного с оборудованием, и добавления к указанному микшеру соответствующих элементов управления новым субканалом.

Аппаратный субканал используется только при необходимости с остороны программного микшера, поэтому приложение может напрямую открывать устройство, хотя это и не позволяет программному микшеру одновременно принимать поток от уже использющегося устройства.

В настоящий момент программный микшер поддерживается только для каналов воспроизведения PCM устройства.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да




Предыдущий раздел: Библиотека libado