Partager via


IAMVideoCompression ::GetInfo, méthode (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La 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 GetInfo méthode récupère des informations sur les propriétés de compression du filtre, notamment les fonctionnalités et les valeurs par défaut.

Syntaxe

HRESULT GetInfo(
  [out]     LPWSTR pszVersion,
  [in, out] int    *pcbVersion,
  [out]     LPWSTR pszDescription,
  [in, out] int    *pcbDescription,
  [out]     long   *pDefaultKeyFrameRate,
  [out]     long   *pDefaultPFramesPerKey,
  [out]     double *pDefaultQuality,
  [out]     long   *pCapabilities
);

Paramètres

[out] pszVersion

Pointeur vers une mémoire tampon qui reçoit une chaîne de version, telle que « Version 2.1.0 ».

[in, out] pcbVersion

Reçoit la taille de la chaîne de version, en octets.

[out] pszDescription

Pointeur vers une mémoire tampon qui reçoit une chaîne de description, telle que « Mon compresseur vidéo ».

[in, out] pcbDescription

Reçoit la taille de la chaîne de description, en octets.

[out] pDefaultKeyFrameRate

Reçoit la fréquence d’images de clé par défaut.

[out] pDefaultPFramesPerKey

Reçoit le taux par défaut d’images prédites (P) par image clé.

[out] pDefaultQuality

Reçoit la qualité par défaut.

[out] pCapabilities

Reçoit les fonctionnalités de compression, sous la forme d’une combinaison au niveau du bit de zéro ou plusieurs indicateurs CompressionCaps .

Valeur retournée

Retourne une valeur HRESULT .

Remarques

Tous les paramètres répertoriés peuvent avoir la valeur NULL, auquel cas la méthode ignore ce paramètre.

L’application doit allouer les mémoires tampons pour les chaînes de version et de description. Pour déterminer la taille requise des mémoires tampons, appelez cette méthode avec null pour les paramètres pszVersion et pszDescription . Utilisez les valeurs retournées dans pcbVersion et pcbDescription pour allouer les mémoires tampons, puis appelez à nouveau la méthode, comme indiqué dans le code suivant :

C++
// Get the size of the version and description strings, in bytes.
int cbVersion, cbDesc; 
hr = pCompress->GetInfo(NULL, &cbVersion, NULL, &cbDesc, 
    NULL, NULL, NULL, NULL);
if (SUCCEEDED(hr))
{
    // Allocate the buffers.
    WCHAR *pszVersion = new WCHAR[cbVersion / sizeof(WCHAR)];  
    WCHAR *pszDesc = new WCHAR[cbDesc / sizeof(WCHAR)];

    // Now query for the strings.
    hr = pCompress->GetInfo(pszVersion, &cbVersion, pszDesc, &cbDesc, 
        NULL, NULL, NULL, NULL);
    }
    delete [] pszVersion;
    delete [] pszDesc;
}
Notez que les chaînes sont des chaînes à caractères larges et que les tailles retournées sont en octets, et non en nombre de caractères. En outre, une ou les deux chaînes peuvent être de longueur nulle.

Le paramètre pCapabilities reçoit un ensemble d’indicateurs indiquant quelles propriétés de compression sont prises en charge et, par conséquent, quelles méthodes IAMVideoCompression sont prises en charge. Par exemple, si l’indicateur CompressionCaps_CanKeyFrame est retourné, le filtre prend en charge les méthodes IAMVideoCompression ::get_KeyFrameRate et IAMVideoCompression ::p ut_KeyFrameRate .

Les paramètres restants reçoivent les valeurs par défaut pour les propriétés de compression. Pour les propriétés non prises en charge (telles que déterminées par les indicateurs retournés dans pCapabilities), vous devez ignorer la valeur par défaut correspondante, car elle peut ne pas être correcte ou significative.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IAMVideoCompression, interface