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. |
Tópicos relacionados