Ukázky videa
Ukázkový objekt videa je specializovaná implementace rozhraní MMFSample pro použití s Enhanced Video Renderer (EVR). Chcete-li vytvořit instanci tohoto objektu, zavolejte MFCreateVideoSampleFromSurface funkce. Funkce vezme ukazatel na plochu Direct3D a vrátí ukazatel na IMFSample rozhraní. Následující typy objektů by měly přidělovat ukázky pomocí této funkce:
Vlastní EVR prezentéry Prezentující přidělí ukázky videa a pošle je do metody IMFTransform::ProcessOutput. Další informace viz Jak napsat prezentér EVR.
Dekodéry videa, které podporují akceleraci videa. Další informace naleznete v tématu Podpora DXVA 2.0 v Media Foundation.
Ukázkový objekt videa implementuje následující rozhraní:
Pokud pUnkSurface parametr MFCreateVideoSampleFromSurface neníNULL, výsledný vzorek videa obsahuje jednu vyrovnávací paměť média, která zapouzdřuje plochu Direct3D. Tento objekt vyrovnávací paměti má omezené funkce:
Metoda IMFMediaBuffer::Lock vrátí E_NOTIMPL.
Vyrovnávací paměť neimplementuje rozhraní IMF2DBuffer.
Jediným způsobem, jak získat přístup k povrchu z vyrovnávací paměti, je volat IMFGetService::GetService, pomocí identifikátoru služby MR_BUFFER_SERVICE.
Pokud je parametr pUnkSurfaceNULL, vytvoří se ukázka videa s nulovým počtem vyrovnávacích pamětí médií. Chcete-li přidat do vzorku vyrovnávací paměť, postupujte takto:
Vytvořte plochu Direct3D.
Vytvořte vyrovnávací paměť povrchu voláním MFCreateDXSurfaceBuffer. Další informace naleznete v vyrovnávací paměti povrchu DirectX.
Přidejte vyrovnávací paměť do ukázky voláním IMFSample::AddBuffer.
Tento přístup použijte, pokud potřebujete přístup k paměti povrchu prostřednictvím rozhraní IMF2DBuffer.
Související témata