Коды уведомлений о событиях
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
В этом разделе перечислены события DirectShow, которые не относятся к DVD-диску. Сведения о событиях, относящихся к DVD, см. в коды уведомлений о событиях DVD.
Фильтры отправляют события диспетчеру графов фильтра, вызвав метод IMediaEventSink::Notify. Диспетчер графов фильтров обрабатывает некоторые события и очереди для приложения. Приложение извлекает их путем вызова метода IMediaEvent::GetEvent.
В следующих разделах каждая запись содержит код события, значение параметров события и действие диспетчера графов фильтров по умолчанию для события, если таковое имеется. Чтобы переопределить действие по умолчанию, вызовите IMediaEvent::CancelDefaultHandling. Коды событий определяются в файлах заголовков Evcode.h и Audevcod.h. Если по умолчанию нет действия, диспетчер графов фильтров автоматически перенаправит событие в приложение (через очередь событий).
пользовательских событий
Фильтры могут определять пользовательские события с кодами событий в диапазоне 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 после завершения предварительной обработки для кодирования с несколькимиpassми. |
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 | Команда запуска stream-control ввела в силу. |
EC_STREAM_CONTROL_STOPPED | Команда остановки потока-элемента управления ввела в силу. |
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. |
Связанные разделы
-
уведомление о событиях в DirectShow