structure KS_VIDEOINFOHEADER2 (ksmedia.h)
La structure KS_VIDEOINFOHEADER2 décrit les détails d’un flux vidéo, y compris les paramètres bob ou weave, la protection contre la copie et le rapport d’aspect en pixels.
Syntaxe
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
Membres
rcSource
Spécifie un rectangle de découpage qui sélectionne la partie du signal vidéo actif à utiliser.
rcTarget
Spécifie un rectangle qui indique la partie de la mémoire tampon cible à utiliser.
dwBitRate
Spécifie une valeur qui indique le débit de données approprié du flux vidéo, en bits par seconde.
dwBitErrorRate
Spécifie une valeur qui indique le taux d’erreur de données du flux vidéo, en bits d’erreurs par seconde.
AvgTimePerFrame
Spécifie la durée moyenne par image, en unités de 100 nanosecondes.
dwInterlaceFlags
Spécifie les informations entrelaces. Les indicateurs non définis doivent être définis sur zéro, sinon la connexion peut être rejetée. Ce membre peut être défini sur une ou plusieurs valeurs (LOGIQUE OR) définies dans ksmedia.h :
Indicateur | Description |
---|---|
KS_INTERLACE_IsInterlaced | Indique un flux entrelacé. Si la valeur est 0, les autres bits KS_INTERLACE_Xxx ne sont pas pertinents. |
KS_INTERLACE_1FieldPerSample | Indique un champ par exemple de média. Si zéro, indique deux champs par exemple de média. |
KS_INTERLACE_Field1First | Indique que le champ 1 est le premier. Si zéro, indique que le champ 2 est le premier. Le champ supérieur dans PAL est le champ 1, le champ supérieur dans NTSC est le champ 2. |
KS_INTERLACE_UNUSED | Inutilisé |
KS_INTERLACE_FieldPatternMask | Indique les bits utilisés pour spécifier le modèle de champ. |
KS_INTERLACE_FieldPatField1Only | Indique qu’un flux ne contient jamais de champ 2. |
KS_INTERLACE_FieldPatField2Only | Indique qu’un flux ne contient jamais de champ 1. |
KS_INTERLACE_FieldPatBothRegular | Indique qu’il y aura un champ 2 pour chaque champ 1. |
KS_INTERLACE_FieldPatBothIrregular | Indique un modèle aléatoire des champs 1 et 2. |
KS_INTERLACE_DisplayModeMask | Non valide pour la capture vidéo. |
KS_INTERLACE_DisplayModeBobOnly | Non valide pour la capture vidéo. |
KS_INTERLACE_DisplayModeWeaveOnly | Non valide pour la capture vidéo. |
KS_INTERLACE_DisplayModeBobOrWeave | Non valide pour la capture vidéo. |
dwCopyProtectFlags
Spécifie une valeur KSCOPYPROTECTRestrictDuplication (0x00000001) pour indiquer si la duplication d’un flux doit être restreinte. Si elle n’est pas définie, spécifiez zéro ou la connexion sera rejetée.
dwPictAspectRatioX
Spécifie la dimension x du rapport image-aspect (par exemple, 16 pour un affichage 16 × 9). La valeur est exprimée en pouces par pouces, et non en pixels par pixels.
dwPictAspectRatioY
Spécifie la dimension y du rapport d’image (par exemple, 9 pour 16 × 9). La valeur est exprimée en pouces par pouces, et non en pixels par pixels.
dwControlFlags
Dans les systèmes d’exploitation antérieurs à Windows Vista, ce membre était nommé dwReserved1 et devait être égal à zéro. Dans Windows Vista, dwReserved1 a été combiné dans une union avec un nouveau membre nommé dwControlFlags. S’il est utilisé, dwControlFlags contient une OR au niveau du bit des indicateurs dans le tableau suivant.
Valeur | Description |
---|---|
AMCONTROL_USED | Indique que les indicateurs dwControlFlags sont utilisés. |
AMCONTROL_PAD_TO_4x3 | L’image doit être rembourrée et affichée dans une zone 4 x 3. |
AMCONTROL_PAD_TO_16x9 | L’image doit être rembourrée et affichée dans une zone 16 x 9. |
AMCONTROL_COLORINFO_PRESENT | Des informations de couleur supplémentaires sont contenues dans les 24 bits supérieurs du champ dwControlFlags . |
L’indicateur AMCONTROL_USED offre une compatibilité descendante avec les filtres plus anciens. Si l’indicateur AMCONTROL_USED n’est pas défini, les bits restants de ce champ doivent être ignorés. Si un filtre utilise d’autres indicateurs, il doit définir l’indicateur AMCONTROL_USED.
Les deux indicateurs AMCONTROL_PAD_xxx sont utilisés par les décodeurs pour déterminer le rapport d’aspect du rectangle de sortie.
Si l’indicateur AMCONTROL_COLORINFO_PRESENT est défini, cela signifie que les 24 bits supérieurs du champ dwControlFlags sont traités comme une structure DXVA_ExtendedFormat .
Consultez la section Remarques plus loin dans cette rubrique pour plus d’informations sur dwControlFlags.
dwReserved1
Ce membre est destiné à la compatibilité descendante. Pour plus d’informations, consultez dwControlFlags .
dwReserved2
Réservé pour le système. Doit être défini sur zéro, sinon la connexion sera rejetée.
bmiHeader
Indique une structure KS_BITMAPINFOHEADER qui contient des informations de couleur et de dimension pour l’image bitmap vidéo.
Remarques
Pour décrire un flux vidéo sans paramètres bob ou weave, utilisez KS_VIDEOINFOHEADER.
La structure KS_VIDEOINFOHEADER2 est identique à la structure VIDEOINFOHEADER2 DirectShow.
Les mini-disques de capture qui produisent des champs vidéo (au lieu d’images) doivent utiliser la structure KS_DATARANGE_VIDEO2 , qui contient la structure KS_VIDEOINFOHEADER2.
Un filtre source peut demander que le filtre récepteur ne prenne qu’une section de la vidéo en fournissant des valeurs qui définissent efficacement un rectangle de découpage dans le membre rcSource . Toutefois, si le filtre récepteur ne case activée pas pour le rectangle de découpage lors de la connexion, le filtre récepteur affiche simplement toute la vidéo, ignorant ainsi les informations de découpage passées du filtre source au filtre récepteur.
Dans l’idéal, un filtre récepteur vérifie rcSource et si le filtre récepteur ne prend pas en charge l’extraction d’image et que le rectangle n’est pas vide, il rejette la connexion. Un filtre doit utiliser la fonction Win32 SetRectEmpty pour réinitialiser un rectangle à tous les zéros (et définir IsRectEmpty sur ultérieurement case activée le rectangle).
Le membre rcTarget spécifie le rectangle de destination de la vidéo. La plupart des filtres sources définissent ce membre sur tous les zéros. Un filtre en aval peut demander que la vidéo soit placée dans une zone particulière des mémoires tampons qu’elle fournit. Dans ce cas, il appelle la fonction Win32 QueryAccept avec une cible vide.
Si l’indicateur AMCONTROL_COLORINFO_PRESENT est défini dans le membre dwControlFlags , vous pouvez caster la valeur dwControlFlags en structure DXVA_ExtendedFormat pour accéder aux informations de couleur étendues. Pour plus d’informations, consultez VIDEOINFOHEADER2.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ksmedia.h (inclure Ksmedia.h) |