Audio Level
(→Features) |
|||
Line 14: | Line 14: | ||
==Features== | ==Features== | ||
− | * | + | * VU meter |
− | * | + | * Audio amplifier |
− | * | + | * Auto gain and volume controls |
− | * | + | * Event triggers |
===Supported Standards=== | ===Supported Standards=== |
Revision as of 14:41, 31 July 2007
Provides support for level processing of audio stream. Supports VU meter, audio amplifier, event triggers, auto gain and volume controls.
Contents |
Overview
{{{name}}} | |
---|---|
Type: | DirectShow filter |
Status: | Beta |
Redistributables: | {{{deliverables}}} |
Setup Directory | {{{setup}}} |
Pricing: | {{{pricing}}} |
Download: | {{{download}}} |
Audio Level фильтр используется для различных манипуляций с аудио потоком. На вход фильтра подается аудио поток, после преобразований аудио поток передается для дальнейшей обработки или отображения. Фильтр позволяет задавать индивидуальные установки для каждого канала в аудио потоке.
Features
- VU meter
- Audio amplifier
- Auto gain and volume controls
- Event triggers
Supported Standards
- The E.B.U. standart peak-programme meter for the control of international transmissions
Basic specs
Filter Interfaces: | IBaseFilter, IAudioLevel, ISpecifyPropertyPages, IPersist |
Input stream: | PCM Audio |
Input Pin Media Types: | MEDIATYPE_Audio MEDIASUBTYPE_PCM |
Input Pin Interfaces: | IPin, IQualityControl, IMemInputPin |
Output streams: | PCM Audio |
Output Pin Media Types: | MEDIATYPE_Audio MEDIASUBTYPE_PCM |
Output Pin Interfaces: | IPin, IQualityControl, IMediaSeeking |
Filter Name: | MediaLooks Audio Level |
Filter CLSID: | 380949BC-AD26-4862-BF30-1F709075DF5B |
Executable: | ALevel.dll |
Merit: | MERIT_DO_NOT_USE |
Filter categories: | DirectShow filters: CLSID_LegacyAmFilterCategory {083863F1-70DE-11d0-BD40-00A0C911CE86} MediaLooks filters: CLSID_MediaLooksCategory {1D0D0809-3513-244F-4B3D-2A0A1D131B17} |
Usage in GraphEdit
Filter can be found in the following categories:
- DirectShow filters
- MediaLooks filters
Remarks
Аудио триггер позволяет динамически получать информацию об уровне звукового сигнала. По достижению амплитуды сигнала заданного значения приложению посылаются сообщения. Порог срабатывания может работать на два фронта, верхний и нижний. Верхний фронт работает на превышения амплитуды сигнала заданного значения, нижний на пренижение. Например, стандартная задача определения тишины в звуковом канале с помощью аудио триггера решается следующим образом.
Первое, необходимо выбрать тип сообщений посылаемых триггером. В настоящий момент поддерживается 3 типа: интерфейс нотификации триггера (IAudioLevelNotify), handles to event objects, DirectShow event notifications. В соответствии с 3 типами сообщений в интерфейсе предусмотрено 3 ф-ий: AdviseNotify, AdviseEvent and AdviseDSEvent.
Второе, необходимо выбрать фронт работы триггера. В случае определения тишины в канале, нужен нижний фронт.
Третье. Триггер работает след образом - по достижению уровня звукового сигнала порога срабатывания, приложению послылается сообщение OnLevelReachedBegin. Как только уровень сигнала выходит за границу порога срабатывания, в зависимости от фронта работы, приложению посылается OnLevelReachedEnd. Порог срабатывания можно задавать в двух системах измерения: в децибеллах и в процентах. В случае процентов значение порога колеблится между 0 и 1. Например для определения тишины можно установить порог, равный 0.17.
Четвертое. Необходимо установить задержку срабатывания порога триггера в милисекундах. Достигнув определенного порога срабатывания сигнал должен оставатся в заданной области, в зависимости от фронта работы, определенное кол-во милисекунд. По прошествию заданного кол-ва милисекунд приложению будет послано сообщение OnLevelReachedBegin. Если в течении этого промежутка времени сигнал выйдет за границу, сообщение OnLevelReachedBegin не будет послано. В случае определния тишины в канале, нормальным значением является 500ms. При заданном нижнем фронте и пороге срабатывания 0.17, сигнал должен оставтся еще 500ms ниже порога, чтоб приложение получило сообщение OnLevelReachedBegin - началась тишина в канале. При превышении сигнала порога 0.17, приложение получит OnLevelReachedEnd - закончилась тишина.
Пятое. Остальные параметры и способ обработки сообщений зависят от типа. В случае интерфейса нотификации, приложению необходимо передать указатель на интерфейс событий. В случае стандартный виндовых сообщений, нужно передать handles на event objectes. Ф-ия CreateEvent создает handles. А в случае DirectShow нотификаций, обработка сообщений производится с помощью интерфейсов DirectShow. Константы сообщений EC_LEVEL_REACHED_BEGIN/EC_LEVEL_REACHED_END.
Дополнительную информацию можно получить из описания интерфейса в IDL файле.