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


Метод IMemInputPin::Receive (strmif.h)

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

Метод Receive получает следующий пример носителя в потоке.

Синтаксис

HRESULT Receive(
  [in] IMediaSample *pSample
);

Параметры

[in] pSample

Указатель на интерфейс IMediaSample примера.

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

Возвращает значение HRESULT . Возможные значения включают значения, показанные в следующей таблице.

Код возврата Описание
S_OK
Успешно.
S_FALSE
Пример был отклонен.
E_POINTER
Аргумент указателя NULL.
VFW_E_INVALIDMEDIATYPE
Недопустимый тип носителя.
VFW_E_RUNTIME_ERROR
Произошла ошибка во время выполнения.
VFW_E_WRONG_STATE
Закрепление остановлено.

Комментарии

Этот метод является синхронным и, возможно, блокируется. Закрепление выполняет одно из следующих действий:

  • Отклоняет пример.
  • Возвращает немедленно и обрабатывает пример в рабочем потоке.
  • Обрабатывает образец перед возвратом.
В последнем случае метод может блокироваться на неопределенный срок. В этом случае метод IMemInputPin::ReceiveCanBlock возвращает S_OK.

Если закрепление использует рабочий поток для обработки примера, он содержит количество ссылок на пример. В любом случае выходной контакт не может напрямую повторно использовать этот пример. Чтобы получить новый пример, необходимо вызвать метод IMemAllocator::GetBuffer .

Если этот метод возвращает S_FALSE или код ошибки, фильтр вышестоящий должен прекратить отправку примеров, пока граф не остановит или не завершит операцию очистки. Типичные причины S_FALSE возвращаемого значения:

Требования

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

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

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

Интерфейс IMemInputPin