Condividi tramite


struttura KS_VIDEOINFOHEADER2 (ksmedia.h)

La struttura KS_VIDEOINFOHEADER2 descrive i dettagli di un flusso video, incluse le impostazioni bob o weave, la protezione della copia e le proporzioni dei pixel.

Sintassi

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;

Membri

rcSource

Specifica un rettangolo di ritaglio che seleziona la parte del segnale video attivo da usare.

rcTarget

Specifica un rettangolo che indica quale parte del buffer di destinazione utilizzare.

dwBitRate

Specifica un valore che indica la frequenza di dati appropriata del flusso video, in bit al secondo.

dwBitErrorRate

Specifica un valore che indica la frequenza di errore dei dati del flusso video, in bit errori al secondo.

AvgTimePerFrame

Specifica il tempo medio per fotogramma, in unità di 100 nanosecondi.

dwInterlaceFlags

Specifica le informazioni interlacciate. I flag non definiti devono essere impostati su zero oppure è possibile che la connessione venga rifiutata. Questo membro può essere impostato su uno o più valori (OR logici) definiti in ksmedia.h:

Bandiera Descrizione
KS_INTERLACE_IsInterlaced Indica un flusso interlacciato. Se 0, gli altri bit KS_INTERLACE_Xxx sono irrilevanti.
KS_INTERLACE_1FieldPerSample Indica un campo per campione di supporti. Se zero, indica due campi per campione multimediale.
KS_INTERLACE_Field1First Indica che il campo 1 è il primo. Se zero, indica che il campo 2 è il primo. Il campo superiore in PAL è Field 1, top field in NTSC is Field 2.Top field in PAL is Field 2.
KS_INTERLACE_UNUSED Inutilizzato
KS_INTERLACE_FieldPatternMask Indica i bit utilizzati per specificare il criterio di campo.
KS_INTERLACE_FieldPatField1Only Indica che un flusso non contiene mai un campo 2.
KS_INTERLACE_FieldPatField2Only Indica che un flusso non contiene mai un campo 1.
KS_INTERLACE_FieldPatBothRegular Indica che sarà presente un campo 2 per ogni campo 1.
KS_INTERLACE_FieldPatBothIrregular Indica un modello casuale di Field 1s e Field 2s.
KS_INTERLACE_DisplayModeMask Non valido per l'acquisizione video.
KS_INTERLACE_DisplayModeBobOnly Non valido per l'acquisizione video.
KS_INTERLACE_DisplayModeWeaveOnly Non valido per l'acquisizione video.
KS_INTERLACE_DisplayModeBobOrWeave Non valido per l'acquisizione video.

dwCopyProtectFlags

Specifica un valore KSCOPYPROTECTRestrictDuplication (0x00000001) per indicare se la duplicazione di un flusso deve essere limitata. Se non definito, specificare zero o la connessione verrà rifiutata.

dwPictAspectRatioX

Specifica la dimensione x delle proporzioni dell'immagine, ad esempio 16 per un display da 16 × 9. Il valore è espresso in pollici per pollici, non pixel per pixel.

dwPictAspectRatioY

Specifica la dimensione y delle proporzioni dell'immagine, ad esempio 9 per 16 × 9 display. Il valore è espresso in pollici per pollici, non pixel per pixel.

dwControlFlags

Nei sistemi operativi precedenti a Windows Vista, questo membro è stato denominato dwReserved1 ed era necessario essere zero. In Windows Vista dwReserved1 è stato combinato in un'unione con un nuovo membro denominato dwControlFlags. Se usato, dwControlFlags contiene un OR bit per bit dei flag nella tabella seguente.

Valore Descrizione
AMCONTROL_USED Indica che vengono utilizzati i flag di dwControlFlags.
AMCONTROL_PAD_TO_4x3 L'immagine deve essere riempita e visualizzata in un'area 4 x 3.
AMCONTROL_PAD_TO_16x9 L'immagine deve essere riempita e visualizzata in un'area 16 x 9.
AMCONTROL_COLORINFO_PRESENT Informazioni aggiuntive sul colore sono contenute nei 24 bit superiori del campo dwControlFlags.

Il flag AMCONTROL_USED garantisce la compatibilità con le versioni precedenti con i filtri precedenti. Se il flag AMCONTROL_USED non è impostato, i bit rimanenti in questo campo devono essere ignorati. Se un filtro usa altri flag, deve impostare il flag AMCONTROL_USED.

I due flag AMCONTROL_PAD_xxx vengono usati dai decodificatori per determinare le proporzioni del rettangolo di output.

Se il flag AMCONTROL_COLORINFO_PRESENT è impostato, significa che i 24 bit superiori del campo dwControlFlags vengono considerati come una struttura DXVA_ExtendedFormat.

Vedere la sezione Osservazioni più avanti in questo argomento per altre informazioni su dwControlFlags.

dwReserved1

Questo membro è per compatibilità con le versioni precedenti. Per altre informazioni, vedere dwControlFlags.

dwReserved2

Riservato per l'uso del sistema. Deve essere impostato su zero oppure la connessione verrà rifiutata.

bmiHeader

Indica una struttura KS_BITMAPINFOHEADER che contiene informazioni sul colore e sulla dimensione per la bitmap dell'immagine video.

Osservazioni

Per descrivere un flusso video senza impostazioni bob o weave, usare KS_VIDEOINFOHEADER.

La struttura KS_VIDEOINFOHEADER2 è identica alla struttura VIDEOINFOHEADER2 DirectShow.

I minidriver di acquisizione che producono campi video (invece di fotogrammi) devono usare la struttura KS_DATARANGE_VIDEO2, che contiene la struttura KS_VIDEOINFOHEADER2.

Un filtro di origine può richiedere che il filtro sink prenda solo una sezione del video fornendo valori che definiscono in modo efficace un rettangolo di ritaglio nel membro rcSource. Tuttavia, se il filtro sink non verifica la presenza del rettangolo di ritaglio sulla connessione, il filtro sink esegue semplicemente il rendering di tutto il video, ignorando in modo efficace eventuali informazioni di ritaglio passate dal filtro di origine al filtro sink.

Idealmente, un filtro sink controlla rcSource e se il filtro sink non supporta l'estrazione di immagini e il rettangolo è non vuoto, quindi rifiuta la connessione. Un filtro deve usare la funzione Win32 SetRectEmpty per reimpostare un rettangolo su tutti gli zeri e impostare IsRectEmpty per controllare successivamente il rettangolo.

Il membro rcTarget specifica il rettangolo di destinazione per il video. La maggior parte dei filtri di origine imposta questo membro su tutti gli zeri. Un filtro downstream può richiedere che il video venga inserito in una determinata area dei buffer forniti. In questo caso, chiama la funzione Win32 QueryAccept con una destinazione non vuota.

Se il flag AMCONTROL_COLORINFO_PRESENT è impostato nel membro dwControlFlags, è possibile eseguire il cast del valore dwControlFlags a una struttura DXVA_ExtendedFormat per accedere alle informazioni sul colore estese. Per altre informazioni, vedere VIDEOINFOHEADER2.

Fabbisogno

Requisito Valore
intestazione ksmedia.h (include Ksmedia.h)

Vedere anche

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER