66
/* output pipe(s) (выходные потоки) */
&pipEncode /* pipEncode */
/* intermediate buffer (промежуточный буфер) */
bufAudioproc. /* *bufIntermediate*/
}
• Инициализация программного потока во время выполнения. . Функ-
ция thrEncodeInit( ) здесь намеренно пуста, потому что поток кодера не
будет выполнять обработки кодирования. Мы вернемся к более детально-
му рассмотрению этой функции снова после того, как мы обсудим инте-
грацию функциональности кодера, используя XDAIS алгоритм в
секции
«Создание, инициализация и запуск экземпляра алгоритма с использова-
нием ALGRF».
• Функция run( ) , вызывается объектами SWI. , Функция thrEncodeRun( )
довольно прозрачна и представляет собой выполнение последовательно-
сти кодирования/записи аудио потока, получаемого от потока thrAudio-
proc. Эта выполняемая последовательность:
1. Проверка того, что заполненный аудио буфер доступен в pipEncode
из потока thrAudioproc.
UTL_assert( PIP_getReaderNumFrames(thrEncode.pipEncode) > 0);
Функция UTL_assert( ) - часть модуля UTL, который поставляется с
RF3. Модуль UTL имеет функции для наблюдения за работой про-
граммы в DSP (на целевой плате). Функция UTL_assert( ) проверяет
условие, чтобы увидеть значение: «Истина» или «Ложь». В вышепри-
веденном примере PIP_getReadNumFrames( ) возвращает количество
фреймов, доступных для чтения. Если случилось, так что
количество
равно 0, значит в приложении произошла ошибка, и оно не может да-
лее выполняться.
2. Получение указателя на фрейм данных из pipEncode.
PIP_get( thrEncode.pipEncode);
3. Кодирование/Запись если разрешено.
В этой части мы адресуемся к функции run( ) из прошлой секции. Пока,
никакое кодирование не произведено, несмотря на разрешенное со-
стояние.
4.
Возвращение пустого буфера для конвейера данных pipEncode.