Delen via


Installatie en registratie van encoders

Het INF-bestand voor een stuurprogramma met een encoderfilter moet vermeldingen bevatten die het volgende definiëren:

  • Aanvullende componenten voor kernel streaming-captures

  • Welke COM-interface KsProxy moet beschikbaar maken

  • Metagegevenswaarden die de mogelijkheden van het encoderfilter beschrijven

  • De kernel-streamingcategorie van het filter

Aanvullende Kernel Streaming Capture-onderdelen

Het INF-bestand dat wordt gebruikt om het stuurprogramma voor een encoderapparaat te installeren, moet verwijzen naar ks.inf en kscaptur.inf in de sectie [DefaultInstall] als opnamestuurprogramma's, omdat deze bestanden de benodigde ondersteuning voor encoderonderdelen toevoegen. Voorbeeld:

[DefaultInstall]
include=ks.inf,kscaptur.inf
needs=[Your driver's DDInstall section],KS.Registration,KSCAPTUR.Registration.NT

Welke COM-interface KsProxy moet beschikbaar maken

Geef in de sectie AddReg van het INF-bestand van uw stuurprogramma een van de volgende drie GUID's op om de COM-interface aan te geven dat de KsProxy-invoegtoepassing (encapi.dll) beschikbaar moet worden gesteld aan clients. De COM-interface wordt bepaald door de eigenschapsondersteuning die u hebt geïmplementeerd in het encoderfilter:

Interface GUID Naam Beschrijving

{B43C4EEC-8C32-4791-9102-508ADA5EE8E7}

CLSID_IVideoEncoderProxy

Geef deze GUID op om ervoor te zorgen dat KsProxy de COM-interface van IVideoEncoder beschikbaar maakt (voor achterwaartse compatibiliteit met de oudere generatie encoderondersteuning van Microsoft). Clients moeten deze interface afleiden van de IEncoderAPI COM-interface.

{7FF0997A-1999-4286-A73C-622B8814E7EB}

CLSID_ICodecAPIProxy

Geef deze GUID op om ervoor te zorgen dat KsProxy de ICodecAPI COM-interface beschikbaar maakt (voor niet-videocoderingsapparaten zoals coderingsprogramma's voor alleen-audio).

{B05DABD9-56E5-4FDC-AFA4-8A47E91F1C9C}

CLSID_IVideoEncoderCodecAPIProxy

Geef deze GUID op om ervoor te zorgen dat KsProxy zowel de IVideoEncoder - als ICodecAPI COM-interfaces (voor compatibiliteit met eerdere en volgende versies) beschikbaar maakt.

Voorbeeld:

[Your driver's AddReg section]
HKR,Interfaces\{B43C4EEC-8C32-4791-9102-508ADA5EE8E7},,,

Dit zou ertoe leiden dat KsProxy alleen de COM-interface van IVideoEncoder (CLSID_IVideoEncoderProxy) beschikbaar maakt.

Deze COM-interfaces worden beschreven in de sectie DirectShow van de DirectX 9- en Windows-SDK's voor Windows XP met SP1 en hoger.

Metagegevenswaarden die de mogelijkheden van het encoderfilter adverteren

U kunt metagegevenswaarden opgeven in het gebied Apparaatparameters\Capabilities van het register in het INF-bestand van de encoder. Toepassingen kunnen deze metagegevenswaarden gebruiken om te bepalen welke functionaliteit moet worden geïmplementeerd of beschikbaar wordt gesteld aan de gebruiker.

Voorbeeld:

[Your driver's AddReg section]
HKR,Capabilities,,,
HKR,Capabilities,"{12345678-1234-1234-1234-12345678abcd}",,guid1

Hiermee wordt een metagegevensitem {12345678-1234-1234-1234-12345678abcd} = guid1 gemaakt in het gebied Apparaatparameters\Capabilities van de registerinstellingen van de encoder. De lege lijn is nodig om de registersleutel te maken als deze nog niet bestaat.

Een encoderfilter kan dergelijke statische metagegevens in het INF-bestand opgeven voor gebruik door toepassingen. Windows XP Media Center Edition controleert bijvoorbeeld op encoders die aangeven dat ze compatibel zijn met Windows XP Media Center Edition.

De kernelstreamingcategorie van het filter

Kernelstreamingfilters moeten de kernelstreamingcategorie opgeven waartoe ze behoren. Microsoft definieert GUID's voor algemene categorieën, waaronder encoderfilters en multiplexer-filters (mux).

Filters geven hun respectieve categorieën aan door een of meer van de volgende GUID's op te geven in een AddInterface-instructie van het filtergedeelte van het INF-bestand van de minidriver:

GUID van kernel-streamingcategorie Naam Beschrijving

{19689BF6-C384-48FD-AD51-90E58C79F70B}

KSCATEGORY_ENCODER

Geef deze GUID op voor encoderfilters.

{7A5DE1D3-01A1-452C-B481-4FA2B96271E8}

KSCATEGORY_MULTIPLEXER

Geef deze GUID op voor mux-filters.

Als u een encoderfilter wilt registreren, geeft u de KSCATEGORY_ENCODER GUID op in DDInstall van uw stuurprogramma. Interface Sectie INF-bestand. Voorbeeld:

[Your Driver's DDInstall.Interface section]
AddInterface=%KSCATEGORY_ENCODER%,%KSNAME_Filter%,MyEncoderDevice.AddInterface

[MyEncoderDevice.AddInterface]
AddReg=MyEncoderDevice.AddReg

[MyEncoderDevice.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%MyEncoderDeviceFriendlyName%

[Strings]
KSCATEGORY_ENCODER="{19689BF6-C384-48FD-AD51-90E58C79F70B}"
KSNAME_Filter="{9B365890-165F-11D0-A195-0020AFD156E4}"
KSProxy.CLSID="17CCA71B-ECD7-11D0-B908-00A0C9223196"
MyEncoderDeviceFriendlyName="My Encoder Device"

Notitie: De GUID die is opgegeven voor KSNAME_Filter moet overeenkomen met het ReferenceGuid-lid dat u hebt opgegeven in de KSFILTER_DESCRIPTOR-structuur die uw filter beschrijft.