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 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 Audio/Video Capture 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 Grafos 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étodoIMediaEvent::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 Grafos de Filtro encaminha 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 ressalvas se aplicam:
- O Gerenciador de Grafo de Filtro não pode liberar os parâmetros de evento usando o método de IMediaEvent::FreeEventParams normal. O aplicativo deve liberar todas as contagens de memória ou referência associadas 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 | Enviar 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á mudando para fora 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 de do 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 nova estrutura. |
EC_SAMPLE_LATENCY | Especifica o quão atrasado está o agendamento de um componente para o processamento de exemplos. |
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 da 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 de status arbitrárias. |
EC_STEP_COMPLETE | Um filtro que executa 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 | Enviar 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 DirectDraw Flip 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 ASF do WM quando lê 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 de Mídia do Windows. |
Tópicos relacionados