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.
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans 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 capture audio/vidéo dans Media Foundation au lieu de directShow, lorsque cela est 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 une 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 en tant qu’entier, valeur à virgule flottante, booléen ou énumération (série d’entiers).
- Le membre mopCaps indique quelles courbes ce paramètre prend en charge. Si le type de données est booléen 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 pour le paramètre. Les exemples peuvent inclure « Volume » et « Decibels », ou « Frequency » et « kHz ». Les deux chaînes sont anglaises 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 tout au long de la durée de vie du DMO. Par conséquent, le client peut interroger ces informations une fois, puis le mettre en cache.
formats de temps
Le client doit horodatager les 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 heure de référence. Cette unité de temps n’est pas pratique pour chaque application. Toutefois, un DMO a la possibilité de prendre en charge d’autres formats de temps. Les formats de temps sont identifiés par GUID.
| GUID | Description |
|---|---|
| GUID_TIME_REFERENCE | Heure de référence |
| GUID_TIME_MUSIC | Parties par note de 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, toutes 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 de temps 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 de temps , qui est le nombre d’unités par graduation d’horloge. Par exemple, si le format d’heure est des échantillons par seconde et que les données d’heure sont 32, une valeur d’horodatage de 10 correspond à 320 échantillons.
Rubriques connexes