Partager via


Installation et inscription de l’encodeur

Le fichier INF d’un pilote avec un filtre d’encodeur doit contenir des entrées qui définissent les éléments suivants :

  • Composants de capture de streaming de noyau supplémentaires

  • Quelle interface COM KsProxy doit exposer

  • Valeurs de métadonnées qui décrivent les fonctionnalités du filtre d’encodeur

  • Catégorie de diffusion en continu du noyau du filtre

Composants de capture de streaming de noyau supplémentaires

Le fichier INF utilisé pour installer le pilote d’un périphérique encodeur doit référencer ks.inf et kscaptur.inf dans sa section [DefaultInstall] en tant que pilotes de capture, car ces fichiers ajoutent la prise en charge nécessaire pour les composants d’encodeur. Par exemple :

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

Interface COM que KsProxy doit exposer

Dans la section AddReg du fichier INF de votre pilote, spécifiez l’un des trois GUID suivants pour indiquer l’interface COM que le plug-in KsProxy (encapi.dll) doit exposer aux clients. L’interface COM est déterminée par la prise en charge de la propriété que vous avez implémentée dans le filtre d’encodeur :

GUID d’interface Nom Description

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

CLSID_IVideoEncoderProxy

Spécifiez ce GUID pour que KsProxy expose l’interface COM IVideoEncoder (pour une compatibilité descendante avec l’ancienne génération de prise en charge de l’encodeur fournie par Microsoft). Les clients doivent dériver cette interface de l’interface COM IEncoderAPI .

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

CLSID_ICodecAPIProxy

Spécifiez ce GUID pour que KsProxy expose l’interface COM ICodecAPI (pour les appareils d’encodage non vidéo tels que les encodeurs audio uniquement).

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

CLSID_IVideoEncoderCodecAPIProxy

Spécifiez ce GUID pour que KsProxy expose les interfaces COM IVideoEncoder et ICodecAPI (pour la compatibilité descendante et ascendante).

Par exemple :

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

Cela obligerait KsProxy à exposer uniquement l’interface COM IVideoEncoder (CLSID_IVideoEncoderProxy).

Ces interfaces COM sont documentées dans la section DirectShow des Kits de développement logiciel (SDK) DirectX 9 et Windows pour Windows XP avec SP1 et versions ultérieures.

Valeurs de métadonnées qui publient les fonctionnalités du filtre d’encodeur

Vous pouvez spécifier des valeurs de métadonnées dans la zone Paramètres de l’appareil\Fonctionnalités du Registre dans le fichier INF de l’encodeur. Les applications peuvent utiliser ces valeurs de métadonnées pour déterminer les fonctionnalités à implémenter ou à exposer à l’utilisateur.

Par exemple :

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

Cela créerait un élément de métadonnées « {12345678-1234-1234-1234-12345678abcd} = guid1 » dans la zone Paramètres de l’appareil\Fonctionnalités des paramètres de Registre de l’encodeur. La ligne vide est nécessaire pour créer la clé de Registre si elle n’existe pas déjà.

Un filtre d’encodeur peut spécifier ces métadonnées statiques dans son fichier INF pour une utilisation par les applications. Par exemple, Windows XP Édition Media Center recherche les encodeurs qui indiquent qu’ils sont conformes à Windows XP Media Center Edition.

Catégorie de diffusion en continu du noyau du filtre

Les filtres de diffusion en continu du noyau doivent spécifier la catégorie de diffusion en continu du noyau à laquelle ils appartiennent. Microsoft définit des GUID pour les catégories courantes, notamment les filtres d’encodeur et les filtres de multiplexeur (mux).

Les filtres indiquent leurs catégories respectives en spécifiant un ou plusieurs des GUID suivants dans une directive AddInterface de la section du filtre du fichier INF de son minidriver :

GUID de catégorie de diffusion en continu du noyau Nom Description

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

KSCATEGORY_ENCODER

Spécifiez ce GUID pour les filtres d’encodeur.

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

KSCATEGORY_MULTIPLEXER

Spécifiez ce GUID pour les filtres mux.

Pour inscrire un filtre d’encodeur, spécifiez le GUID KSCATEGORY_ENCODER dans le DDInstall de votre pilote. Interface Section du fichier INF. Par exemple :

[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"

Note: Le GUID spécifié pour KSNAME_Filter doit correspondre au membre ReferenceGuid que vous avez spécifié dans la structure KSFILTER_DESCRIPTOR qui décrit votre filtre.