Método CVideoTransformFilter.ShouldSkipFrame
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 in 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.]
O ShouldSkipFrame
método determina se o filtro deve remover um exemplo especificado.
Sintaxe
BOOL ShouldSkipFrame(
IMediaSample *pIn
);
Parâmetros
-
Pino
-
Ponteiro para a interface IMediaSample do exemplo.
Retornar valor
Retorna TRUE se o filtro deve descartar este exemplo ou FALSE se o filtro deve processar este exemplo.
Comentários
Esse método retornará TRUE se as seguintes condições forem atendidas:
- O exemplo tem carimbos de data/hora.
- O tempo médio de decodificação é de pelo menos 25% da duração do quadro.
- Atualmente, o renderizador tem pelo menos um quadro atrasado, conforme relatado por meio de mensagens de qualidade.
- Pular para o próximo quadro-chave não faria com que o quadro chegasse mais de um quadro mais cedo.
Para fins desse cálculo, o filtro registra as seguintes informações enquanto processa dados:
- O tempo médio de decodificação nos últimos 20 quadros (m_itrAvgDecode)
- O número de quadros desde o último quadro-chave (m_nFramesSinceKeyFrame)
- Uma estimativa de quantos quadros existem entre quadros-chave (m_nKeyFramePeriod)
Depois que o filtro remove um quadro, ele continua a soltar quadros até atingir o próximo quadro-chave. Se esse método retornar TRUE, ele também enviará um evento de EC_QUALITY_CHANGE para o Gerenciador de Grafo de Filtro.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|