Audio Level

From AVObjects Knowledge Base
(Difference between revisions)
Jump to: navigation, search
(Features)
Line 17: Line 17:
 
* Audio amplifier
 
* Audio amplifier
 
* Auto gain and volume controls
 
* Auto gain and volume controls
* Event triggers
+
* Audio trigger
  
 
===Supported Standards===
 
===Supported Standards===

Revision as of 14:42, 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
  • Audio trigger

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
FORMAT_WaveFormatEx

Input Pin Interfaces: IPin, IQualityControl, IMemInputPin
Output streams: PCM Audio
Output Pin Media Types: MEDIATYPE_Audio

MEDIASUBTYPE_PCM
FORMAT_WaveFormatEx

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 файле.

Downloads

See also

Personal tools