Метод CBaseOutputPin.Deliver
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод Deliver
доставляет пример носителя в подключенный входной контакт.
Синтаксис
virtual HRESULT Deliver(
IMediaSample *pSample
);
Параметры
-
pSample
-
Указатель на интерфейс IMediaSample примера.
Возвращаемое значение
Возвращает значение HRESULT . Возможные значения включают значения, перечисленные в следующей таблице.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Закрепление не подключено. |
Комментарии
Этот метод вызывает метод IMemInputPin::Receive для пин-кода ввода. Получение может блокироваться, если метод IMemInputPin::ReceiveCanBlock возвращает S_OK.
Отпустите пример после вызова этого метода. Входной контакт может содержать количество ссылок в образце, поэтому не используйте его повторно. Всегда вызывайте метод CBaseOutputPin::GetDeliveryBuffer , чтобы получить новый пример.
Перед вызовом этого метода удерживайте критический раздел фильтра. В противном случае контакт может быть отключен во время вызова метода. Если фильтр использует рабочий поток для доставки примеров, удерживайте критический раздел, когда фильтр будет готов к доставке примера. В противном случае можно сохранить критический раздел в методе IMemInputPin::Receive фильтра, где фильтр обрабатывает примеры.
Рабочие потоки могут создать потенциальную взаимоблокировку. Когда поток содержит критически важный раздел, он может ожидать изменения состояния в фильтре. В то же время изменение состояния может ожидать завершения потока. Чтобы избежать этого, код изменения состояния должен сигнализировать о событии, которое завершает поток, а затем ждать завершения потока.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|