Método CVideoTransformFilter.ShouldSkipFrame
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El ShouldSkipFrame
método determina si el filtro debe quitar un ejemplo especificado.
BOOL ShouldSkipFrame(
IMediaSample *pIn
);
-
anclar
-
Puntero a la interfaz IMediaSample del ejemplo.
Devuelve TRUE si el filtro debe quitar este ejemplo o FALSE si el filtro debe procesar este ejemplo.
Este método devuelve TRUE si se cumplen las condiciones siguientes:
- El ejemplo tiene marcas de tiempo.
- El tiempo medio de descodificación es al menos el 25 % de la duración del fotograma.
- El representador es actualmente al menos un fotograma en tiempo de ejecución, como se notifica a través de mensajes de calidad.
- Omitir al siguiente fotograma clave no provocaría que el fotograma llegara más de un fotograma antes.
Para este cálculo, el filtro registra la siguiente información a medida que procesa los datos:
- Tiempo medio de descodificación en los últimos 20 fotogramas (m_itrAvgDecode)
- Número de fotogramas desde el último fotograma clave (m_nFramesSinceKeyFrame)
- Una estimación del número de fotogramas que hay entre fotogramas clave (m_nKeyFramePeriod)
Una vez que el filtro quita un marco, continúa colocando fotogramas hasta que llega al siguiente fotograma clave. Si este método devuelve TRUE, también envía un evento EC_QUALITY_CHANGE al Administrador de gráficos de filtros.
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|