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.
- guid
- VideoStandard
- MinFrameInterval
- MaxFrameInterval
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.
MinCroppingSize
Plus petit rectangle source autorisé. Le rectangle source est défini dans le membre rcSource de la structure VIDEOINFOHEADER ou VIDEOINFOHEADER2 .
MaxCroppingSize
Plus grand rectangle source autorisé.
CropGranularityX
Granularité horizontale du rectangle source. Cette valeur spécifie les incréments valides entre MinCroppingSize et MaxCroppingSize.
CropGranularityY
Granularité verticale du rectangle source. Cette valeur spécifie les incréments valides entre MinCroppingSize et MaxCroppingSize.
CropAlignX
Alignement horizontal requis du rectangle source.
CropAlignY
Alignement vertical requis du rectangle source.
MinOutputSize
Taille de sortie minimale.
MaxOutputSize
Taille de sortie maximale.
OutputGranularityX
Granularité de la largeur de sortie. Cette valeur spécifie les incréments valides entre MinOutputSize et MaxOutputSize.
OutputGranularityY
Granularité de la hauteur de sortie. Cette valeur spécifie les incréments valides entre MinOutputSize et MaxOutputSize.
StretchTapsX
Indique dans quelle mesure le filtre peut étirer l’image horizontalement.
StretchTapsY
Indique comment le filtre peut étirer l’image verticalement.
ShrinkTapsX
Indique dans quelle mesure le filtre peut réduire l’image horizontalement.
ShrinkTapsY
Indique comment le filtre peut réduire l’image verticalement.
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.
MaxBitsPerSecond
Débit de données maximal que cette broche peut produire.
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
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)
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) |