Implementace a podpora kodéru

V systému Windows XP Service Pack 1 definovala společnost Microsoft tři sady vlastností pro streamování jádra a jedno číslování v ksmedia.h pro podporu video-only kódovacích zařízení. Každá sada vlastností obsahuje jednu vlastnost. Jinými slovy, každá vlastnost obdrží vlastní sadu atributů. Pokud váš ovladač provádí volání get-vlastnosti nebo set-vlastnosti, zadejte GUID sady vlastností (jak je definováno v ksmedia.h) v členu Set struktury KSPROPERTY a zadejte nulu v členu Id při nastavování volání.

Sada vlastností Popis
ENCAPIPARAM_BITRATE

Implementujte tuto sadu vlastností, která určuje bitové rychlosti kódování podporované zařízením kodéru. Další podrobnosti najdete v tématu Příklady kódu kodéru .

ENCAPIPARAM_BITRATE_MODE

Implementujte tuto vlastnost, která určuje režimy kódování podporované zařízením. Tato sada vlastností používá VIDEOENCODER_BITRATE_MODE výčtu k určení podporovaných režimů. Další podrobnosti najdete v tématu Příklady kódu kodéru .

ENCAPIPARAM_PEAK_BITRATE

Implementujte tuto vlastnost, která určuje maximální přenosovou rychlost kódování zařízení.

Klienti přistupují k těmto vlastnostem odvozením rozhraní COM IVideoEncoder z rozhraní COM IEncoderAPI (popsaného v dokumentaci Windows Software Development Kit (SDK)).

Minidriver musí zadat výchozí hodnoty pro každou z vlastností ENCAPIPARAM_Xxx . Téma Příklady kódu kodéru ukazuje, jak zadat výchozí hodnoty vlastností. Během vývoje a ladění filtru kodéru lze aktuální stránku vlastností aktivovat z minidriveru podporujícího sadu vlastností ENCAPIPARAM_BITRATE.

V directXu 9.0 bylo definováno šest dalších sad vlastností a jedna sada událostí v ksmedia.h , aby poskytovala lepší podporu pro širší škálu kodérů, včetně kodérů jen pro zvuk. Stejně jako u vlastností ENCAPIPARAM_Xxx obdrží každá vlastnost vlastní sadu vlastností:

Sada vlastností Popis
CODECAPI_VIDEO_ENCODER

Pokud vaše zařízení podporuje kódování video streamů (včetně pomocných zvuků, jako je televizní zvuk), implementujte podporu této sady vlastností.

CODECAPI_AUDIO_ENCODER

Pokud je vaše zařízení kodérem jen pro zvuk, implementujte podporu této sady vlastností místo CODECAPI_VIDEO_ENCODER.

CODECAPI_SETALLDEFAULTS

Implementujte tuto vlastnost nastavenou tak, aby se resetovaly všechna interní nastavení kodéru zařízení, jako je kódování přenosové rychlosti a režim kódování, na výchozí hodnoty.

CODECAPI_ALLSETTINGS

Implementujte tuto vlastnost nastavenou tak, aby komunikovaly aktuální nastavení zařízení kodéru. Tato sada vlastností se používá pro komunikaci s klienty a na klienty.

CODECAPI_SUPPORTSEVENTS

Pokud vaše zařízení podporuje události z uživatelského režimu– například změna režimu kódování, přenosové rychlosti nebo jiného nastavení – pak tuto sadu vlastností implementujte. Pokud implementujete tuto sadu vlastností, musíte také implementovat podporu pro CODECAPI_CHANGELISTS událost.

CODECAPI_CURRENTCHANGELIST

Implementujte tuto vlastnost, která určuje, které parametry kodéru byly změněny v předchozím volání, aby se nastavila jedna nebo více vlastností kodéru.

Sada událostí Popis

CODECAPI_CHANGELISTS

Pokud zařízení podporuje reakci na události uživatelského režimu prostřednictvím sady vlastností CODECAPI_SUPPORTSEVENTS, implementujte tuto sadu událostí tak, aby vrátila seznam nastavení kodéru, která se změnila v důsledku předchozího volání vlastnosti Set klienta na CODECAPI_SETALLDEFAULTS nebo CODECAPI_ALLSETTINGS.

Klienti k těmto vlastnostem přistupují prostřednictvím rozhraní COM ICodecAPI (popsaného v dokumentaci sady Windows SDK). Další informace o rozhraních COM, včetně určení rozhraní KsProxy, najdete v tématu Instalace a registrace kodéru .

Minidriver by měl implementovat podporu základních dotazů get-property. Téma Příklady kódu kodéru ukazují, jak podporovat dotazy get-property.

Při vývoji filtru kodéru přesuňte funkce kódování do samostatného filtru od filtru zachycení videa. Definujte vlastní privátní prostředky, aby tvůrci grafů mohli správně připojit kodér a zachytávací filtry. Pokud váš hardware dokáže přebírat kontrolu nad nekódovaným obsahem na sběrnici, můžete také zpřístupnit veřejná média. Pokud implementujete veřejná i soukromá média, nejdříve uveďte soukromá média, protože to zkracuje dobu potřebnou na vytvoření grafu, aby bylo možné vyhledat správný filtr při vytváření grafu filtru.

Další informace o použití médií a více instancí filtru (v samostatných grafech filtrů) naleznete v tématu Média a Kategorie.