Partager via


structure VIDEO_STREAM_CONFIG_CAPS (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 structure VIDEO_STREAM_CONFIG_CAPS décrit une gamme de formats vidéo. Les filtres de compression vidéo et de capture vidéo utilisent cette structure pour décrire les formats qu’ils peuvent produire.

Note La plupart de cette structure est déconseillée, à l’exception des membres de structure suivants :
  • guid
  • VideoStandard
  • MinFrameInterval
  • MaxFrameInterval
Les applications peuvent utiliser MinFrameInterval et MaxFrameInterval pour obtenir la plage de fréquences d’images prises en charge à partir d’un appareil de capture vidéo. Les applications doivent éviter d’utiliser les autres membres de cette structure. Utilisez plutôt la structure AM_MEDIA_TYPE retournée par la méthode IAMStreamConfig::GetFormat .
 

Syntaxe

typedef struct _VIDEO_STREAM_CONFIG_CAPS {
  GUID     guid;
  ULONG    VideoStandard;
  SIZE     InputSize;
  SIZE     MinCroppingSize;
  SIZE     MaxCroppingSize;
  int      CropGranularityX;
  int      CropGranularityY;
  int      CropAlignX;
  int      CropAlignY;
  SIZE     MinOutputSize;
  SIZE     MaxOutputSize;
  int      OutputGranularityX;
  int      OutputGranularityY;
  int      StretchTapsX;
  int      StretchTapsY;
  int      ShrinkTapsX;
  int      ShrinkTapsY;
  LONGLONG MinFrameInterval;
  LONGLONG MaxFrameInterval;
  LONG     MinBitsPerSecond;
  LONG     MaxBitsPerSecond;
} VIDEO_STREAM_CONFIG_CAPS;

Membres

guid

GUID qui identifie le type de format. Par exemple, FORMAT_VideoInfo ou FORMAT_VideoInfo2. Pour plus d’informations, consultez le membre formattype de la structure AM_MEDIA_TYPE .

VideoStandard

Standard vidéo analogique pris en charge. La valeur est une combinaison au niveau du bit d’indicateurs du type d’énumération AnalogVideoStandard , ou zéro.

InputSize

Taille native du signal vidéo entrant. Pour un compresseur, la taille est prise à partir de la broche d’entrée. Pour un filtre de capture, la taille est le plus grand signal que le filtre peut numériser, chaque pixel restant unique.

Note Déconseillée.
 

MinCroppingSize

Plus petit rectangle source autorisé. Le rectangle source est défini dans le membre rcSource de la structure VIDEOINFOHEADER ou VIDEOINFOHEADER2 .

Note Déconseillée.
 

MaxCroppingSize

Plus grand rectangle source autorisé.

Note Déconseillée.
 

CropGranularityX

Granularité horizontale du rectangle source. Cette valeur spécifie les incréments valides entre MinCroppingSize et MaxCroppingSize.

Note Déconseillée.
 

CropGranularityY

Granularité verticale du rectangle source. Cette valeur spécifie les incréments valides entre MinCroppingSize et MaxCroppingSize.

Note Déconseillée.
 

CropAlignX

Alignement horizontal requis du rectangle source.

Note Déconseillée.
 

CropAlignY

Alignement vertical requis du rectangle source.

Note Déconseillée.
 

MinOutputSize

Taille de sortie minimale.

Note Déconseillée.
 

MaxOutputSize

Taille de sortie maximale.

Note Déconseillée.
 

OutputGranularityX

Granularité de la largeur de sortie. Cette valeur spécifie les incréments valides entre MinOutputSize et MaxOutputSize.

Note Déconseillée.
 

OutputGranularityY

Granularité de la hauteur de sortie. Cette valeur spécifie les incréments valides entre MinOutputSize et MaxOutputSize.

Note Déconseillée.
 

StretchTapsX

Indique dans quelle mesure le filtre peut étirer l’image horizontalement.

Note Déconseillée.
 

StretchTapsY

Indique comment le filtre peut étirer l’image verticalement.

Note Déconseillée.
 

ShrinkTapsX

Indique dans quelle mesure le filtre peut réduire l’image horizontalement.

Note Déconseillée.
 

ShrinkTapsY

Indique comment le filtre peut réduire l’image verticalement.

Note Déconseillée.
 
Les quatre membres de structure précédents utilisent les valeurs suivantes :
Valeur Signification
0
Ne prend pas en charge l’étirement/réduction.
1
Utilise le doublement des pixels (étirement) ou élimine les pixels (réduction)
2
Utilise l’interpolation (2 clics)
3 et supérieur
Utilise l’interpolation (>2 clics)

MinFrameInterval

Durée minimale de l’image, en unités de 100 nanosecondes. Cette valeur s’applique uniquement aux filtres de capture.

MaxFrameInterval

Durée maximale de l’image, en unités de 100 nanosecondes. Cette valeur s’applique uniquement aux filtres de capture.

MinBitsPerSecond

Débit de données minimal que cette broche peut produire.

Note Déconseillée.
 

MaxBitsPerSecond

Débit de données maximal que cette broche peut produire.

Note Déconseillée.
 

Notes

La méthode IAMStreamConfig::GetStreamCaps retourne cette structure. Une application peut utiliser ces informations pour modifier le format de sortie sur un filtre de compression vidéo ou de capture vidéo.

Par exemple, supposons que le filtre retourne les valeurs suivantes pour le rectangle source :

  • MinCroppingSize = (160, 120)
  • MaxCroppingSize = (320, 240)
  • CropGranularityX = 4
  • CropGranularityY = 8
  • CropAlignX = 2
  • CropAlignY = 4
Ces nombres définissent l’ensemble de rectangles valides pour le membre rcSource de la structure VIDEOINFOHEADER ou VIDEOINFOHEADER2 . Dans cet exemple, le rectangle source minimal est de 160 pixels de large x 120 pixels de haut. La largeur peut être augmentée par étapes de 4 pixels, jusqu’à un maximum de 320. La hauteur peut être augmentée par étapes de 8 pixels, jusqu’à un maximum de 240. En d’autres termes, les largeurs valides sont 160, 164, 168 ... 320; et les hauteurs valides sont 120, 128, 136 ... 240.

Les membres CropAlignX et CropAlignY définissent l’emplacement où le coin supérieur gauche du rectangle source peut se trouver. Par exemple, les rectangles suivants sont valides, compte tenu des valeurs précédentes :

  • (0, 0, 160, 120)
  • (2, 0, 162, 120)
  • (2, 8, 162, 128)
De la même façon, les membres MinOutputSize, MaxOutputSize, OutputGranularityX et OutputGranularityY définissent les valeurs prises en charge pour les membres biWidth et biHeight de la structure BITMAPINFOHEADER .

Pour les filtres de capture, les membres MinFrameInterval et MaxFrameInterval définissent la durée minimale et maximale de chaque image, comme indiqué dans le membre AvgTimePerFrame de la structure VIDEOINFOHEADER ou VIDEOINFOHEADER2 . Le filtre peut ne pas prendre en charge toutes les fréquences d’images comprises entre ces deux valeurs. La méthode IAMStreamConfig::SetFormat définit la fréquence d’images sur la valeur la plus proche prise en charge par le filtre. Si SetFormat réussit, appelez IAMStreamConfig::GetFormat pour déterminer la fréquence d’images réelle.

Configuration requise

   
En-tête strmif.h (include Dshow.h)

Voir aussi

DirectShow Structures