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


Коды уведомлений о событиях

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

В этих разделах перечислены события DirectShow, не относящиеся к DVD. Сведения о событиях, относящихся к DVD, см. в разделе Коды уведомлений о событиях DVD.

Фильтры отправляют события в диспетчер фильтров Graph, вызывая метод IMediaEventSink::Notify . Диспетчер фильтров графов обрабатывает некоторые события и помещает в очередь другие для приложения. Приложение получает их, вызывая метод IMediaEvent::GetEvent .

В следующих разделах каждая запись перечисляет код события, значение параметров события и действие по умолчанию диспетчера фильтров graph для события, если таковое имеется. Чтобы переопределить действие по умолчанию, вызовите IMediaEvent::CancelDefaultHandling. Коды событий определяются в файлах заголовков Evcode.h и Audevcod.h. Если действие по умолчанию отсутствует, диспетчер фильтров Graph автоматически перенаправит событие в приложение (через очередь событий).

Пользовательские события

Фильтры могут определять пользовательские события с кодами событий в диапазоне EC_USER и выше. Диспетчер фильтров графов разместит их непосредственно в очереди событий. Однако действуют следующие предостережения.

  • Диспетчер фильтров графов не может освободить параметры события с помощью обычного метода IMediaEvent::FreeEventParams . Приложение должно освободить все объемы памяти или ссылок, связанные с параметрами события.
  • Фильтр должен отправлять событие только из приложения, которое подготовлено для обработки события. (Возможно, приложение может задать настраиваемое свойство фильтра, чтобы указать, что отправлять событие безопасно.)
Код уведомления о событии Описание
EC_ACTIVATE Окно видео активируется или деактивируется.
EC_BANDWIDTHCHANGE Не поддерживается.
EC_BUFFERING_DATA Граф выполняет буферизацию данных или остановил буферизацию данных.
EC_BUILT Отправка с помощью элемента управления "Видео" при построении графа. Не пересылается в приложения.
EC_CLOCK_CHANGED Ссылочные часы изменились.
EC_CLOCK_UNSET Поставщик часов отключен.
EC_CODECAPI_EVENT Отправляется кодировщиком для передачи сигнала о событии кодирования.
EC_COMPLETE Все данные из определенного потока были отрисованы.
EC_CONTENTPROPERTY_CHANGED Не поддерживается.
EC_DEVICE_LOST Устройство Plug and Play было удалено или снова стало доступным.
EC_DISPLAY_CHANGED Режим отображения изменился.
EC_END_OF_SEGMENT Достигнут конец сегмента.
EC_EOS_SOON Не поддерживается.
EC_ERROR_STILLPLAYING Сбой асинхронной команды для запуска графа.
EC_ERRORABORT Операция была прервана из-за ошибки.
EC_ERRORABORTEX Операция была прервана из-за ошибки.
EC_EXTDEVICE_MODE_CHANGE Не поддерживается.
EC_FILE_CLOSED Исходный файл был закрыт из-за непредвиденного события.
EC_FULLSCREEN_LOST Отрисовщик видео выключается из полноэкранного режима.
EC_GRAPH_CHANGED График фильтра изменился.
EC_LENGTH_CHANGED Длина источника изменилась.
EC_LOADSTATUS Уведомляет приложение о ходе выполнения при открытии сетевого файла.
EC_MARKER_HIT Не поддерживается.
EC_NEED_RESTART Фильтр запрашивает перезапуск графа.
EC_NEW_PIN Не поддерживается.
EC_NOTIFY_WINDOW Уведомляет фильтр окна отрисовщика видео.
EC_OLE_EVENT Фильтр передает в приложение текстовую строку.
EC_OPENING_FILE Граф открывает файл или завершает открытие файла.
EC_PALETTE_CHANGED Палитра видео изменилась.
EC_PAUSED Запрос приостановки завершен.
EC_PLEASE_REOPEN Исходный файл изменился.
EC_PREPROCESS_COMPLETE Отправляется фильтром модуля записи WM ASF после завершения предварительной обработки для многопроходного кодирования.
EC_PROCESSING_LATENCY Указывает время, которое требуется компоненту для обработки каждой выборки.
EC_QUALITY_CHANGE График сбрасывает образцы для контроля качества.
EC_RENDER_FINISHED Не поддерживается.
EC_REPAINT Для отрисовщика видео требуется перерисовка.
EC_SAMPLE_LATENCY Указывает, насколько далеко отстает от расписания для обработки примеров компонент.
EC_SAMPLE_NEEDED Запрашивает новый пример ввода из фильтра Расширенного отрисовщика видео (EVR).
EC_SCRUB_TIME Указывает метку времени для последнего шага кадра.
EC_SEGMENT_STARTED Начался новый сегмент.
EC_SHUTTING_DOWN Перед уничтожением граф фильтра завершает работу.
EC_SNDDEV_IN_ERROR В фильтре записи звука произошла ошибка устройства.
EC_SNDDEV_OUT_ERROR Произошла ошибка устройства в фильтре отрисовщика звука.
EC_STARVATION Фильтр не получает достаточно данных.
EC_STATE_CHANGE Состояние графа фильтра изменилось.
EC_STATUS Содержит две произвольные строки состояния.
EC_STEP_COMPLETE Фильтр, выполняющий пошаговую пошаговую настройку кадра, увеличил указанное число кадров.
EC_STREAM_CONTROL_STARTED Вступила в силу команда запуска управления потоком.
EC_STREAM_CONTROL_STOPPED Вступила в силу команда stop для управления потоком.
EC_STREAM_ERROR_STILLPLAYING В потоке произошла ошибка. Поток по-прежнему играет.
EC_STREAM_ERROR_STOPPED Поток остановился из-за ошибки.
EC_TIMECODE_AVAILABLE Не поддерживается.
EC_UNBUILT Отправка с помощью элемента управления "Видео" при сносе графа. Не пересылается в приложения.
EC_USERABORT Пользователь прервал воспроизведение.
EC_VIDEO_SIZE_CHANGED Размер собственного видео изменился.
EC_VIDEOFRAMEREADY Видеокадр готов к отображению.
EC_VMR_RECONNECTION_FAILED Отправляется VMR-7 и VMR-9, когда не удалось принять запрос на изменение динамического формата от декодера вышестоящий.
EC_VMR_RENDERDEVICE_SET Отправляется, когда VMR выбрал механизм отрисовки.
EC_VMR_SURFACE_FLIPPED Отправляется, когда выступающий с распределителем VMR-7 вызвал метод DirectDraw Flip на представленной поверхности.
EC_WINDOW_DESTROYED Отрисовщик видео был уничтожен или удален из графа.
EC_WMT_EVENT Отправляется фильтром читателя WM ASF при чтении файлов ASF, защищенных с помощью управления цифровыми правами (DRM).
EC_WMT_INDEX_EVENT Отправляется, когда приложение использует модуль записи WM ASF для индексирования файлов Windows Media Video.

 

Константы и идентификаторы GUID

Уведомление о событиях в DirectShow