Architektura DMO
[Funkce přidružená k této stránce DirectShow je starší funkce. Byla nahrazena MediaPlayer, MMFMediaEnginea Audio/Video Capture v Media Foundation. Tyto funkce jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal MediaPlayer, MMFMediaEngine a Audio/Video Capture v Media Foundation místo DirectShow, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
Tato část popisuje celkovou architekturu DMO.
streamů
DMO je objekt, který přebírá m vstupů a vytváří n výstupy. Vstupy a výstupy se nazývají datové proudy. Každý DMO má alespoň jeden datový proud. Streamy nejsou objekty; jsou jednoduše odkazovány na DMO číslem indexu. Počet datových proudů je v době návrhu pevný.
typy médií
Všechna data se zadává pomocí typu média, která definuje, jak interpretovat obsah dat. Například 320 x 240 24bitové video RGB je jedním typem; 44,1 kilohertz (kHz) 16bitový stereo PCM zvuk je dalším typem. Typy médií jsou popsány pomocí struktury DMO_MEDIA_TYPE. Než klient může zpracovat jakákoli data, musí nastavit typ média pro každý datový proud v objektu DMO.
Stream obvykle může přijímat celou řadu typů médií. Některé DMO podporují širší škálu typů než jiné. Rozhraní DMO definují metody pro klienta ke zjištění podporovaných typů. Například jeden DMO může podporovat video RGB v jakékoli bitové hloubkě, zatímco jiný může podporovat pouze 24bitové RGB. DMO může být také omezené na určité kombinace vstupů a výstupů. Pokud je například vstupní typ 16bitového videa, může výstupní datový proud vyžadovat stejnou bitovou hloubku. Klient může vytvořit výčet upřednostňovaných typů jednotlivých datových proudů a pak otestovat konkrétní kombinace.
vyrovnávací paměti
Ve výchozím modelu DMO klient přidělí samostatné vstupní vyrovnávací paměti a výstupní vyrovnávací paměti. Vyplní vstupní vyrovnávací paměti daty a doručí je do DMO a DMO zapíše nová data do výstupních vyrovnávacích pamětí.
Volitelně může DMO podporovat místní zpracování. Při místního zpracování zapisuje DMO výstup přímo do vstupní vyrovnávací paměti přes původní data. Místní zpracování eliminuje potřebu samostatných vyrovnávacích pamětí. Na druhou stranu mění původní data, která nemusí být pro některé aplikace přijatelná.
Výchozí (neplacený) model ukládání do vyrovnávací paměti je podporován prostřednictvím rozhraní IMediaObject. Všechny objekty dynamické správy musí toto rozhraní implementovat. Pokud DMO podporuje místní zpracování, zveřejní také IMediaObjectInPlace rozhraní. Klient zodpovídá za přidělování všech vyrovnávacích pamětí, a to jak za vstup, tak za výstup.
Související témata
-
o dmos