Códigos de notificación de eventos

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

En esta sección se enumeran los eventos directShow que no son específicos de DVD. Para obtener eventos específicos de DVD, consulte Códigos de notificación de eventos de DVD.

Los filtros envían eventos al Administrador de gráficos de filtros llamando al método IMediaEventSink::Notify . Filter Graph Manager controla algunos eventos y colas para la aplicación. La aplicación los recupera llamando al método IMediaEvent::GetEvent .

En las secciones siguientes, cada entrada enumera el código de evento, el significado de los parámetros de evento y la acción predeterminada del Administrador de gráficos de filtros para el evento, si existe. Para invalidar la acción predeterminada, llame a IMediaEvent::CancelDefaultHandling. Los códigos de evento se definen en los archivos de encabezado Evcode.h y Audevcod.h. Si no hay ninguna acción predeterminada, Filter Graph Manager reenvía automáticamente el evento a la aplicación (a través de la cola de eventos).

Eventos personalizados

Los filtros pueden definir eventos personalizados con códigos de evento en el intervalo EC_USER y versiones posteriores. El Administrador de gráficos de filtros colocará estos directamente en la cola de eventos. Sin embargo, se aplican las siguientes advertencias:

  • El Administrador de gráficos de filtros no puede liberar los parámetros de evento mediante el método normal IMediaEvent::FreeEventParams . La aplicación debe liberar los recuentos de memoria o referencia asociados a los parámetros de evento.
  • El filtro solo debe enviar el evento desde dentro de una aplicación que esté preparada para controlar el evento. (Posiblemente, la aplicación puede establecer una propiedad personalizada en el filtro para indicar que es seguro enviar el evento).
Código de notificación de eventos Descripción
EC_ACTIVATE Se activa o desactiva una ventana de vídeo.
EC_BANDWIDTHCHANGE No compatible.
EC_BUFFERING_DATA El grafo almacena en búfer los datos o ha dejado de almacenar en búfer los datos.
EC_BUILT Enviar por el control de vídeo cuando se ha compilado un grafo. No se reenvía a las aplicaciones.
EC_CLOCK_CHANGED El reloj de referencia ha cambiado.
EC_CLOCK_UNSET El proveedor de reloj se desconectó.
EC_CODECAPI_EVENT Enviado por un codificador para indicar un evento de codificación.
EC_COMPLETE Se han representado todos los datos de una secuencia determinada.
EC_CONTENTPROPERTY_CHANGED No compatible.
EC_DEVICE_LOST Se quitó un dispositivo Plug and Play o ha vuelto a estar disponible.
EC_DISPLAY_CHANGED El modo de presentación ha cambiado.
EC_END_OF_SEGMENT Se ha alcanzado el final de un segmento.
EC_EOS_SOON No compatible.
EC_ERROR_STILLPLAYING Error en un comando asincrónico para ejecutar el grafo.
EC_ERRORABORT Se anuló una operación debido a un error.
EC_ERRORABORTEX Se anuló una operación debido a un error.
EC_EXTDEVICE_MODE_CHANGE No compatible.
EC_FILE_CLOSED El archivo de origen se cerró debido a un evento inesperado.
EC_FULLSCREEN_LOST El representador de vídeo está desactivando el modo de pantalla completa.
EC_GRAPH_CHANGED El gráfico de filtros ha cambiado.
EC_LENGTH_CHANGED La longitud de un origen ha cambiado.
EC_LOADSTATUS Notifica a la aplicación de progreso al abrir un archivo de red.
EC_MARKER_HIT No compatible.
EC_NEED_RESTART Un filtro solicita que se reinicie el grafo.
EC_NEW_PIN No compatible.
EC_NOTIFY_WINDOW Notifica un filtro de la ventana del representador de vídeo.
EC_OLE_EVENT Un filtro pasa una cadena de texto a la aplicación.
EC_OPENING_FILE El gráfico está abriendo un archivo o ha terminado de abrir un archivo.
EC_PALETTE_CHANGED La paleta de vídeos ha cambiado.
EC_PAUSED Se ha completado una solicitud de pausa.
EC_PLEASE_REOPEN El archivo de origen ha cambiado.
EC_PREPROCESS_COMPLETE Enviado por el filtro WM ASF Writer cuando completa el procesamiento previo para la codificación multipass.
EC_PROCESSING_LATENCY Indica la cantidad de tiempo que tarda un componente en procesar cada ejemplo.
EC_QUALITY_CHANGE El gráfico está quitando muestras, para el control de calidad.
EC_RENDER_FINISHED No compatible.
EC_REPAINT Un representador de vídeo requiere un reintentos.
EC_SAMPLE_LATENCY Especifica cuánto está lejos de programar un componente para procesar muestras.
EC_SAMPLE_NEEDED Solicita un nuevo ejemplo de entrada desde el filtro Enhanced Video Renderer (EVR).
EC_SCRUB_TIME Especifica la marca de tiempo para el paso de fotograma más reciente.
EC_SEGMENT_STARTED Se ha iniciado un nuevo segmento.
EC_SHUTTING_DOWN El gráfico de filtros se está cerrando, antes de ser destruido.
EC_SNDDEV_IN_ERROR Se ha producido un error de dispositivo en un filtro de captura de audio.
EC_SNDDEV_OUT_ERROR Se ha producido un error de dispositivo en un filtro de representador de audio.
EC_STARVATION Un filtro no recibe suficientes datos.
EC_STATE_CHANGE El gráfico de filtro ha cambiado el estado.
EC_STATUS Contiene dos cadenas de estado arbitrarias.
EC_STEP_COMPLETE Un filtro que realiza la ejecución paso a paso de fotogramas ha escalonado el número especificado de fotogramas.
EC_STREAM_CONTROL_STARTED Un comando de inicio de control de flujo ha tenido efecto.
EC_STREAM_CONTROL_STOPPED Un comando stream-control stop ha tenido efecto.
EC_STREAM_ERROR_STILLPLAYING Se ha producido un error en una secuencia. La secuencia todavía se está reproduciendo.
EC_STREAM_ERROR_STOPPED Una secuencia se ha detenido debido a un error.
EC_TIMECODE_AVAILABLE No compatible.
EC_UNBUILT Enviar por el control de vídeo cuando se ha roto un gráfico. No se reenvía a las aplicaciones.
EC_USERABORT El usuario ha terminado la reproducción.
EC_VIDEO_SIZE_CHANGED El tamaño del vídeo nativo ha cambiado.
EC_VIDEOFRAMEREADY Un fotograma de vídeo está listo para mostrarse.
EC_VMR_RECONNECTION_FAILED Enviado por VMR-7 y VMR-9 cuando no pudo aceptar una solicitud de cambio de formato dinámico del descodificador ascendente.
EC_VMR_RENDERDEVICE_SET Se envía cuando VMR ha seleccionado su mecanismo de representación.
EC_VMR_SURFACE_FLIPPED Se envía cuando el moderador del asignador de VMR-7 ha llamado al método DirectDraw Flip en la superficie que se presenta.
EC_WINDOW_DESTROYED El representador de vídeo se destruyó o quitó del gráfico.
EC_WMT_EVENT Enviado por el filtro wm ASF Reader cuando lee los archivos ASF protegidos por la administración de derechos digitales (DRM).
EC_WMT_INDEX_EVENT Se envía cuando una aplicación usa WM ASF Writer para indexar archivos de Windows Media Video.

 

Constantes y GUID

Notificación de eventos en DirectShow