Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le fichier INF d’un pilote avec un filtre d’encodeur doit contenir des entrées qui définissent les éléments suivants :
Composants supplémentaires de capture de streaming du noyau
Quelle interface COM KsProxy doit exposer
Valeurs de métadonnées qui décrivent les fonctionnalités du filtre d’encodeur
Catégorie de flux en continu du noyau du filtre
Composants de capture de flux noyau supplémentaires
Le fichier INF utilisé pour installer le pilote d’un périphérique d’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
Quelle interface COM KsProxy doit exposer
Dans la section AddReg du fichier INF de votre pilote, spécifiez l’une des trois GUID suivantes 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 des propriétés que vous avez implémentées dans le filtre d’encodeur.
| GUID de l’interface | Nom | Descriptif |
|---|---|---|
{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 périphériques 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 vers l’avant). |
Par exemple:
[Your driver's AddReg section]
HKR,Interfaces\{B43C4EEC-8C32-4791-9102-508ADA5EE8E7},,,
Cela entraînerait l’exposition de KsProxy 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 quelles 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 du 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 à utiliser par les applications. Par exemple, Windows XP Media Center Edition recherche les encodeurs qui indiquent qu’ils sont conformes à Windows XP Media Center Edition.
Catégorie de streaming 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 multiplexeur (mux).
Les filtres indiquent leurs catégories respectives en spécifiant un ou plusieurs GUID suivants dans une directive AddInterface de la section du filtre du fichier INF de son minidriver :
| GUID de catégorie de streaming du noyau | Nom | Descriptif |
|---|---|---|
{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 fichier INF de la section DDInstall.Interface de votre pilote. 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.