Метод CDynamicOutputPin.StartUsingOutputPin
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод StartUsingOutputPin
получает доступ к закреплению для операции потоковой передачи.
Синтаксис
virtual HRESULT StartUsingOutputPin();
Параметры
Этот метод не имеет параметров.
Возвращаемое значение
Возвращает значение HRESULT . Возможные значения включают значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Непредвиденная ошибка. |
|
Фильтр был остановлен, или контакт начал очистку. |
Комментарии
Вызовите этот метод перед вызовом методов, которые доставляют данные в подключенный входной контакт или изменяют тип носителя подключения. Например, это правило применяется к следующим методам:
- CDynamicOutputPin::ChangeOutputFormat
- CDynamicOutputPin::ChangeMediaType
- CDynamicOutputPin::D ynamicReconnect
- CBaseOutputPin::D eliver
- CBaseOutputPin::D eliverEndOfStream
- CBaseOutputPin::D eliverNewSegment
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
Затем вызовите метод CDynamicOutputPin::StopUsingOutputPin , чтобы освободить доступ к закреплению.
Если закрепление заблокировано, StartUsingOutputPin
ожидает разблокировки контакта. Если фильтр останавливается во время ожидания метода, метод немедленно возвращает VFW_E_STATE_CHANGED. Закрепление поддерживает подсчет количества вызовов StartUsingOutputPin
без соответствующего вызова StopUsingOutputPin. Если другой поток пытается заблокировать закрепление, пока это число не равно нулю, он устанавливает состояние блокировки "ожидание". Закрепление блокируется после завершения всех операций потоковой передачи в последнем вызове StopUsingOutputPin.
Не удерживайте критический раздел CDynamicOutputPin::m_BlockStateLock при вызове этого метода. В противном случае, если закрепление заблокировано, он никогда не сможет разблокироваться, что приведет к взаимоблокировки.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|