Udostępnij przez


Tryb odtwarzania bez renderowania maszyny wirtualnej (niestandardowy Allocator-Presenters)

[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.]

W trybie odtwarzania bez renderowania maszyna wirtualna nie wykonuje renderowania. Zamiast tego używa niestandardowego prezentera alokatora dostarczonego przez aplikację. Ten tryb jest przydatny w przypadku gier i innych typów aplikacji, które mają zaawansowane efekty wideo. Tryb odtwarzania bez renderowania umożliwia aplikacjom tworzenie i sterowanie własną powierzchnią DirectDraw (VMR-7) lub powierzchnią Direct3D (VMR-9) oraz uzyskiwanie dostępu do bitów wideo w czasie prezentacji.

W trybie bez renderowania maszyna VMR-9 nie ładuje automatycznie składnika miksera.

W trybie odtwarzania bez renderowania aplikacja wykonuje następujące zadania:

  • Zarządza oknem odtwarzania.
  • Przydziela obiekt DirectDraw lub Direct3D oraz końcowy bufor ramki.
  • Powiadamia resztę systemu odtwarzania używanego obiektu.
  • Przedstawia bufor ramki w odpowiednim czasie.
  • Obsługuje wszystkie zmiany w trybie rozwiązywania, monitoruj zmiany i straty powierzchni. Musi on doradzać pozostałej części systemu odtwarzania tych zdarzeń.

Maszyna wirtualna wykonuje następujące czynności:

  • Obsługuje cały czas związany z prezentowaniem ramki wideo.
  • Dostarcza informacje o kontroli jakości aplikacji i pozostałej części systemu odtwarzania.
  • Przedstawia spójny interfejs do nadrzędnych składników systemu odtwarzania, które nie są świadomi, że aplikacja udostępnia alokację buforu ramki i wykonuje renderowanie.
  • Udostępnia wszelkie mieszanie strumieni wideo, które mogą być wymagane przed renderowaniem.

Ponieważ deinterlacing jest wykonywany przez mikser, alokator-prezenter zawsze otrzymał zdeinterlaced ramki. Aby uzyskać więcej informacji, zobacz Setting Deinterlace Preferences.

Aby uzyskać więcej informacji na temat udostępniania niestandardowego prezentera alokatora, zobacz następujące tematy: