Partager via


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)

Voir aussi

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER