structure KS_VIDEOINFOHEADER2 (ksmedia.h)
La structure KS_VIDEOINFOHEADER2 décrit les détails d’un flux vidéo, notamment les paramètres bob ou weave, la protection de copie et les proportions de 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 taux 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 erreurs de bits par seconde.
AvgTimePerFrame
Spécifie le temps moyen par frame, en unités de 100 nanosecondes.
dwInterlaceFlags
Spécifie des informations entrelaces. Les indicateurs non définis doivent être définis sur zéro, ou la connexion peut être rejetée. Ce membre peut être défini sur une ou plusieurs valeurs (OR logiques) définies dans ksmedia.h:
Drapeau | Description |
---|---|
KS_INTERLACE_IsInterlaced | Indique un flux entrelacé. Si 0, l’autre KS_INTERLACE_Xxx bits n’est pas pertinent. |
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 d’abord. 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 de 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 champ 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. S’il n’est pas défini, spécifiez zéro ou la connexion sera rejetée.
dwPictAspectRatioX
Spécifie la dimension x du rapport d’aspect image (par exemple, 16 pour un affichage de 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’aspect de l’image (par exemple, 9 pour 16 × 9 affichage). 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 a été nommé dwReserved1 et doit être égal à zéro. Dans Windows Vista, dwReserved1 a été combiné dans une union avec un nouveau membre nommé dwControlFlags. Si elle est utilisée, 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 de 4 x 3. |
AMCONTROL_PAD_TO_16x9 | L’image doit être rembourrée et affichée dans une zone de 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 fournit 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.
Pour plus d’informations sur dwControlFlags, consultez la section Remarques plus loin dans cette rubrique.
dwReserved1
Ce membre est destiné à la compatibilité descendante. Pour plus d’informations, consultez dwControlFlags.
dwReserved2
Réservé à l’utilisation du système. Doit être défini sur zéro ou la connexion est rejetée.
bmiHeader
Indique une structure KS_BITMAPINFOHEADER qui contient des informations de couleur et de dimension pour la bitmap de l’image vidéo.
Remarques
Pour décrire un flux vidéo sans bob ni paramètres d’enregistrement, utilisez KS_VIDEOINFOHEADER.
La structure KS_VIDEOINFOHEADER2 est identique à la structure VIDEOINFOHEADER2 DirectShow.
Capturer des minidrivers 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 rcSource membre. Toutefois, si le filtre récepteur ne vérifie pas le rectangle de découpage sur la connexion, le filtre récepteur affiche simplement toutes les vidéos, ignorant efficacement les informations de découpage transmises 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’images 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 sur tous les zéros (et définir IsRectEmpty pour vérifier ultérieurement le rectangle).
Le rcTarget membre 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 sur une structure DXVA_ExtendedFormat pour accéder aux informations de couleur étendues. Pour plus d’informations, consultez VIDEOINFOHEADER2.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ksmedia.h (include Ksmedia.h) |