Partager via


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)

Voir aussi

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER