structure KS_VIDEO_STREAM_CONFIG_CAPS (ksmedia.h)
La structure KS_VIDEO_STREAM_CONFIG_CAPS décrit la configuration et les fonctionnalités d’un flux vidéo, y compris les fonctionnalités vidéo analogique standard (par exemple, NTSC, PAL ou SECAM), la mise à l’échelle et les fonctionnalités de rognage ; les fréquences d’images minimales et maximales ; et les débits de données minimaux et maximaux.
Syntaxe
typedef struct _KS_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;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;
Membres
guid
GUID qui spécifie le type de format vidéo. Les valeurs possibles incluent :
KSDATAFORMAT_SPECIFIER_VIDEOINFO
KSDATAFORMAT_SPECIFIER_VIDEOINFO2
KSDATAFORMAT_SPECIFIER_ANALOGVIDEO
KSDATAFORMAT_SPECIFIER_VBI
KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO
KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO
Ce GUID est identique à l’énumération DirectShow AM_MEDIA_TYPE. Pour plus d’informations sur AM_MEDIA_TYPE, consultez la documentation du Kit de développement logiciel (SDK) DirectX.
VideoStandard
Spécifie les normes vidéo analogiques prises en charge par le flux. Ce membre peut être défini sur une ou plusieurs valeurs (logiquement ORed) de l’énumération KS_AnalogVideoStandard .
InputSize
Spécifie la taille du signal entrant. InputSize indique la largeur et la hauteur du rectangle d’image, en pixels. Il s’agit du plus grand signal que le filtre peut numériser, chaque pixel restant unique.
MinCroppingSize
Spécifie le plus petit rectangle de rognage autorisé, comme spécifié dans le membre rcSource de la structure KS_VIDEOINFOHEADER , qui est associé au membre DataRange .
MaxCroppingSize
Spécifie le plus grand rectangle de rognage autorisé, comme spécifié dans le membre rcSource de la structure KS_VIDEOINFOHEADER, qui est associé au membre DataRange .
CropGranularityX
Spécifie la granularité horizontale de la taille de rognage. Par exemple, les largeurs valides peuvent être spécifiées sous forme de multiples de quatre.
CropGranularityY
Spécifie la granularité verticale de la taille de rognage. Par exemple, les hauteurs valides peuvent être spécifiées sous la forme de multiples de quatre.
CropAlignX
Spécifie l’alignement horizontal du rectangle de rognage à l’intérieur d’InputSize. Par exemple, le minidriver peut spécifier que les rectangles valides doivent démarrer sur une limite qui est un multiple de quatre.
CropAlignY
Spécifie l’alignement vertical du rectangle de rognage à l’intérieur d’InputSize. Par exemple, le minidriver peut spécifier que les rectangles valides doivent démarrer sur une limite qui est un multiple de quatre.
MinOutputSize
Spécifie la plus petite bitmap que cette broche peut produire.
MaxOutputSize
Spécifie la plus grande bitmap que cette broche peut produire.
OutputGranularityX
Spécifie la granularité de la largeur de l’image bitmap de sortie.
OutputGranularityY
Spécifie la granularité de la hauteur bitmap de sortie.
StretchTapsX
Spécifie l’une des valeurs suivantes pour indiquer dans quelle mesure le filtre peut étirer la largeur de l’image.
Valeur | Signification |
---|---|
0 | Le filtre ne peut pas s’étirer. |
1 | Le filtre utilise le doublement de pixels pour obtenir l’étirement. |
2 | Le filtre utilise l’interpolation (2 clics). |
3 | Le filtre utilise une forme d’interpolation d’ordre supérieur (plus lisse). |
StretchTapsY
Spécifie l’une des valeurs suivantes pour indiquer dans quelle mesure le filtre peut étirer la hauteur de l’image.
Valeur | Signification |
---|---|
0 | Le filtre ne peut pas s’étirer. |
1 | Le filtre utilise le doublement de pixels pour obtenir l’étirement. |
2 | Le filtre utilise l’interpolation (2 clics). |
3 | Le filtre utilise une forme d’interpolation d’ordre supérieur (plus lisse). |
ShrinkTapsX
Spécifie l’une des valeurs suivantes pour indiquer dans quelle mesure le filtre peut réduire la largeur de l’image.
Valeur | Signification |
---|---|
0 | Le filtre ne peut pas être réduit. |
1 | Le filtre élimine certaines lignes de pixels pour obtenir une réduction. |
2 | Le filtre utilise l’interpolation (2 clics). |
3 | Le filtre utilise une forme d’interpolation d’ordre supérieur (plus lisse). |
ShrinkTapsY
Spécifie l’une des valeurs suivantes pour indiquer dans quelle mesure le filtre peut réduire la hauteur de l’image.
Valeur | Signification |
---|---|
0 | Le filtre ne peut pas être réduit. |
1 | Le filtre élimine certaines colonnes de pixels pour obtenir une réduction. |
2 | Le filtre utilise l’interpolation (2 clics). |
3 | Le filtre utilise une forme d’interpolation d’ordre supérieur (plus lisse). |
MinFrameInterval
Spécifie la fréquence d’images minimale autorisée. Cette valeur s’applique uniquement aux filtres de capture.
MaxFrameInterval
Spécifie la fréquence d’images maximale autorisée. Cette valeur s’applique uniquement aux filtres de capture.
MinBitsPerSecond
Spécifie le débit de données minimal, en bits par seconde, que cette broche peut produire.
MaxBitsPerSecond
Spécifie le débit de données maximal, en bits par seconde, que cette broche peut produire.
Remarques
La structure KS_VIDEO_STREAM_CONFIG_CAPS est identique à la structure VIDEO_STREAM_CONFIG_CAPS DirectShow.
Il est important de comprendre les relations entre les membres de cette structure. Par exemple, supposons les valeurs suivantes pour certains des membres de la structure :
MinCroppingSize = (160, 120)
MaxCroppingSize = (320, 240)
CropGranularityX = 4
CropGranularityY = 8
Ces valeurs indiquent que les tailles de rognage valides commencent à MinCroppingSize et augmentent dans la direction x par CropGranularityX et dans la direction y par CropGranularityY. Dans ce cas, la valeur x peut être comprise entre 160 et 320 pixels, par étapes de quatre, et la valeur y peut être comprise entre 120 et 240 pixels par étapes de huit.
Dans l’exemple de scénario, quelques-unes des tailles valides sont les suivantes :
160 × 120, 164 × 120, 168 × 120, 172 × 120, etc.
160 × 128, 164 × 128, 168 × 128, 172 × 128, etc.
160 × 136, 164 × 136, 168 × 136, 172 × 136, etc.
CropAlignX et CropAlignY indiquent où le rectangle de rognage peut se trouver à l’intérieur du rectangle de taille d’entrée. Avec un rectangle de rognage 160 × 120 et une valeur de 2 pour CropAlignX et une valeur de 4 pour CropAlignY, certaines des valeurs valides pour le membre rcSource de la structure KS_VIDEOINFOHEADER seraient les suivantes :
(0, 0, 160, 120)
(2, 0, 162, 120)
(2, 4, 162, 124)
(2, 8, 162, 128)
Pour un rectangle de rognage 320 × 240 et les mêmes valeurs d’alignement de rognage, (2, 4, 322, 244) est un exemple des nombreux rectangles valides.
Les membres MinCroppingSize, MaxCroppingSize, CropGranularityX, CropGranularityY, CropAlignX et CropAlignY décrits ci-dessus fonctionnent ensemble pour spécifier les valeurs de rcSource valides pour la structure KS_VIDEOINFOHEADER qui décrit le type de média de la broche de sortie. Les membres de structure restants (MinOutputSize, MaxOutputSize, OutputGranularityX et OutputGranularityY) décrivent les membres biWidth et biHeight de la structure KS_BITMAPINFOHEADER , qui est contenue dans le type de média de l’épingle KS_VIDEOINFOHEADER structure.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ksmedia.h (incluez Ksmedia.h) |