Коды уведомлений о событиях
[Функция, связанная с этой страницей 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. |
Связанные темы