Códigos de notificação de eventos

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use 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.]

Estas seções listam os eventos do 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 Gerenciador de Grafo de Filtro chamando o método IMediaEventSink::Notify . O Gerenciador de Grafo de Filtro manipula alguns eventos e enfileira outros para o aplicativo. O aplicativo os recupera chamando o método IMediaEvent::GetEvent .

Nas seções a seguir, cada entrada lista o código do evento, o significado dos parâmetros de evento e a ação padrão do Gerenciador de Grafo 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 Grafo 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 Gerenciador de Grafo de Filtro os colocará diretamente na fila de eventos. No entanto, as seguintes advertências se aplicam:

  • O Gerenciador de Grafo de Filtro não pode liberar os parâmetros de evento usando o método IMediaEvent::FreeEventParams normal. O aplicativo deve liberar qualquer contagem de memória ou referência associada aos parâmetros de evento.
  • O filtro só deve enviar o evento de dentro de um aplicativo preparado para lidar com 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 há suporte.
EC_BUFFERING_DATA O grafo está armazenando dados em buffer ou parou de armazenar dados em buffer.
EC_BUILT Envie pelo Controle de Vídeo quando um grafo tiver sido criado. Não encaminhado para aplicativos.
EC_CLOCK_CHANGED O relógio de referência foi alterado.
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 há suporte.
EC_DEVICE_LOST Um dispositivo Plug and Play foi removido ou ficou disponível novamente.
EC_DISPLAY_CHANGED O modo de exibição foi alterado.
EC_END_OF_SEGMENT O final de um segmento foi atingido.
EC_EOS_SOON Não há suporte.
EC_ERROR_STILLPLAYING Um comando assíncrono para executar o grafo falhou.
EC_ERRORABORT Uma operação foi anulada devido a um erro.
EC_ERRORABORTEX Uma operação foi anulada devido a um erro.
EC_EXTDEVICE_MODE_CHANGE Não há suporte.
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 inteira.
EC_GRAPH_CHANGED O grafo de filtro foi alterado.
EC_LENGTH_CHANGED O comprimento de uma origem foi alterado.
EC_LOADSTATUS Notifica o aplicativo de progresso ao abrir um arquivo de rede.
EC_MARKER_HIT Não há suporte.
EC_NEED_RESTART Um filtro está solicitando que o grafo seja reiniciado.
EC_NEW_PIN Não há suporte.
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 grafo está abrindo um arquivo ou terminou de abrir um arquivo.
EC_PALETTE_CHANGED A paleta de vídeos foi alterada.
EC_PAUSED Uma solicitação de pausa foi concluída.
EC_PLEASE_REOPEN O arquivo de origem foi alterado.
EC_PREPROCESS_COMPLETE Enviado pelo filtro Gravador ASF do WM quando ele conclui o pré-processamento para codificação multipasso.
EC_PROCESSING_LATENCY Indica a quantidade de tempo que um componente está levando para processar cada exemplo.
EC_QUALITY_CHANGE O grafo está soltando amostras para controle de qualidade.
EC_RENDER_FINISHED Não há suporte.
EC_REPAINT Um renderizador de vídeo requer uma repinta.
EC_SAMPLE_LATENCY Especifica o quão atrasado é o agendamento de um componente para processar amostras.
EC_SAMPLE_NEEDED Solicita um novo exemplo de entrada do filtro EVR (Renderizador de Vídeo Avançado).
EC_SCRUB_TIME Especifica o carimbo de data/hora para a etapa de quadro mais recente.
EC_SEGMENT_STARTED Um novo segmento foi iniciado.
EC_SHUTTING_DOWN O grafo de filtro está sendo desligado antes de ser destruído.
EC_SNDDEV_IN_ERROR Ocorreu um erro de dispositivo em um 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 grafo de filtro alterou o estado.
EC_STATUS Contém duas cadeias de caracteres status arbitrárias.
EC_STEP_COMPLETE Um filtro executando a etapa de quadro pisou o número especificado de quadros.
EC_STREAM_CONTROL_STARTED Um comando de início de controle de fluxo entrou em vigor.
EC_STREAM_CONTROL_STOPPED Um comando de parada de controle de fluxo entrou em vigor.
EC_STREAM_ERROR_STILLPLAYING Ocorreu um erro em um fluxo. O fluxo ainda está sendo reproduzido.
EC_STREAM_ERROR_STOPPED Um fluxo foi interrompido devido a um erro.
EC_TIMECODE_AVAILABLE Não há suporte.
EC_UNBUILT Envie pelo Controle de Vídeo quando um grafo tiver sido derrubado. Não encaminhado para aplicativos.
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 pela VMR-7 e pela VMR-9 quando não foi possível aceitar uma solicitação de alteração de formato dinâmico do decodificador upstream.
EC_VMR_RENDERDEVICE_SET Enviado quando a VMR selecionou seu mecanismo de renderização.
EC_VMR_SURFACE_FLIPPED Enviado quando o apresentador alocador da VMR-7 chamou o método Flip directDraw na superfície que está sendo apresentada.
EC_WINDOW_DESTROYED O renderizador de vídeo foi destruído ou removido do grafo.
EC_WMT_EVENT Enviado pelo filtro Leitor do ASF do WM ao ler arquivos ASF protegidos pelo DRM (gerenciamento de direitos digitais).
EC_WMT_INDEX_EVENT Enviado quando um aplicativo usa o Gravador ASF do WM para indexar arquivos de Vídeo do Windows Media.

 

Constantes e GUIDs

Notificação de eventos no DirectShow