Informations sur les paramètres
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La méthode IMediaParamInfo::GetParamInfo retourne une structure MP_PARAMINFO qui décrit un paramètre. Cette structure contient les informations suivantes :
- Le membre mpType indique le type de données de la valeur du paramètre. Pour plus d’efficacité, tous les paramètres sont implémentés sous forme de valeurs à virgule flottante 32 bits. L’énumération MP_TYPE définit s’il faut interpréter la valeur comme un entier, une valeur à virgule flottante, une énumération booléenne ou une énumération (série d’entiers).
- Le membre mopCaps indique les courbes que ce paramètre prend en charge. Si le type de données est Boolean ou énumération, la seule courbe que le paramètre peut prendre en charge est « Jump ».
- Les membres mpdMinValue et mpdMaxValue définissent les valeurs minimales et maximales pour ce paramètre. Toutes les courbes de ce paramètre doivent se trouver dans cette plage.
- Le membre mpdNeutralValue est la valeur par défaut du paramètre .
- Le membre szLabel est le nom du paramètre, et le membre szUnitText est le nom de l’unité de mesure du paramètre. Les exemples peuvent inclure « Volume » et « Décibels », « Fréquence » et « kHz ». Les deux chaînes sont en anglais et ne sont jamais localisées. Le DMO peut fournir des versions localisées via la méthode IMediaParamInfo::GetParamText .
Les informations de chaque paramètre restent fixes pendant toute la durée de vie du DMO. Par conséquent, le client peut rechercher ces informations une seule fois, puis les mettre en cache.
Formats d’heure
Le client doit horodatage des données d’entrée, afin que le DMO puisse calculer les valeurs de paramètre correspondantes. Par défaut, les horodatages représentent des unités de 100 nanosecondes, également appelées temps de référence. Toutefois, cette unité de temps n’est pas pratique pour toutes les applications, de sorte qu’un DMO a la possibilité de prendre en charge d’autres formats de temps. Les formats d’heure sont identifiés par guid.
GUID | Description |
---|---|
GUID_TIME_REFERENCE | Heure de référence |
GUID_TIME_MUSIC | Note de parties par trimestre (PPQN) |
GUID_TIME_SAMPLES | Exemples par seconde |
Les tiers sont encouragés à définir leurs propres formats de temps en fonction des besoins. Toutefois, tous les DMO doivent prendre en charge l’heure de référence. Cela fournit une base de référence standard que tout le monde peut utiliser. Pour déterminer le nombre de formats pris en charge par un DMO, appelez la méthode IMediaParamInfo::GetNumTimeFormats . Pour énumérer les formats pris en charge, appelez la méthode IMediaParamInfo::GetSupportedTimeFormat .
Pour définir le format d’heure, appelez IMediaParams::SetTimeFormat. Cette méthode spécifie le GUID de format d’heure et les données d’heure, qui sont le nombre d’unités par cycles d’horloge. Par exemple, si le format d’heure est des exemples par seconde et que les données d’heure sont 32, une valeur d’horodatage de 10 correspond à 320 échantillons.
Rubriques connexes