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