Udostępnij przez


OdbierzPołączenie

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Ten mechanizm umożliwia wyprowadzenie wyprowadzenia wyjściowego w celu zaproponowania zmiany formatu na podrzędną komunikację równorzędną, gdy nowy format wymaga większego buforu. Wyprowadzenia wyjściowego wykonuje następujące czynności:

  1. Wywołuje IPin::ReceiveConnection na podrzędnym numerze PIN danych wejściowych.
  2. Jeśli ReceiveConnection powiedzie się, wywoła IMemInputPin::NotifyAllocator na wprowadzania numeru PIN.

Ponadto może być konieczne wywołanie wyprowadzenia wyjściowego IMemAllocator::SetProperties, a następnie anulowanie i ponowne zatwierdzanie alokatora w celu zmiany rozmiarów buforu. Przed zmianą rozmiaru buforu upewnij się, że wszystkie oczekujące próbki są dostarczane w starym formacie.

Niektóre dekodatory MPEG-2 używają tego mechanizmu do przełączania między danymi wyjściowymi MPEG-1 i MPEG-2 lub jeśli rozmiar wideo ulegnie zmianie.