Метод CVideoTransformFilter.ShouldSkipFrame
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод ShouldSkipFrame
определяет, должен ли фильтр удалять указанную выборку.
Синтаксис
BOOL ShouldSkipFrame(
IMediaSample *pIn
);
Параметры
-
Контактный
-
Указатель на интерфейс IMediaSample примера.
Возвращаемое значение
Возвращает значение TRUE , если фильтр должен удалить этот пример, или FALSE , если фильтр должен обработать этот пример.
Комментарии
Этот метод возвращает значение TRUE , если выполняются следующие условия:
- Пример содержит метки времени.
- Среднее время декодирования составляет не менее 25 % от длительности кадра.
- В настоящее время отрисовщик с задержкой хотя бы на один кадр, о чем сообщается в сообщениях о качестве.
- Пропуск следующего ключевого кадра не приведет к тому, что кадр будет поступать более чем на один кадр раньше.
Для целей этого вычисления фильтр записывает следующие сведения при обработке данных:
- Среднее время декодирования за последние 20 кадров (m_itrAvgDecode)
- Количество кадров с момента последнего ключевого кадра (m_nFramesSinceKeyFrame)
- Оценка количества кадров между ключевыми кадрами (m_nKeyFramePeriod)
После того как фильтр удаляет кадр, он продолжает удалять кадры, пока не достигнет следующего ключевого кадра. Если этот метод возвращает значение TRUE, он также отправляет событие EC_QUALITY_CHANGE в диспетчер фильтров графов.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|