Поделиться через


Обработка событий в AVStream

Фильтры и выводы AVStream описывают свойства, события и методы, которые они поддерживают, предоставляя структуру KSAUTOMATION_TABLE в элементе AutomationTable в составе структуры KSFILTER_DESCRIPTOR или KSPIN_DESCRIPTOR_EX. Дополнительные сведения см. в разделе Дескрипторы AVStream.

В целях поддержки событий миникодрайвер AVStream предоставляет массив структур KSEVENT_SET в таблице автоматизации. Каждая структура KSEVENT_SET содержит массив структур KSEVENT_ITEM. Каждая структура KSEVENT_ITEM описывает, как минидрайвер поддерживает конкретное событие.

Минидрайвер может настроить поведение событий, указав обработчики AVStrMiniAddEvent и AVStrMiniRemoveEvent в структурах KSEVENT_ITEM.

Когда AVStream получает запрос на включение события, он создает структуру KSEVENT_ENTRY. Если минидрайвер предоставил обработчик AVStrAddEvent, AVStream передает указатель на структуру KSEVENT_ENTRY в вызове AVStrAddEvent.

Если вы не предоставляете обработчик AVStrAddEvent , то по умолчанию AVStream добавляет событие в список объектов. Минидрайвер не получает указатель KSEVENT_ENTRY . Минидрайвер может активировать событие, вызвав KsFilterGenerateEvents или KsPinGenerateEvents.