Поделиться через


Метод IVideoFrameStep::Step (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод Step приводит к тому, что граф фильтра выполняет шаг вперед на указанное количество кадров.

Синтаксис

HRESULT Step(
  DWORD    dwFrames,
  IUnknown *pStepObject
);

Параметры

dwFrames

Указывает количество пропускаемых кадров. Если dwFrames имеет значение 1, граф выполняет шаг вперед на один кадр. Если dwFrames является числом n больше 1, граф пропускает n – 1 кадры и показывает n-йкадр.

pStepObject

Указатель на интерфейс фильтра, который будет управлять операцией пошагового выполнения, или значение NULL. Укажите значение NULL для выполнения пошагового выполнения кадра с помощью фильтра отрисовщика в графе. Если значение не равно NULL, объект должен реализовать интерфейс IKsPropertySet и поддерживать свойство AM_KSPROPSETID_FrameStep. (Дополнительные сведения см. в разделе Набор свойств пошагового выполнения кадра.) Если граф содержит настраиваемый фильтр, реализующий пошаговое выполнение кадра, pStepObject может указать указатель на этот фильтр.

Возвращаемое значение

Возвращает HRESULT. Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
VFW_E_FRAME_STEP_UNSUPPORTED
Пошаговое выполнение кадра не поддерживается.
E_INVALIDARG
Недопустимый параметр pStepObject .

Комментарии

После завершения операции шага этот метод отправляет уведомление о событии EC_STEP_COMPLETE диспетчеру графов фильтров, который передаст его в цикл событий приложения и присвоит графу фильтра приостановленное состояние.

Шаг кадров в режиме реального времени. Это означает, что, если фильм воспроизводится со скоростью 30 кадров в секунду, вызов IVideoFrameStep::Step с dwFrames, равным 60, займет 2 секунды. Все методы в этом интерфейсе являются асинхронными, поэтому управление немедленно возвращается в приложение.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Коды ошибок и успешного выполнения

Интерфейс IVideoFrameStep