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


ReceiveConnection

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

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

  1. Вызывает метод IPin::ReceiveConnection в нисходящем контакте ввода.
  2. В ReceiveConnection случае успешного выполнения вызывает IMemInputPin::NotifyAllocator для пин-кода ввода.

Кроме того, выходному контакту может потребоваться вызвать IMemAllocator::SetProperties , а затем удалить и повторно зафиксировать распределитель, чтобы изменить размеры буфера. Перед изменением размера буфера убедитесь, что все ожидающие выборки доставляются в старом формате.

Некоторые декодеры MPEG-2 используют этот механизм для переключения между выходными данными MPEG-1 и MPEG-2 или при изменении размера видео.