Partilhar via


Códigos de notificação de evento

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Esta seção lista os eventos DirectShow que não são específicos do DVD. Para eventos específicos do DVD, consulte Códigos de notificação de eventos de DVD.

Os filtros enviam eventos para o Filter Graph Manager chamando o IMediaEventSink::Notify método. O Filter Graph Manager lida com alguns eventos e enfileira outros para o aplicativo. O aplicativo os recupera chamando o IMediaEvent::GetEvent método.

Nas seções a seguir, cada entrada lista o código do evento, o significado dos parâmetros do evento e a ação padrão do Gerenciador de Gráficos de Filtro para o evento, se houver. Para substituir a ação padrão, chame IMediaEvent::CancelDefaultHandling. Os códigos de evento são definidos nos arquivos de cabeçalho Evcode.h e Audevcod.h. Se não houver nenhuma ação padrão, o Gerenciador de Gráficos de Filtro encaminhará automaticamente o evento para o aplicativo (por meio da fila de eventos).

Eventos personalizados

Os filtros podem definir eventos personalizados com códigos de evento no intervalo EC_USER e superior. O Filter Graph Manager os colocará diretamente na fila de eventos. No entanto, aplicam-se as seguintes ressalvas:

  • O Filter Graph Manager não pode liberar os parâmetros de evento usando o métodoIMediaEvent::FreeEventParams normal. O aplicativo deve liberar qualquer memória ou contagens de referência associadas aos parâmetros de evento.
  • O filtro só deve enviar o evento de dentro de um aplicativo que esteja preparado para manipular o evento. (Possivelmente, o aplicativo pode definir uma propriedade personalizada no filtro para indicar que é seguro enviar o evento.)
Código de notificação de evento Descrição
EC_ACTIVATE Uma janela de vídeo está sendo ativada ou desativada.
EC_BANDWIDTHCHANGE Não suportado.
EC_BUFFERING_DATA O gráfico está armazenando dados em buffer ou parou de armazenar dados em buffer.
EC_BUILT Envie pelo controle de vídeo quando um gráfico tiver sido construído. Não encaminhado para candidaturas.
EC_CLOCK_CHANGED O relógio de referência mudou.
EC_CLOCK_UNSET O provedor de relógio foi desconectado.
EC_CODECAPI_EVENT Enviado por um codificador para sinalizar um evento de codificação.
EC_COMPLETE Todos os dados de um fluxo específico foram renderizados.
EC_CONTENTPROPERTY_CHANGED Não suportado.
EC_DEVICE_LOST Um dispositivo Plug and Play foi removido ou tornou-se disponível novamente.
EC_DISPLAY_CHANGED O modo de exibição foi alterado.
EC_END_OF_SEGMENT Chegou-se ao fim de um segmento.
EC_EOS_SOON Não suportado.
EC_ERROR_STILLPLAYING Um comando assíncrono para executar o gráfico falhou.
EC_ERRORABORT Uma operação foi abortada devido a um erro.
EC_ERRORABORTEX Uma operação foi abortada devido a um erro.
EC_EXTDEVICE_MODE_CHANGE Não suportado.
EC_FILE_CLOSED O arquivo de origem foi fechado devido a um evento inesperado.
EC_FULLSCREEN_LOST O renderizador de vídeo está saindo do modo de tela cheia.
EC_GRAPH_CHANGED O gráfico de filtro foi alterado.
EC_LENGTH_CHANGED O comprimento de uma fonte foi alterado.
EC_LOADSTATUS Notifica o aplicativo do progresso ao abrir um arquivo de rede.
EC_MARKER_HIT Não suportado.
EC_NEED_RESTART Um filtro está solicitando que o gráfico seja reiniciado.
EC_NEW_PIN Não suportado.
EC_NOTIFY_WINDOW Notifica um filtro da janela do renderizador de vídeo.
EC_OLE_EVENT Um filtro está passando uma cadeia de caracteres de texto para o aplicativo.
EC_OPENING_FILE O gráfico está abrindo um arquivo ou terminou de abrir um arquivo.
EC_PALETTE_CHANGED A paleta de vídeos mudou.
EC_PAUSED Um pedido de pausa foi concluído.
EC_PLEASE_REOPEN O arquivo de origem foi alterado.
EC_PREPROCESS_COMPLETE Enviado pelo WM ASF Writer filtro quando ele conclui o pré-processamento para codificação multipass.
EC_PROCESSING_LATENCY Indica o tempo que um componente está levando para processar cada amostra.
EC_QUALITY_CHANGE O gráfico está soltando amostras, para controle de qualidade.
EC_RENDER_FINISHED Não suportado.
EC_REPAINT Um renderizador de vídeo requer uma nova pintura.
EC_SAMPLE_LATENCY Especifica o atraso de um componente para o processamento de amostras.
EC_SAMPLE_NEEDED Solicita uma nova amostra de entrada do filtro EVR (Enhanced Video Renderer).
EC_SCRUB_TIME Especifica o carimbo de data/hora para a etapa de quadro mais recente.
EC_SEGMENT_STARTED Iniciou-se um novo segmento.
EC_SHUTTING_DOWN O gráfico de filtro está sendo desligado, antes de ser destruído.
EC_SNDDEV_IN_ERROR Ocorreu um erro de dispositivo num filtro de captura de áudio.
EC_SNDDEV_OUT_ERROR Ocorreu um erro de dispositivo em um filtro de renderizador de áudio.
EC_STARVATION Um filtro não está recebendo dados suficientes.
EC_STATE_CHANGE O gráfico de filtro mudou de estado.
EC_STATUS Contém duas cadeias de status arbitrárias.
EC_STEP_COMPLETE Um filtro que executa a revisão de quadros escalou o número especificado de quadros.
EC_STREAM_CONTROL_STARTED Um comando stream-control start entrou em vigor.
EC_STREAM_CONTROL_STOPPED Um comando stream-control stop entrou em vigor.
EC_STREAM_ERROR_STILLPLAYING Ocorreu um erro num fluxo. O fluxo ainda está em execução.
EC_STREAM_ERROR_STOPPED Um fluxo foi interrompido devido a um erro.
EC_TIMECODE_AVAILABLE Não suportado.
EC_UNBUILT Enviar pelo controle de vídeo quando um gráfico tiver sido derrubado. Não encaminhado para candidaturas.
EC_USERABORT O usuário encerrou a reprodução.
EC_VIDEO_SIZE_CHANGED O tamanho do vídeo nativo foi alterado.
EC_VIDEOFRAMEREADY Um quadro de vídeo está pronto para exibição.
EC_VMR_RECONNECTION_FAILED Enviado pelo VMR-7 e pelo VMR-9 quando não foi possível aceitar um pedido de alteração de formato dinâmico do descodificador a montante.
EC_VMR_RENDERDEVICE_SET Enviado quando o VMR selecionou seu mecanismo de renderização.
EC_VMR_SURFACE_FLIPPED Enviado quando o apresentador do alocador do VMR-7 chamou o método DirectDraw Flip na superfície que está sendo apresentada.
EC_WINDOW_DESTROYED O renderizador de vídeo foi destruído ou removido do gráfico.
EC_WMT_EVENT Enviado pelo filtro WM ASF Reader quando lê ficheiros ASF protegidos por gestão de direitos digitais (DRM).
EC_WMT_INDEX_EVENT Enviado quando um aplicativo usa o WM ASF Writer para indexar arquivos de vídeo do Windows Media.

 

constantes e GUIDs

notificação de evento no DirectShow